File:
[RetroPC.NET] /
np2 /
sdl /
win32s /
SDLevent.c
Revision
1.1:
download - view:
text,
annotated -
select for diffs
Fri Nov 21 15:51:13 2003 JST (21 years, 11 months ago) by
yui
Branches:
MAIN
CVS tags:
VER_0_82_x64,
VER_0_82,
VER_0_81A,
VER_0_81,
VER_0_80,
VER_0_79,
VER_0_78,
VER_0_77,
VER_0_76,
VER_0_75,
VER_0_74,
VER_0_73,
VER_0_72,
HEAD
debuneko- (T.Yui)
#include "compiler.h"
#define EVENT_MAX 128
extern BOOL __sdl_avail;
extern int __sdl_mousex;
extern int __sdl_mousey;
static SDL_Event events[EVENT_MAX];
static UINT eventp = 0;
static UINT eventc = 0;
int SDL_PushEvent(SDL_Event *event) {
if (eventc < (sizeof(events)/sizeof(SDL_Event))) {
events[(eventp + eventc) % EVENT_MAX] = *event;
eventc++;
return(1);
}
else {
return(0);
}
}
int SDL_PollEvent(SDL_Event *event) {
MSG msg;
if (__sdl_avail) {
while(PeekMessage(&msg, 0, 0, 0, PM_NOREMOVE)) {
if (!GetMessage(&msg, NULL, 0, 0)) {
SDL_Event quitevent;
ZeroMemory(&quitevent, sizeof(quitevent));
quitevent.type = SDL_QUIT;
SDL_PushEvent(&quitevent);
__sdl_avail = FALSE;
break;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
if (eventc) {
eventc--;
if (event) {
*event = events[eventp];
}
eventp = (eventp + 1) % EVENT_MAX;
return(1);
}
else {
return(0);
}
}
BYTE SDL_GetMouseState(int *x, int *y) {
if (x) {
*x = __sdl_mousex;
}
if (y) {
*y = __sdl_mousey;
}
return(0);
}
RetroPC.NET-CVS <cvs@retropc.net>