X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsdl.c;h=95ef6eef6e9d97dcf3f724c45a1febc7af3d2022;hb=68ce14c8ea8794fbf2c8af7c7119a514b024f7c4;hp=18e384c5e13530a60fb75db743059714e5f902b6;hpb=e57078603232563176d90bb543ce2bc3a15b889e;p=rocksndiamonds.git diff --git a/src/libgame/sdl.c b/src/libgame/sdl.c index 18e384c5..95ef6eef 100644 --- a/src/libgame/sdl.c +++ b/src/libgame/sdl.c @@ -26,9 +26,9 @@ /* functions from SGE library */ inline void sge_Line(SDL_Surface *, Sint16, Sint16, Sint16, Sint16, Uint32); -#ifdef PLATFORM_WIN32 +/* #ifdef PLATFORM_WIN32 */ #define FULLSCREEN_BUG -#endif +/* #endif */ /* stuff needed to work around SDL/Windows fullscreen drawing bug */ static int fullscreen_width; @@ -866,6 +866,14 @@ void sge_LineRGB(SDL_Surface *Surface, Sint16 x1, Sint16 y1, Sint16 x2, inline void SDLPutPixel(Bitmap *dst_bitmap, int x, int y, Pixel pixel) { +#ifdef FULLSCREEN_BUG + if (dst_bitmap == backbuffer || dst_bitmap == window) + { + x += video_xoffset; + y += video_yoffset; + } +#endif + sge_PutPixel(dst_bitmap->surface, x, y, pixel); } @@ -1354,14 +1362,14 @@ inline void SDLNextEvent(Event *event) } else if (event->type == EVENT_MOTIONNOTIFY) { - if (((ButtonEvent *)event)->x > video_xoffset) - ((ButtonEvent *)event)->x -= video_xoffset; + if (((MotionEvent *)event)->x > video_xoffset) + ((MotionEvent *)event)->x -= video_xoffset; else - ((ButtonEvent *)event)->x = 0; - if (((ButtonEvent *)event)->y > video_yoffset) - ((ButtonEvent *)event)->y -= video_yoffset; + ((MotionEvent *)event)->x = 0; + if (((MotionEvent *)event)->y > video_yoffset) + ((MotionEvent *)event)->y -= video_yoffset; else - ((ButtonEvent *)event)->y = 0; + ((MotionEvent *)event)->y = 0; } #endif }