- Fix warnings reported by gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)
SVN r3293 (trunk)
This commit is contained in:
parent
d6b6a73fee
commit
de8bf651f2
6 changed files with 103 additions and 13 deletions
|
|
@ -79,6 +79,13 @@
|
|||
#include "m_fixed.h"
|
||||
#include "g_level.h"
|
||||
|
||||
#ifdef USE_XCURSOR
|
||||
// Xlib has its own GC, so don't let it interfere.
|
||||
#define GC XGC
|
||||
#include <X11/Xcursor/Xcursor.h>
|
||||
#undef GC
|
||||
#endif
|
||||
|
||||
EXTERN_CVAR (String, language)
|
||||
|
||||
extern "C"
|
||||
|
|
@ -92,6 +99,11 @@ extern bool GtkAvailable;
|
|||
#elif defined(__APPLE__)
|
||||
int I_PickIWad_Cocoa (WadStuff *wads, int numwads, bool showwin, int defaultiwad);
|
||||
#endif
|
||||
#ifdef USE_XCURSOR
|
||||
bool UseXCursor;
|
||||
SDL_Cursor *X11Cursor;
|
||||
SDL_Cursor *FirstCursor;
|
||||
#endif
|
||||
|
||||
DWORD LanguageIDs[4] =
|
||||
{
|
||||
|
|
@ -830,6 +842,47 @@ unsigned int I_MakeRNGSeed()
|
|||
return seed;
|
||||
}
|
||||
|
||||
#ifdef USE_XCURSOR
|
||||
// Hack! Hack! SDL does not provide a clean way to get the XDisplay.
|
||||
// On the other hand, there are no more planned updates for SDL 1.2,
|
||||
// so we should be fine making assumptions.
|
||||
struct SDL_PrivateVideoData
|
||||
{
|
||||
int local_X11;
|
||||
Display *X11_Display;
|
||||
};
|
||||
|
||||
struct SDL_VideoDevice
|
||||
{
|
||||
const char *name;
|
||||
int (*functions)()[9];
|
||||
SDL_VideoInfo info;
|
||||
SDL_PixelFormat *displayformatalphapixel;
|
||||
int (*morefuncs)()[9];
|
||||
Uint16 *gamma;
|
||||
int (*somefuncs)()[9];
|
||||
unsigned int texture; // Only here if SDL was compiled with OpenGL support. Ack!
|
||||
int is_32bit;
|
||||
int (*itsafuncs)()[13];
|
||||
SDL_Surface *surfaces[3];
|
||||
SDL_Palette *physpal;
|
||||
SDL_Color *gammacols;
|
||||
char *wm_strings[2];
|
||||
int offsets[2];
|
||||
SDL_GrabMode input_grab;
|
||||
int handles_any_size;
|
||||
SDL_PrivateVideoData *hidden; // Why did they have to bury this so far in?
|
||||
};
|
||||
|
||||
extern SDL_VideDevice *current_video;
|
||||
#define SDL_Display (current_video->hidden->X11_Display)
|
||||
|
||||
SDL_Cursor *CreateColorCursor(FTexture *cursorpic)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
SDL_Surface *cursorSurface = NULL;
|
||||
SDL_Rect cursorBlit = {0, 0, 32, 32};
|
||||
bool I_SetCursor(FTexture *cursorpic)
|
||||
|
|
@ -842,6 +895,21 @@ bool I_SetCursor(FTexture *cursorpic)
|
|||
return false;
|
||||
}
|
||||
|
||||
#ifdef USE_XCURSOR
|
||||
if (UseXCursor)
|
||||
{
|
||||
if (FirstCursor == NULL)
|
||||
{
|
||||
FirstCursor = SDL_GetCursor();
|
||||
}
|
||||
X11Cursor = CreateColorCursor(cursorpic);
|
||||
if (X11Cursor != NULL)
|
||||
{
|
||||
SDL_SetCursor(X11Cursor);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (cursorSurface == NULL)
|
||||
cursorSurface = SDL_CreateRGBSurface (0, 32, 32, 32, MAKEARGB(0,255,0,0), MAKEARGB(0,0,255,0), MAKEARGB(0,0,0,255), MAKEARGB(255,0,0,0));
|
||||
|
||||
|
|
@ -863,6 +931,14 @@ bool I_SetCursor(FTexture *cursorpic)
|
|||
SDL_FreeSurface(cursorSurface);
|
||||
cursorSurface = NULL;
|
||||
}
|
||||
#ifdef USE_XCURSOR
|
||||
if (X11Cursor != NULL)
|
||||
{
|
||||
SDL_SetCursor(FirstCursor);
|
||||
SDL_FreeCursor(X11Cursor);
|
||||
X11Cursor = NULL;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue