X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsdl.h;h=fcf19341a81fd08372a5edd2c67881b012147611;hb=608be3bcd270eb45628a274eddb6dbcc8940accf;hp=a4ce8d648970442a5dd40f8e3e3416c7ff366607;hpb=1101077a226b09854650662759bf12caf7c84f8d;p=rocksndiamonds.git diff --git a/src/libgame/sdl.h b/src/libgame/sdl.h index a4ce8d64..fcf19341 100644 --- a/src/libgame/sdl.h +++ b/src/libgame/sdl.h @@ -1,7 +1,7 @@ /*********************************************************** * Artsoft Retro-Game Library * *----------------------------------------------------------* -* (c) 1994-2001 Artsoft Entertainment * +* (c) 1994-2002 Artsoft Entertainment * * Holger Schemel * * Detmolder Strasse 189 * * 33604 Bielefeld * @@ -23,14 +23,14 @@ #define SURFACE_FLAGS (SDL_SWSURFACE) -#define SDLCOPYAREA_OPAQUE 0 -#define SDLCOPYAREA_MASKED 1 - /* system dependent definitions */ #define TARGET_STRING "SDL" #define FULLSCREEN_STATUS FULLSCREEN_AVAILABLE +#define CURSOR_MAX_WIDTH 32 +#define CURSOR_MAX_HEIGHT 32 + /* SDL type definitions */ @@ -38,6 +38,7 @@ typedef struct SDLSurfaceInfo Bitmap; typedef struct SDLSurfaceInfo DrawBuffer; typedef struct SDLSurfaceInfo DrawWindow; typedef Uint32 Pixel; +typedef SDL_Cursor *Cursor; typedef SDLKey Key; @@ -69,6 +70,15 @@ struct SDLSurfaceInfo GC stored_clip_gc; }; +struct MouseCursorInfo +{ + int width, height; + int hot_x, hot_y; + + char data[CURSOR_MAX_WIDTH * CURSOR_MAX_HEIGHT / 8]; + char mask[CURSOR_MAX_WIDTH * CURSOR_MAX_HEIGHT / 8]; +}; + struct XY { short x, y; @@ -79,6 +89,9 @@ struct XY #define None 0L +#define BLACK_PIXEL 0x000000 +#define WHITE_PIXEL 0xffffff + #define EVENT_BUTTONPRESS SDL_MOUSEBUTTONDOWN #define EVENT_BUTTONRELEASE SDL_MOUSEBUTTONUP #define EVENT_MOTIONNOTIFY SDL_MOUSEMOTION @@ -314,20 +327,32 @@ struct XY #define KSYM_F23 KSYM_UNDEFINED #define KSYM_F24 KSYM_UNDEFINED +#define KSYM_FKEY_FIRST KSYM_F1 +#define KSYM_FKEY_LAST KSYM_F15 +#define KSYM_NUM_FKEYS (KSYM_FKEY_LAST - KSYM_FKEY_FIRST + 1) + /* SDL function definitions */ inline void SDLInitVideoDisplay(void); inline void SDLInitVideoBuffer(DrawBuffer **, DrawWindow **, boolean); inline boolean SDLSetVideoMode(DrawBuffer **, boolean); +inline void SDLCreateBitmapContent(Bitmap *, int, int, int); +inline void SDLFreeBitmapPointers(Bitmap *); inline void SDLCopyArea(Bitmap *, Bitmap *, int, int, int, int, int, int, int); -inline void SDLFillRectangle(Bitmap *, int, int, int, int, unsigned int); -inline void SDLDrawSimpleLine(Bitmap *, int, int, int, int, unsigned int); +inline void SDLFillRectangle(Bitmap *, int, int, int, int, Uint32); +inline void SDLDrawSimpleLine(Bitmap *, int, int, int, int, Uint32); inline void SDLDrawLine(Bitmap *, int, int, int, int, Uint32); inline Pixel SDLGetPixel(Bitmap *, int, int); +inline void SDLInvertArea(Bitmap *, int, int, int, int, Uint32); + +void SDLZoomBitmap(Bitmap *, Bitmap *); + Bitmap *SDLLoadImage(char *); +void SDLSetMouseCursor(struct MouseCursorInfo *); + inline void SDLOpenAudio(void); inline void SDLCloseAudio(void);