Updated dynamic X11 code. See details in Bugzilla #170.
--HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401579
This commit is contained in:
parent
e0c405fad1
commit
8487ec6692
24 changed files with 960 additions and 695 deletions
|
@ -1,3 +1,4 @@
|
|||
/* include/SDL_config.h. Generated by configure. */
|
||||
/*
|
||||
SDL - Simple DirectMedia Layer
|
||||
Copyright (C) 1997-2006 Sam Lantinga
|
||||
|
@ -23,56 +24,277 @@
|
|||
#ifndef _SDL_config_h
|
||||
#define _SDL_config_h
|
||||
|
||||
/* This is a set of defines to configure the SDL features */
|
||||
|
||||
/* General platform specific identifiers */
|
||||
#include "SDL_platform.h"
|
||||
|
||||
/* Add any platform that doesn't build using the configure system */
|
||||
#if defined(__AMIGA__)
|
||||
#include "SDL_config_amiga.h"
|
||||
#elif defined(__DREAMCAST__)
|
||||
#include "SDL_config_dreamcast.h"
|
||||
#elif defined(__MACOS__)
|
||||
#include "SDL_config_macos.h"
|
||||
#elif defined(__MACOSX__)
|
||||
#include "SDL_config_macosx.h"
|
||||
#elif defined(__WIN32__)
|
||||
#include "SDL_config_win32.h"
|
||||
#elif defined(__OS2__)
|
||||
#include "SDL_config_os2.h"
|
||||
/* C language features */
|
||||
/* #undef const */
|
||||
/* #undef inline */
|
||||
/* #undef volatile */
|
||||
|
||||
/* C datatypes */
|
||||
/* #undef size_t */
|
||||
/* #undef int8_t */
|
||||
/* #undef uint8_t */
|
||||
/* #undef int16_t */
|
||||
/* #undef uint16_t */
|
||||
/* #undef int32_t */
|
||||
/* #undef uint32_t */
|
||||
/* #undef int64_t */
|
||||
/* #undef uint64_t */
|
||||
/* #undef uintptr_t */
|
||||
#define SDL_HAS_64BIT_TYPE 1
|
||||
|
||||
/* Endianness */
|
||||
#define SDL_BYTEORDER 1234
|
||||
|
||||
/* Comment this if you want to build without any C library requirements */
|
||||
#define HAVE_LIBC 1
|
||||
#if HAVE_LIBC
|
||||
|
||||
/* Useful headers */
|
||||
#define HAVE_ALLOCA_H 1
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
#define HAVE_STDIO_H 1
|
||||
#define STDC_HEADERS 1
|
||||
#define HAVE_STDLIB_H 1
|
||||
#define HAVE_STDARG_H 1
|
||||
#define HAVE_MALLOC_H 1
|
||||
#define HAVE_MEMORY_H 1
|
||||
#define HAVE_STRING_H 1
|
||||
#define HAVE_STRINGS_H 1
|
||||
#define HAVE_INTTYPES_H 1
|
||||
#define HAVE_STDINT_H 1
|
||||
#define HAVE_CTYPE_H 1
|
||||
#define HAVE_MATH_H 1
|
||||
#define HAVE_ICONV_H 1
|
||||
#define HAVE_SIGNAL_H 1
|
||||
/* #undef HAVE_ALTIVEC_H */
|
||||
|
||||
/* C library functions */
|
||||
#define HAVE_MALLOC 1
|
||||
#define HAVE_CALLOC 1
|
||||
#define HAVE_REALLOC 1
|
||||
#define HAVE_FREE 1
|
||||
#define HAVE_ALLOCA 1
|
||||
#ifndef _WIN32 /* Don't use C runtime versions of these on Windows */
|
||||
#define HAVE_GETENV 1
|
||||
#define HAVE_PUTENV 1
|
||||
#define HAVE_UNSETENV 1
|
||||
#endif
|
||||
#define HAVE_QSORT 1
|
||||
#define HAVE_ABS 1
|
||||
#define HAVE_BCOPY 1
|
||||
#define HAVE_MEMSET 1
|
||||
#define HAVE_MEMCPY 1
|
||||
#define HAVE_MEMMOVE 1
|
||||
#define HAVE_MEMCMP 1
|
||||
#define HAVE_STRLEN 1
|
||||
/* #undef HAVE_STRLCPY */
|
||||
/* #undef HAVE_STRLCAT */
|
||||
#define HAVE_STRDUP 1
|
||||
/* #undef HAVE__STRREV */
|
||||
/* #undef HAVE__STRUPR */
|
||||
/* #undef HAVE__STRLWR */
|
||||
/* #undef HAVE_INDEX */
|
||||
/* #undef HAVE_RINDEX */
|
||||
#define HAVE_STRCHR 1
|
||||
#define HAVE_STRRCHR 1
|
||||
#define HAVE_STRSTR 1
|
||||
/* #undef HAVE_ITOA */
|
||||
/* #undef HAVE__LTOA */
|
||||
/* #undef HAVE__UITOA */
|
||||
/* #undef HAVE__ULTOA */
|
||||
#define HAVE_STRTOL 1
|
||||
#define HAVE_STRTOUL 1
|
||||
/* #undef HAVE__I64TOA */
|
||||
/* #undef HAVE__UI64TOA */
|
||||
#define HAVE_STRTOLL 1
|
||||
#define HAVE_STRTOULL 1
|
||||
#define HAVE_STRTOD 1
|
||||
#define HAVE_ATOI 1
|
||||
#define HAVE_ATOF 1
|
||||
#define HAVE_STRCMP 1
|
||||
#define HAVE_STRNCMP 1
|
||||
/* #undef HAVE__STRICMP */
|
||||
#define HAVE_STRCASECMP 1
|
||||
/* #undef HAVE__STRNICMP */
|
||||
#define HAVE_STRNCASECMP 1
|
||||
#define HAVE_SSCANF 1
|
||||
#define HAVE_SNPRINTF 1
|
||||
#define HAVE_VSNPRINTF 1
|
||||
#define HAVE_ICONV 1
|
||||
#define HAVE_SIGACTION 1
|
||||
#define HAVE_SETJMP 1
|
||||
#define HAVE_NANOSLEEP 1
|
||||
/* #undef HAVE_CLOCK_GETTIME */
|
||||
#define HAVE_DLVSYM 1
|
||||
|
||||
#else
|
||||
/* This is the minimal configuration that can be used to build SDL */
|
||||
|
||||
/* We may need some replacement for stdarg.h here */
|
||||
#include <stdarg.h>
|
||||
#endif /* HAVE_LIBC */
|
||||
|
||||
typedef signed char int8_t;
|
||||
typedef unsigned char uint8_t;
|
||||
typedef signed short int16_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef signed int int32_t;
|
||||
typedef unsigned int uint32_t;
|
||||
typedef unsigned int size_t;
|
||||
typedef unsigned long uintptr_t;
|
||||
/* Allow disabling of core subsystems */
|
||||
/* #undef SDL_AUDIO_DISABLED */
|
||||
/* #undef SDL_CDROM_DISABLED */
|
||||
/* #undef SDL_CPUINFO_DISABLED */
|
||||
/* #undef SDL_EVENTS_DISABLED */
|
||||
/* #undef SDL_FILE_DISABLED */
|
||||
/* #undef SDL_JOYSTICK_DISABLED */
|
||||
/* #undef SDL_LOADSO_DISABLED */
|
||||
/* #undef SDL_THREADS_DISABLED */
|
||||
/* #undef SDL_TIMERS_DISABLED */
|
||||
/* #undef SDL_VIDEO_DISABLED */
|
||||
|
||||
/* Enable the dummy audio driver (src/audio/dummy/\*.c) */
|
||||
#define SDL_AUDIO_DRIVER_DUMMY 1
|
||||
/* Enable various audio drivers */
|
||||
/* #undef SDL_AUDIO_DRIVER_AHI */
|
||||
#define SDL_AUDIO_DRIVER_ALSA 1
|
||||
#define SDL_AUDIO_DRIVER_ALSA_DYNAMIC "libasound.so.2"
|
||||
/* #undef SDL_AUDIO_DRIVER_ARTS */
|
||||
/* #undef SDL_AUDIO_DRIVER_ARTS_DYNAMIC */
|
||||
/* #undef SDL_AUDIO_DRIVER_BAUDIO */
|
||||
/* #undef SDL_AUDIO_DRIVER_BSD */
|
||||
/* #undef SDL_AUDIO_DRIVER_COREAUDIO */
|
||||
/* #undef SDL_AUDIO_DRIVER_DART */
|
||||
/* #undef SDL_AUDIO_DRIVER_DC */
|
||||
#define SDL_AUDIO_DRIVER_DISK 1
|
||||
#define SDL_AUDIO_DRIVER_DUMMY 1
|
||||
/* #undef SDL_AUDIO_DRIVER_DMEDIA */
|
||||
/* #undef SDL_AUDIO_DRIVER_DSOUND */
|
||||
/* #undef SDL_AUDIO_DRIVER_ESD */
|
||||
/* #undef SDL_AUDIO_DRIVER_ESD_DYNAMIC */
|
||||
/* #undef SDL_AUDIO_DRIVER_MINT */
|
||||
/* #undef SDL_AUDIO_DRIVER_MMEAUDIO */
|
||||
/* #undef SDL_AUDIO_DRIVER_NAS */
|
||||
#define SDL_AUDIO_DRIVER_OSS 1
|
||||
/* #undef SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H */
|
||||
/* #undef SDL_AUDIO_DRIVER_PAUD */
|
||||
/* #undef SDL_AUDIO_DRIVER_QNXNTO */
|
||||
/* #undef SDL_AUDIO_DRIVER_SNDMGR */
|
||||
/* #undef SDL_AUDIO_DRIVER_SUNAUDIO */
|
||||
/* #undef SDL_AUDIO_DRIVER_WAVEOUT */
|
||||
|
||||
/* Enable the stub cdrom driver (src/cdrom/dummy/\*.c) */
|
||||
#define SDL_CDROM_DISABLED 1
|
||||
/* Enable various cdrom drivers */
|
||||
/* #undef SDL_CDROM_AIX */
|
||||
/* #undef SDL_CDROM_BEOS */
|
||||
/* #undef SDL_CDROM_BSDI */
|
||||
/* #undef SDL_CDROM_DC */
|
||||
/* #undef SDL_CDROM_DUMMY */
|
||||
/* #undef SDL_CDROM_FREEBSD */
|
||||
#define SDL_CDROM_LINUX 1
|
||||
/* #undef SDL_CDROM_MACOS */
|
||||
/* #undef SDL_CDROM_MACOSX */
|
||||
/* #undef SDL_CDROM_MINT */
|
||||
/* #undef SDL_CDROM_OPENBSD */
|
||||
/* #undef SDL_CDROM_OS2 */
|
||||
/* #undef SDL_CDROM_OSF */
|
||||
/* #undef SDL_CDROM_QNX */
|
||||
/* #undef SDL_CDROM_WIN32 */
|
||||
|
||||
/* Enable the stub joystick driver (src/joystick/dummy/\*.c) */
|
||||
#define SDL_JOYSTICK_DISABLED 1
|
||||
/* Enable various input drivers */
|
||||
/* #undef SDL_INPUT_TSLIB */
|
||||
/* #undef SDL_JOYSTICK_AMIGA */
|
||||
/* #undef SDL_JOYSTICK_BEOS */
|
||||
/* #undef SDL_JOYSTICK_DC */
|
||||
/* #undef SDL_JOYSTICK_DUMMY */
|
||||
/* #undef SDL_JOYSTICK_IOKIT */
|
||||
#define SDL_JOYSTICK_LINUX 1
|
||||
/* #undef SDL_JOYSTICK_LINUXEV */
|
||||
/* #undef SDL_JOYSTICK_MACOS */
|
||||
/* #undef SDL_JOYSTICK_MINT */
|
||||
/* #undef SDL_JOYSTICK_OS2 */
|
||||
/* #undef SDL_JOYSTICK_RISCOS */
|
||||
/* #undef SDL_JOYSTICK_WINMM */
|
||||
/* #undef SDL_JOYSTICK_USBHID */
|
||||
/* #undef SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H */
|
||||
|
||||
/* Enable the stub shared object loader (src/loadso/dummy/\*.c) */
|
||||
#define SDL_LOADSO_DISABLED 1
|
||||
/* Enable various shared object loading systems */
|
||||
/* #undef SDL_LOADSO_BEOS */
|
||||
/* #undef SDL_LOADSO_DLCOMPAT */
|
||||
#define SDL_LOADSO_DLOPEN 1
|
||||
/* #undef SDL_LOADSO_LDG */
|
||||
/* #undef SDL_LOADSO_MACOS */
|
||||
/* #undef SDL_LOADSO_OS2 */
|
||||
/* #undef SDL_LOADSO_WIN32 */
|
||||
|
||||
/* Enable the stub thread support (src/thread/generic/\*.c) */
|
||||
#define SDL_THREADS_DISABLED 1
|
||||
/* Enable various threading systems */
|
||||
/* #undef SDL_THREAD_AMIGA */
|
||||
/* #undef SDL_THREAD_BEOS */
|
||||
/* #undef SDL_THREAD_DC */
|
||||
/* #undef SDL_THREAD_EPOC */
|
||||
/* #undef SDL_THREAD_OS2 */
|
||||
/* #undef SDL_THREAD_PTH */
|
||||
#define SDL_THREAD_PTHREAD 1
|
||||
#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1
|
||||
/* #undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP */
|
||||
/* #undef SDL_THREAD_SPROC */
|
||||
/* #undef SDL_THREAD_WIN32 */
|
||||
|
||||
/* Enable the stub timer support (src/timer/dummy/\*.c) */
|
||||
#define SDL_TIMERS_DISABLED 1
|
||||
/* Enable various timer systems */
|
||||
/* #undef SDL_TIMER_AMIGA */
|
||||
/* #undef SDL_TIMER_BEOS */
|
||||
/* #undef SDL_TIMER_DC */
|
||||
/* #undef SDL_TIMER_EPOC */
|
||||
/* #undef SDL_TIMER_MACOS */
|
||||
/* #undef SDL_TIMER_MINT */
|
||||
/* #undef SDL_TIMER_OS2 */
|
||||
/* #undef SDL_TIMER_RISCOS */
|
||||
#define SDL_TIMER_UNIX 1
|
||||
/* #undef SDL_TIMER_WIN32 */
|
||||
/* #undef SDL_TIMER_WINCE */
|
||||
|
||||
/* Enable the dummy video driver (src/video/dummy/\*.c) */
|
||||
#define SDL_VIDEO_DRIVER_DUMMY 1
|
||||
/* Enable various video drivers */
|
||||
/* #undef SDL_VIDEO_DRIVER_AALIB */
|
||||
/* #undef SDL_VIDEO_DRIVER_BWINDOW */
|
||||
/* #undef SDL_VIDEO_DRIVER_CYBERGRAPHICS */
|
||||
/* #undef SDL_VIDEO_DRIVER_DC */
|
||||
/* #undef SDL_VIDEO_DRIVER_DDRAW */
|
||||
#define SDL_VIDEO_DRIVER_DGA 1
|
||||
/* #undef SDL_VIDEO_DRIVER_DIRECTFB */
|
||||
/* #undef SDL_VIDEO_DRIVER_DRAWSPROCKET */
|
||||
#define SDL_VIDEO_DRIVER_DUMMY 1
|
||||
/* #undef SDL_VIDEO_DRIVER_EPOC */
|
||||
#define SDL_VIDEO_DRIVER_FBCON 1
|
||||
/* #undef SDL_VIDEO_DRIVER_GAPI */
|
||||
/* #undef SDL_VIDEO_DRIVER_GEM */
|
||||
/* #undef SDL_VIDEO_DRIVER_GGI */
|
||||
/* #undef SDL_VIDEO_DRIVER_IPOD */
|
||||
/* #undef SDL_VIDEO_DRIVER_NANOX */
|
||||
/* #undef SDL_VIDEO_DRIVER_OS2FS */
|
||||
/* #undef SDL_VIDEO_DRIVER_PHOTON */
|
||||
/* #undef SDL_VIDEO_DRIVER_PICOGUI */
|
||||
/* #undef SDL_VIDEO_DRIVER_PS2GS */
|
||||
/* #undef SDL_VIDEO_DRIVER_QTOPIA */
|
||||
/* #undef SDL_VIDEO_DRIVER_QUARTZ */
|
||||
/* #undef SDL_VIDEO_DRIVER_RISCOS */
|
||||
/* #undef SDL_VIDEO_DRIVER_SVGALIB */
|
||||
/* #undef SDL_VIDEO_DRIVER_TOOLBOX */
|
||||
/* #undef SDL_VIDEO_DRIVER_VGL */
|
||||
/* #undef SDL_VIDEO_DRIVER_WINDIB */
|
||||
/* #undef SDL_VIDEO_DRIVER_WSCONS */
|
||||
#define SDL_VIDEO_DRIVER_X11 1
|
||||
#define SDL_VIDEO_DRIVER_X11_DGAMOUSE 1
|
||||
#define SDL_VIDEO_DRIVER_X11_DYNAMIC "libX11.so.6"
|
||||
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "libXext.so.6"
|
||||
#define SDL_VIDEO_DRIVER_X11_VIDMODE 1
|
||||
#define SDL_VIDEO_DRIVER_X11_XINERAMA 1
|
||||
#define SDL_VIDEO_DRIVER_X11_XME 1
|
||||
#define SDL_VIDEO_DRIVER_X11_XV 1
|
||||
/* #undef SDL_VIDEO_DRIVER_XBIOS */
|
||||
|
||||
#endif /* platform config */
|
||||
/* Enable OpenGL support */
|
||||
#define SDL_VIDEO_OPENGL 1
|
||||
#define SDL_VIDEO_OPENGL_GLX 1
|
||||
/* #undef SDL_VIDEO_OPENGL_WGL */
|
||||
/* #undef SDL_VIDEO_OPENGL_OSMESA */
|
||||
/* #undef SDL_VIDEO_OPENGL_OSMESA_DYNAMIC */
|
||||
|
||||
/* Enable assembly routines */
|
||||
#define SDL_ASSEMBLY_ROUTINES 1
|
||||
/* #undef SDL_HERMES_BLITTERS */
|
||||
/* #undef SDL_ALTIVEC_BLITTERS */
|
||||
|
||||
#endif /* _SDL_config_h */
|
||||
|
|
|
@ -4,3 +4,4 @@ Makefile
|
|||
*.o
|
||||
*.lo
|
||||
*.la
|
||||
SDL_config.h
|
||||
|
|
|
@ -236,7 +236,7 @@ Bool XiGMiscQueryVersion(Display *dpy, int *major, int *minor)
|
|||
xXiGMiscQueryVersionReply rep;
|
||||
XExtDisplayInfo *info = XiGMiscFindDisplay(dpy);
|
||||
|
||||
if (!pXQueryExtension(dpy, XIGMISC_PROTOCOL_NAME, &opcode, &event, &error))
|
||||
if (!XQueryExtension(dpy, XIGMISC_PROTOCOL_NAME, &opcode, &event, &error))
|
||||
return xFalse;
|
||||
|
||||
XiGMiscCheckExtension(dpy, info, xFalse);
|
||||
|
@ -247,7 +247,7 @@ Bool XiGMiscQueryVersion(Display *dpy, int *major, int *minor)
|
|||
req->major = XIGMISC_MAJOR_VERSION;
|
||||
req->minor = XIGMISC_MINOR_VERSION;
|
||||
|
||||
if (!p_XReply (dpy, (xReply *)&rep, 0, xTrue)) {
|
||||
if (!_XReply (dpy, (xReply *)&rep, 0, xTrue)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return xFalse;
|
||||
|
@ -274,7 +274,7 @@ int XiGMiscQueryViews(Display *dpy, int screen, XiGMiscViewInfo **pviews)
|
|||
XiGMiscGetReq (XiGMiscQueryViews, req, info);
|
||||
req->screen = screen;
|
||||
|
||||
if (!p_XReply (dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if (!_XReply (dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return 0;
|
||||
|
@ -286,13 +286,13 @@ int XiGMiscQueryViews(Display *dpy, int screen, XiGMiscViewInfo **pviews)
|
|||
size = sizeof(XiGMiscViewInfo) * n;
|
||||
views = (XiGMiscViewInfo*)Xmalloc(size);
|
||||
if (!views) {
|
||||
p_XEatData(dpy, (unsigned long)size);
|
||||
_XEatData(dpy, (unsigned long)size);
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return 0;
|
||||
}
|
||||
|
||||
p_XReadPad(dpy, (void*)views, size);
|
||||
_XReadPad(dpy, (void*)views, size);
|
||||
|
||||
*pviews = views;
|
||||
}
|
||||
|
@ -317,7 +317,7 @@ int XiGMiscQueryResolutions(Display *dpy, int screen, int view, int *pactive, Xi
|
|||
req->screen = screen;
|
||||
req->view = view;
|
||||
|
||||
if (!p_XReply (dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if (!_XReply (dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return 0;
|
||||
|
@ -329,13 +329,13 @@ int XiGMiscQueryResolutions(Display *dpy, int screen, int view, int *pactive, Xi
|
|||
size = sizeof(XiGMiscResolutionInfo) * n;
|
||||
resolutions = (XiGMiscResolutionInfo*)Xmalloc(size);
|
||||
if (!resolutions) {
|
||||
p_XEatData(dpy, (unsigned long)size);
|
||||
_XEatData(dpy, (unsigned long)size);
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return 0;
|
||||
}
|
||||
|
||||
p_XReadPad(dpy, (void*)resolutions, size);
|
||||
_XReadPad(dpy, (void*)resolutions, size);
|
||||
|
||||
*presolutions = resolutions;
|
||||
*pactive = rep.active;
|
||||
|
@ -383,7 +383,7 @@ Bool XiGMiscFullScreen(Display *dpy, int screen, XID window, XID cmap)
|
|||
req->window = window;
|
||||
req->cmap = cmap;
|
||||
|
||||
if (!p_XReply (dpy, (xReply *)&rep, 0, xTrue)) {
|
||||
if (!_XReply (dpy, (xReply *)&rep, 0, xTrue)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return xFalse;
|
||||
|
|
|
@ -113,7 +113,7 @@ Status SDL_NAME(XPanoramiXQueryVersion)(
|
|||
req->panoramiXReqType = X_PanoramiXQueryVersion;
|
||||
req->clientMajor = PANORAMIX_MAJOR_VERSION;
|
||||
req->clientMinor = PANORAMIX_MINOR_VERSION;
|
||||
if (!p_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
|
||||
if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
|
||||
UnlockDisplay (dpy);
|
||||
SyncHandle ();
|
||||
return 0;
|
||||
|
@ -147,7 +147,7 @@ Status SDL_NAME(XPanoramiXGetState) (
|
|||
req->reqType = info->codes->major_opcode;
|
||||
req->panoramiXReqType = X_PanoramiXGetState;
|
||||
req->window = drawable;
|
||||
if (!p_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
|
||||
if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
|
||||
UnlockDisplay (dpy);
|
||||
SyncHandle ();
|
||||
return 0;
|
||||
|
@ -176,7 +176,7 @@ Status SDL_NAME(XPanoramiXGetScreenCount) (
|
|||
req->reqType = info->codes->major_opcode;
|
||||
req->panoramiXReqType = X_PanoramiXGetScreenCount;
|
||||
req->window = drawable;
|
||||
if (!p_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
|
||||
if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
|
||||
UnlockDisplay (dpy);
|
||||
SyncHandle ();
|
||||
return 0;
|
||||
|
@ -207,7 +207,7 @@ Status SDL_NAME(XPanoramiXGetScreenSize) (
|
|||
req->panoramiXReqType = X_PanoramiXGetScreenSize;
|
||||
req->window = drawable;
|
||||
req->screen = screen_num; /* need to define */
|
||||
if (!p_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
|
||||
if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
|
||||
UnlockDisplay (dpy);
|
||||
SyncHandle ();
|
||||
return 0;
|
||||
|
@ -287,7 +287,7 @@ SDL_NAME(XineramaQueryScreens)(
|
|||
GetReq (XineramaQueryScreens, req);
|
||||
req->reqType = info->codes->major_opcode;
|
||||
req->panoramiXReqType = X_XineramaQueryScreens;
|
||||
if (!p_XReply (dpy, (xReply *) &rep, 0, xFalse)) {
|
||||
if (!_XReply (dpy, (xReply *) &rep, 0, xFalse)) {
|
||||
UnlockDisplay (dpy);
|
||||
SyncHandle ();
|
||||
return NULL;
|
||||
|
@ -299,7 +299,7 @@ SDL_NAME(XineramaQueryScreens)(
|
|||
int i;
|
||||
|
||||
for(i = 0; i < rep.number; i++) {
|
||||
p_XRead(dpy, (char*)(&scratch), sz_XineramaScreenInfo);
|
||||
_XRead(dpy, (char*)(&scratch), sz_XineramaScreenInfo);
|
||||
scrnInfo[i].screen_number = i;
|
||||
scrnInfo[i].x_org = scratch.x_org;
|
||||
scrnInfo[i].y_org = scratch.y_org;
|
||||
|
@ -309,7 +309,7 @@ SDL_NAME(XineramaQueryScreens)(
|
|||
|
||||
*number = rep.number;
|
||||
} else
|
||||
p_XEatData(dpy, rep.length << 2);
|
||||
_XEatData(dpy, rep.length << 2);
|
||||
}
|
||||
|
||||
UnlockDisplay (dpy);
|
||||
|
|
|
@ -121,7 +121,7 @@ SDL_NAME(XvQueryExtension)(
|
|||
|
||||
XvGetReq(QueryExtension, req);
|
||||
|
||||
if (!p_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return XvBadExtension;
|
||||
|
@ -171,7 +171,7 @@ SDL_NAME(XvQueryAdaptors)(
|
|||
|
||||
/* READ THE REPLY */
|
||||
|
||||
if (p_XReply(dpy, (xReply *)&rep, 0, xFalse) == 0) {
|
||||
if (_XReply(dpy, (xReply *)&rep, 0, xFalse) == 0) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return(XvBadReply);
|
||||
|
@ -183,7 +183,7 @@ SDL_NAME(XvQueryAdaptors)(
|
|||
SyncHandle();
|
||||
return(XvBadAlloc);
|
||||
}
|
||||
p_XRead (dpy, buffer, size);
|
||||
_XRead (dpy, buffer, size);
|
||||
|
||||
u.buffer = buffer;
|
||||
|
||||
|
@ -330,7 +330,7 @@ SDL_NAME(XvQueryEncodings)(
|
|||
|
||||
/* READ THE REPLY */
|
||||
|
||||
if (p_XReply(dpy, (xReply *)&rep, 0, xFalse) == 0) {
|
||||
if (_XReply(dpy, (xReply *)&rep, 0, xFalse) == 0) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return(XvBadReply);
|
||||
|
@ -342,7 +342,7 @@ SDL_NAME(XvQueryEncodings)(
|
|||
SyncHandle();
|
||||
return(XvBadAlloc);
|
||||
}
|
||||
p_XRead (dpy, buffer, size);
|
||||
_XRead (dpy, buffer, size);
|
||||
|
||||
u.buffer = buffer;
|
||||
|
||||
|
@ -617,7 +617,7 @@ SDL_NAME(XvGrabPort)(
|
|||
req->port = port;
|
||||
req->time = time;
|
||||
|
||||
if (p_XReply (dpy, (xReply *) &rep, 0, xTrue) == 0)
|
||||
if (_XReply (dpy, (xReply *) &rep, 0, xTrue) == 0)
|
||||
rep.result = GrabSuccess;
|
||||
|
||||
result = rep.result;
|
||||
|
@ -745,7 +745,7 @@ SDL_NAME(XvGetPortAttribute) (
|
|||
|
||||
/* READ THE REPLY */
|
||||
|
||||
if (p_XReply(dpy, (xReply *)&rep, 0, xFalse) == 0) {
|
||||
if (_XReply(dpy, (xReply *)&rep, 0, xFalse) == 0) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return(XvBadReply);
|
||||
|
@ -790,7 +790,7 @@ SDL_NAME(XvQueryBestSize)(
|
|||
|
||||
/* READ THE REPLY */
|
||||
|
||||
if (p_XReply(dpy, (xReply *)&rep, 0, xFalse) == 0) {
|
||||
if (_XReply(dpy, (xReply *)&rep, 0, xFalse) == 0) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return(XvBadReply);
|
||||
|
@ -825,7 +825,7 @@ SDL_NAME(XvQueryPortAttributes)(Display *dpy, XvPortID port, int *num)
|
|||
|
||||
/* READ THE REPLY */
|
||||
|
||||
if (p_XReply(dpy, (xReply *)&rep, 0, xFalse) == 0) {
|
||||
if (_XReply(dpy, (xReply *)&rep, 0, xFalse) == 0) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return ret;
|
||||
|
@ -840,17 +840,17 @@ SDL_NAME(XvQueryPortAttributes)(Display *dpy, XvPortID port, int *num)
|
|||
int i;
|
||||
|
||||
for(i = 0; i < rep.num_attributes; i++) {
|
||||
p_XRead(dpy, (char*)(&Info), sz_xvAttributeInfo);
|
||||
_XRead(dpy, (char*)(&Info), sz_xvAttributeInfo);
|
||||
ret[i].flags = (int)Info.flags;
|
||||
ret[i].min_value = Info.min;
|
||||
ret[i].max_value = Info.max;
|
||||
ret[i].name = marker;
|
||||
p_XRead(dpy, marker, Info.size);
|
||||
_XRead(dpy, marker, Info.size);
|
||||
marker += Info.size;
|
||||
(*num)++;
|
||||
}
|
||||
} else
|
||||
p_XEatData(dpy, rep.length << 2);
|
||||
_XEatData(dpy, rep.length << 2);
|
||||
}
|
||||
|
||||
UnlockDisplay(dpy);
|
||||
|
@ -880,7 +880,7 @@ SDL_NAME(XvImageFormatValues) * SDL_NAME(XvListImageFormats) (
|
|||
|
||||
/* READ THE REPLY */
|
||||
|
||||
if (p_XReply(dpy, (xReply *)&rep, 0, xFalse) == 0) {
|
||||
if (_XReply(dpy, (xReply *)&rep, 0, xFalse) == 0) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return NULL;
|
||||
|
@ -894,7 +894,7 @@ SDL_NAME(XvImageFormatValues) * SDL_NAME(XvListImageFormats) (
|
|||
int i;
|
||||
|
||||
for(i = 0; i < rep.num_formats; i++) {
|
||||
p_XRead(dpy, (char*)(&Info), sz_xvImageFormatInfo);
|
||||
_XRead(dpy, (char*)(&Info), sz_xvImageFormatInfo);
|
||||
ret[i].id = Info.id;
|
||||
ret[i].type = Info.type;
|
||||
ret[i].byte_order = Info.byte_order;
|
||||
|
@ -920,7 +920,7 @@ SDL_NAME(XvImageFormatValues) * SDL_NAME(XvListImageFormats) (
|
|||
(*num)++;
|
||||
}
|
||||
} else
|
||||
p_XEatData(dpy, rep.length << 2);
|
||||
_XEatData(dpy, rep.length << 2);
|
||||
}
|
||||
|
||||
UnlockDisplay(dpy);
|
||||
|
@ -954,7 +954,7 @@ SDL_NAME(XvImage) * SDL_NAME(XvCreateImage) (
|
|||
|
||||
/* READ THE REPLY */
|
||||
|
||||
if (!p_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return NULL;
|
||||
|
@ -970,10 +970,10 @@ SDL_NAME(XvImage) * SDL_NAME(XvCreateImage) (
|
|||
ret->offsets = ret->pitches + rep.num_planes;
|
||||
ret->data = data;
|
||||
ret->obdata = NULL;
|
||||
p_XRead(dpy, (char*)(ret->pitches), rep.num_planes << 2);
|
||||
p_XRead(dpy, (char*)(ret->offsets), rep.num_planes << 2);
|
||||
_XRead(dpy, (char*)(ret->pitches), rep.num_planes << 2);
|
||||
_XRead(dpy, (char*)(ret->offsets), rep.num_planes << 2);
|
||||
} else
|
||||
p_XEatData(dpy, rep.length << 2);
|
||||
_XEatData(dpy, rep.length << 2);
|
||||
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
|
@ -1122,7 +1122,7 @@ xv_wire_to_event(Display *dpy, XEvent *host, xEvent *wire)
|
|||
case XvVideoNotify:
|
||||
re->xvvideo.type = event->u.u.type & 0x7f;
|
||||
re->xvvideo.serial =
|
||||
p_XSetLastRequestRead(dpy, (xGenericReply *)event);
|
||||
_XSetLastRequestRead(dpy, (xGenericReply *)event);
|
||||
re->xvvideo.send_event = ((event->u.u.type & 0x80) != 0);
|
||||
re->xvvideo.display = dpy;
|
||||
re->xvvideo.time = event->u.videoNotify.time;
|
||||
|
@ -1133,7 +1133,7 @@ xv_wire_to_event(Display *dpy, XEvent *host, xEvent *wire)
|
|||
case XvPortNotify:
|
||||
re->xvport.type = event->u.u.type & 0x7f;
|
||||
re->xvport.serial =
|
||||
p_XSetLastRequestRead(dpy, (xGenericReply *)event);
|
||||
_XSetLastRequestRead(dpy, (xGenericReply *)event);
|
||||
re->xvport.send_event = ((event->u.u.type & 0x80) != 0);
|
||||
re->xvport.display = dpy;
|
||||
re->xvport.time = event->u.portNotify.time;
|
||||
|
|
|
@ -53,7 +53,7 @@ SOFTWARE.
|
|||
#define XvGetReq(name, req) \
|
||||
WORD64ALIGN\
|
||||
if ((dpy->bufptr + SIZEOF(xv##name##Req)) > dpy->bufmax)\
|
||||
p_XFlush(dpy);\
|
||||
_XFlush(dpy);\
|
||||
req = (xv##name##Req *)(dpy->last_req = dpy->bufptr);\
|
||||
req->reqType = info->codes->major_opcode;\
|
||||
req->xvReqType = xv_##name; \
|
||||
|
@ -65,7 +65,7 @@ SOFTWARE.
|
|||
#define XvGetReq(name, req) \
|
||||
WORD64ALIGN\
|
||||
if ((dpy->bufptr + SIZEOF(xv/**/name/**/Req)) > dpy->bufmax)\
|
||||
p_XFlush(dpy);\
|
||||
_XFlush(dpy);\
|
||||
req = (xv/**/name/**/Req *)(dpy->last_req = dpy->bufptr);\
|
||||
req->reqType = info->codes->major_opcode;\
|
||||
req->xvReqType = xv_/**/name;\
|
||||
|
|
|
@ -114,7 +114,7 @@ Bool SDL_NAME(XF86DGAGetVideoLL)(
|
|||
req->reqType = info->codes->major_opcode;
|
||||
req->dgaReqType = X_XF86DGAGetVideoLL;
|
||||
req->screen = screen;
|
||||
if (!p_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return False;
|
||||
|
@ -149,7 +149,7 @@ Bool SDL_NAME(XF86DGADirectVideoLL)(
|
|||
req->enable = enable;
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
pXSync(dpy,False);
|
||||
XSync(dpy,False);
|
||||
return True;
|
||||
}
|
||||
|
||||
|
@ -170,7 +170,7 @@ Bool SDL_NAME(XF86DGAGetViewPortSize)(
|
|||
req->reqType = info->codes->major_opcode;
|
||||
req->dgaReqType = X_XF86DGAGetViewPortSize;
|
||||
req->screen = screen;
|
||||
if (!p_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return False;
|
||||
|
@ -205,7 +205,7 @@ Bool SDL_NAME(XF86DGASetViewPort)(
|
|||
req->y = y;
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
pXSync(dpy,False);
|
||||
XSync(dpy,False);
|
||||
return True;
|
||||
}
|
||||
|
||||
|
@ -226,7 +226,7 @@ Bool SDL_NAME(XF86DGAGetVidPage)(
|
|||
req->reqType = info->codes->major_opcode;
|
||||
req->dgaReqType = X_XF86DGAGetVidPage;
|
||||
req->screen = screen;
|
||||
if (!p_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return False;
|
||||
|
@ -257,7 +257,7 @@ Bool SDL_NAME(XF86DGASetVidPage)(
|
|||
req->vpage = vpage;
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
pXSync(dpy,False);
|
||||
XSync(dpy,False);
|
||||
return True;
|
||||
}
|
||||
|
||||
|
@ -279,7 +279,7 @@ Bool SDL_NAME(XF86DGAInstallColormap)(
|
|||
req->id = cmap;
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
pXSync(dpy,False);
|
||||
XSync(dpy,False);
|
||||
return True;
|
||||
}
|
||||
|
||||
|
@ -299,7 +299,7 @@ Bool SDL_NAME(XF86DGAQueryDirectVideo)(
|
|||
req->reqType = info->codes->major_opcode;
|
||||
req->dgaReqType = X_XF86DGAQueryDirectVideo;
|
||||
req->screen = screen;
|
||||
if (!p_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return False;
|
||||
|
@ -327,7 +327,7 @@ Bool SDL_NAME(XF86DGAViewPortChanged)(
|
|||
req->dgaReqType = X_XF86DGAViewPortChanged;
|
||||
req->screen = screen;
|
||||
req->n = n;
|
||||
if (!p_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return False;
|
||||
|
@ -600,7 +600,7 @@ SDL_NAME(XF86DGAForkApp)(int screen)
|
|||
for (i = 0; i < numScrs; i++) {
|
||||
sp = scrList[i];
|
||||
SDL_NAME(XF86DGADirectVideoLL)(sp->display, sp->screen, 0);
|
||||
pXSync(sp->display, False);
|
||||
XSync(sp->display, False);
|
||||
}
|
||||
if (WIFEXITED(status))
|
||||
_exit(0);
|
||||
|
@ -660,7 +660,7 @@ XF86cleanup(int sig)
|
|||
for (i = 0; i < numScrs; i++) {
|
||||
sp = scrList[i];
|
||||
SDL_NAME(XF86DGADirectVideo)(sp->display, sp->screen, 0);
|
||||
pXSync(sp->display, False);
|
||||
XSync(sp->display, False);
|
||||
}
|
||||
_exit(3);
|
||||
}
|
||||
|
|
|
@ -107,7 +107,7 @@ xdga_wire_to_event(
|
|||
case MotionNotify:
|
||||
mevent = (SDL_NAME(XDGAMotionEvent)*)event;
|
||||
mevent->type = wire->u.u.type & 0x7F;
|
||||
mevent->serial = p_XSetLastRequestRead(dpy, (xGenericReply *)wire);
|
||||
mevent->serial = _XSetLastRequestRead(dpy, (xGenericReply *)wire);
|
||||
mevent->display = dpy;
|
||||
mevent->screen = wire->u.event.screen;
|
||||
mevent->time = wire->u.event.time;
|
||||
|
@ -119,7 +119,7 @@ xdga_wire_to_event(
|
|||
case ButtonRelease:
|
||||
bevent = (SDL_NAME(XDGAButtonEvent)*)event;
|
||||
bevent->type = wire->u.u.type & 0x7F;
|
||||
bevent->serial = p_XSetLastRequestRead(dpy, (xGenericReply *)wire);
|
||||
bevent->serial = _XSetLastRequestRead(dpy, (xGenericReply *)wire);
|
||||
bevent->display = dpy;
|
||||
bevent->screen = wire->u.event.screen;
|
||||
bevent->time = wire->u.event.time;
|
||||
|
@ -130,7 +130,7 @@ xdga_wire_to_event(
|
|||
case KeyRelease:
|
||||
kevent = (SDL_NAME(XDGAKeyEvent)*)event;
|
||||
kevent->type = wire->u.u.type & 0x7F;
|
||||
kevent->serial = p_XSetLastRequestRead(dpy, (xGenericReply *)wire);
|
||||
kevent->serial = _XSetLastRequestRead(dpy, (xGenericReply *)wire);
|
||||
kevent->display = dpy;
|
||||
kevent->screen = wire->u.event.screen;
|
||||
kevent->time = wire->u.event.time;
|
||||
|
@ -175,7 +175,7 @@ Bool SDL_NAME(XDGAQueryVersion)(
|
|||
GetReq(XDGAQueryVersion, req);
|
||||
req->reqType = info->codes->major_opcode;
|
||||
req->dgaReqType = X_XDGAQueryVersion;
|
||||
if (!p_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return False;
|
||||
|
@ -192,8 +192,8 @@ Bool SDL_NAME(XDGAQueryVersion)(
|
|||
i < XF86DGANumberEvents;
|
||||
i++, j++)
|
||||
{
|
||||
pXESetWireToEvent(dpy, j, xdga_wire_to_event);
|
||||
pXESetEventToWire(dpy, j, xdga_event_to_wire);
|
||||
XESetWireToEvent(dpy, j, xdga_wire_to_event);
|
||||
XESetEventToWire(dpy, j, xdga_event_to_wire);
|
||||
}
|
||||
SDL_NAME(XDGASetClientVersion)(dpy);
|
||||
}
|
||||
|
@ -236,7 +236,7 @@ Bool SDL_NAME(XDGAOpenFramebuffer)(
|
|||
req->reqType = info->codes->major_opcode;
|
||||
req->dgaReqType = X_XDGAOpenFramebuffer;
|
||||
req->screen = screen;
|
||||
if (!p_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return False;
|
||||
|
@ -244,7 +244,7 @@ Bool SDL_NAME(XDGAOpenFramebuffer)(
|
|||
|
||||
if(rep.length) {
|
||||
deviceName = Xmalloc(rep.length << 2);
|
||||
p_XRead(dpy, deviceName, rep.length << 2);
|
||||
_XRead(dpy, deviceName, rep.length << 2);
|
||||
}
|
||||
|
||||
ret = SDL_NAME(XDGAMapFramebuffer)(screen, deviceName,
|
||||
|
@ -301,7 +301,7 @@ SDL_NAME(XDGAMode)* SDL_NAME(XDGAQueryModes)(
|
|||
req->dgaReqType = X_XDGAQueryModes;
|
||||
req->screen = screen;
|
||||
|
||||
if (p_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if (_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if(rep.length) {
|
||||
xXDGAModeInfo info;
|
||||
int i, size;
|
||||
|
@ -315,7 +315,7 @@ SDL_NAME(XDGAMode)* SDL_NAME(XDGAQueryModes)(
|
|||
|
||||
if(modes) {
|
||||
for(i = 0; i < rep.number; i++) {
|
||||
p_XRead(dpy, (char*)(&info), sz_xXDGAModeInfo);
|
||||
_XRead(dpy, (char*)(&info), sz_xXDGAModeInfo);
|
||||
|
||||
modes[i].num = info.num;
|
||||
modes[i].verticalRefresh =
|
||||
|
@ -343,13 +343,13 @@ SDL_NAME(XDGAMode)* SDL_NAME(XDGAQueryModes)(
|
|||
modes[i].reserved1 = info.reserved1;
|
||||
modes[i].reserved2 = info.reserved2;
|
||||
|
||||
p_XRead(dpy, offset, info.name_size);
|
||||
_XRead(dpy, offset, info.name_size);
|
||||
modes[i].name = offset;
|
||||
offset += info.name_size;
|
||||
}
|
||||
*num = rep.number;
|
||||
} else
|
||||
p_XEatData(dpy, rep.length << 2);
|
||||
_XEatData(dpy, rep.length << 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -382,7 +382,7 @@ SDL_NAME(XDGASetMode)(
|
|||
req->mode = mode;
|
||||
req->pid = pid = XAllocID(dpy);
|
||||
|
||||
if (p_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if (_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if(rep.length) {
|
||||
xXDGAModeInfo info;
|
||||
int size;
|
||||
|
@ -393,7 +393,7 @@ SDL_NAME(XDGASetMode)(
|
|||
dev = (SDL_NAME(XDGADevice)*)Xmalloc(sizeof(SDL_NAME(XDGADevice)) + size);
|
||||
|
||||
if(dev) {
|
||||
p_XRead(dpy, (char*)(&info), sz_xXDGAModeInfo);
|
||||
_XRead(dpy, (char*)(&info), sz_xXDGAModeInfo);
|
||||
|
||||
dev->mode.num = info.num;
|
||||
dev->mode.verticalRefresh =
|
||||
|
@ -422,7 +422,7 @@ SDL_NAME(XDGASetMode)(
|
|||
dev->mode.reserved2 = info.reserved2;
|
||||
|
||||
dev->mode.name = (char*)(&dev[1]);
|
||||
p_XRead(dpy, dev->mode.name, info.name_size);
|
||||
_XRead(dpy, dev->mode.name, info.name_size);
|
||||
|
||||
dev->pixmap = (rep.flags & XDGAPixmap) ? pid : 0;
|
||||
dev->data = SDL_NAME(XDGAGetMappedMemory)(screen);
|
||||
|
@ -613,7 +613,7 @@ int SDL_NAME(XDGAGetViewportStatus)(
|
|||
req->reqType = info->codes->major_opcode;
|
||||
req->dgaReqType = X_XDGAGetViewportStatus;
|
||||
req->screen = screen;
|
||||
if (!p_XReply(dpy, (xReply *)&rep, 0, xFalse))
|
||||
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse))
|
||||
status = rep.status;
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
|
@ -635,7 +635,7 @@ void SDL_NAME(XDGASync)(
|
|||
req->reqType = info->codes->major_opcode;
|
||||
req->dgaReqType = X_XDGASync;
|
||||
req->screen = screen;
|
||||
p_XReply(dpy, (xReply *)&rep, 0, xFalse);
|
||||
_XReply(dpy, (xReply *)&rep, 0, xFalse);
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
}
|
||||
|
@ -662,7 +662,7 @@ void SDL_NAME(XDGAChangePixmapMode)(
|
|||
req->x = *x;
|
||||
req->y = *y;
|
||||
req->flags = mode;
|
||||
p_XReply(dpy, (xReply *)&rep, 0, xFalse);
|
||||
_XReply(dpy, (xReply *)&rep, 0, xFalse);
|
||||
*x = rep.x;
|
||||
*y = rep.y;
|
||||
UnlockDisplay(dpy);
|
||||
|
|
|
@ -132,7 +132,7 @@ SDL_NAME(XF86VidModeQueryVersion)(dpy, majorVersion, minorVersion)
|
|||
GetReq(XF86VidModeQueryVersion, req);
|
||||
req->reqType = info->codes->major_opcode;
|
||||
req->xf86vidmodeReqType = X_XF86VidModeQueryVersion;
|
||||
if (!p_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return False;
|
||||
|
@ -200,7 +200,7 @@ SDL_NAME(XF86VidModeGetGamma)(Display *dpy, int screen, SDL_NAME(XF86VidModeGamm
|
|||
req->reqType = info->codes->major_opcode;
|
||||
req->xf86vidmodeReqType = X_XF86VidModeGetGamma;
|
||||
req->screen = screen;
|
||||
if (!p_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return False;
|
||||
|
@ -236,7 +236,7 @@ SDL_NAME(XF86VidModeGetModeLine)(dpy, screen, dotclock, modeline)
|
|||
req->screen = screen;
|
||||
|
||||
if (majorVersion < 2) {
|
||||
if (!p_XReply(dpy, (xReply *)&oldrep,
|
||||
if (!_XReply(dpy, (xReply *)&oldrep,
|
||||
(SIZEOF(xXF86OldVidModeGetModeLineReply) - SIZEOF(xReply)) >> 2, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
|
@ -255,7 +255,7 @@ SDL_NAME(XF86VidModeGetModeLine)(dpy, screen, dotclock, modeline)
|
|||
modeline->flags = oldrep.flags;
|
||||
modeline->privsize = oldrep.privsize;
|
||||
} else {
|
||||
if (!p_XReply(dpy, (xReply *)&rep,
|
||||
if (!_XReply(dpy, (xReply *)&rep,
|
||||
(SIZEOF(xXF86VidModeGetModeLineReply) - SIZEOF(xReply)) >> 2, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
|
@ -277,11 +277,11 @@ SDL_NAME(XF86VidModeGetModeLine)(dpy, screen, dotclock, modeline)
|
|||
|
||||
if (modeline->privsize > 0) {
|
||||
if (!(modeline->private = Xcalloc(modeline->privsize, sizeof(INT32)))) {
|
||||
p_XEatData(dpy, (modeline->privsize) * sizeof(INT32));
|
||||
_XEatData(dpy, (modeline->privsize) * sizeof(INT32));
|
||||
Xfree(modeline->private);
|
||||
return False;
|
||||
}
|
||||
p_XRead(dpy, (char*)modeline->private, modeline->privsize * sizeof(INT32));
|
||||
_XRead(dpy, (char*)modeline->private, modeline->privsize * sizeof(INT32));
|
||||
} else {
|
||||
modeline->private = NULL;
|
||||
}
|
||||
|
@ -330,7 +330,7 @@ SDL_NAME(XF86VidModeGetAllModeLines)(dpy, screen, modecount, modelinesPtr)
|
|||
req->reqType = info->codes->major_opcode;
|
||||
req->xf86vidmodeReqType = X_XF86VidModeGetAllModeLines;
|
||||
req->screen = screen;
|
||||
if (!p_XReply(dpy, (xReply *)&rep,
|
||||
if (!_XReply(dpy, (xReply *)&rep,
|
||||
(SIZEOF(xXF86VidModeGetAllModeLinesReply) - SIZEOF(xReply)) >> 2, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
|
@ -343,9 +343,9 @@ SDL_NAME(XF86VidModeGetAllModeLines)(dpy, screen, modecount, modelinesPtr)
|
|||
sizeof(SDL_NAME(XF86VidModeModeInfo) *)
|
||||
+sizeof(SDL_NAME(XF86VidModeModeInfo))))) {
|
||||
if (majorVersion < 2)
|
||||
p_XEatData(dpy, (rep.modecount) * sizeof(xXF86OldVidModeModeInfo));
|
||||
_XEatData(dpy, (rep.modecount) * sizeof(xXF86OldVidModeModeInfo));
|
||||
else
|
||||
p_XEatData(dpy, (rep.modecount) * sizeof(xXF86VidModeModeInfo));
|
||||
_XEatData(dpy, (rep.modecount) * sizeof(xXF86VidModeModeInfo));
|
||||
Xfree(modelines);
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
|
@ -359,7 +359,7 @@ SDL_NAME(XF86VidModeGetAllModeLines)(dpy, screen, modecount, modelinesPtr)
|
|||
for (i = 0; i < rep.modecount; i++) {
|
||||
modelines[i] = mdinfptr++;
|
||||
if (majorVersion < 2) {
|
||||
p_XRead(dpy, (char*)&oldxmdline, sizeof(xXF86OldVidModeModeInfo));
|
||||
_XRead(dpy, (char*)&oldxmdline, sizeof(xXF86OldVidModeModeInfo));
|
||||
modelines[i]->dotclock = oldxmdline.dotclock;
|
||||
modelines[i]->hdisplay = oldxmdline.hdisplay;
|
||||
modelines[i]->hsyncstart = oldxmdline.hsyncstart;
|
||||
|
@ -379,10 +379,10 @@ SDL_NAME(XF86VidModeGetAllModeLines)(dpy, screen, modecount, modelinesPtr)
|
|||
if (oldxmdline.privsize > 0) {
|
||||
if (!(modelines[i]->private =
|
||||
Xcalloc(oldxmdline.privsize, sizeof(INT32)))) {
|
||||
p_XEatData(dpy, (oldxmdline.privsize) * sizeof(INT32));
|
||||
_XEatData(dpy, (oldxmdline.privsize) * sizeof(INT32));
|
||||
Xfree(modelines[i]->private);
|
||||
} else {
|
||||
p_XRead(dpy, (char*)modelines[i]->private,
|
||||
_XRead(dpy, (char*)modelines[i]->private,
|
||||
oldxmdline.privsize * sizeof(INT32));
|
||||
}
|
||||
} else {
|
||||
|
@ -390,7 +390,7 @@ SDL_NAME(XF86VidModeGetAllModeLines)(dpy, screen, modecount, modelinesPtr)
|
|||
}
|
||||
}
|
||||
} else {
|
||||
p_XRead(dpy, (char*)&xmdline, sizeof(xXF86VidModeModeInfo));
|
||||
_XRead(dpy, (char*)&xmdline, sizeof(xXF86VidModeModeInfo));
|
||||
modelines[i]->dotclock = xmdline.dotclock;
|
||||
modelines[i]->hdisplay = xmdline.hdisplay;
|
||||
modelines[i]->hsyncstart = xmdline.hsyncstart;
|
||||
|
@ -410,10 +410,10 @@ SDL_NAME(XF86VidModeGetAllModeLines)(dpy, screen, modecount, modelinesPtr)
|
|||
if (xmdline.privsize > 0) {
|
||||
if (!(modelines[i]->private =
|
||||
Xcalloc(xmdline.privsize, sizeof(INT32)))) {
|
||||
p_XEatData(dpy, (xmdline.privsize) * sizeof(INT32));
|
||||
_XEatData(dpy, (xmdline.privsize) * sizeof(INT32));
|
||||
Xfree(modelines[i]->private);
|
||||
} else {
|
||||
p_XRead(dpy, (char*)modelines[i]->private,
|
||||
_XRead(dpy, (char*)modelines[i]->private,
|
||||
xmdline.privsize * sizeof(INT32));
|
||||
}
|
||||
} else {
|
||||
|
@ -435,7 +435,7 @@ SDL_NAME(XF86VidModeGetAllModeLines)(dpy, screen, modecount, modelinesPtr)
|
|||
#define GetOldReq(name, oldname, req) \
|
||||
WORD64ALIGN\
|
||||
if ((dpy->bufptr + SIZEOF(x##oldname##Req)) > dpy->bufmax)\
|
||||
p_XFlush(dpy);\
|
||||
_XFlush(dpy);\
|
||||
req = (x##oldname##Req *)(dpy->last_req = dpy->bufptr);\
|
||||
req->reqType = X_##name;\
|
||||
req->length = (SIZEOF(x##oldname##Req))>>2;\
|
||||
|
@ -446,7 +446,7 @@ SDL_NAME(XF86VidModeGetAllModeLines)(dpy, screen, modecount, modelinesPtr)
|
|||
#define GetOldReq(name, oldname, req) \
|
||||
WORD64ALIGN\
|
||||
if ((dpy->bufptr + SIZEOF(x/**/oldname/**/Req)) > dpy->bufmax)\
|
||||
p_XFlush(dpy);\
|
||||
_XFlush(dpy);\
|
||||
req = (x/**/oldname/**/Req *)(dpy->last_req = dpy->bufptr);\
|
||||
req->reqType = X_/**/name;\
|
||||
req->length = (SIZEOF(x/**/oldname/**/Req))>>2;\
|
||||
|
@ -754,7 +754,7 @@ SDL_NAME(XF86VidModeValidateModeLine) (dpy, screen, modeline)
|
|||
modeline->privsize * sizeof(INT32));
|
||||
}
|
||||
}
|
||||
if (!p_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return MODE_BAD;
|
||||
|
@ -916,7 +916,7 @@ SDL_NAME(XF86VidModeGetMonitor)(dpy, screen, monitor)
|
|||
req->reqType = info->codes->major_opcode;
|
||||
req->xf86vidmodeReqType = X_XF86VidModeGetMonitor;
|
||||
req->screen = screen;
|
||||
if (!p_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return False;
|
||||
|
@ -928,7 +928,7 @@ SDL_NAME(XF86VidModeGetMonitor)(dpy, screen, monitor)
|
|||
#endif
|
||||
if (rep.vendorLength) {
|
||||
if (!(monitor->vendor = (char *)Xcalloc(rep.vendorLength + 1, 1))) {
|
||||
p_XEatData(dpy, (rep.nhsync + rep.nvsync) * 4 +
|
||||
_XEatData(dpy, (rep.nhsync + rep.nvsync) * 4 +
|
||||
((rep.vendorLength+3) & ~3) + ((rep.modelLength+3) & ~3));
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
|
@ -939,7 +939,7 @@ SDL_NAME(XF86VidModeGetMonitor)(dpy, screen, monitor)
|
|||
}
|
||||
if (rep.modelLength) {
|
||||
if (!(monitor->model = Xcalloc(rep.modelLength + 1, 1))) {
|
||||
p_XEatData(dpy, (rep.nhsync + rep.nvsync) * 4 +
|
||||
_XEatData(dpy, (rep.nhsync + rep.nvsync) * 4 +
|
||||
((rep.vendorLength+3) & ~3) + ((rep.modelLength+3) & ~3));
|
||||
if (monitor->vendor)
|
||||
Xfree(monitor->vendor);
|
||||
|
@ -951,7 +951,7 @@ SDL_NAME(XF86VidModeGetMonitor)(dpy, screen, monitor)
|
|||
monitor->model = NULL;
|
||||
}
|
||||
if (!(monitor->hsync = Xcalloc(rep.nhsync, sizeof(SDL_NAME(XF86VidModeSyncRange))))) {
|
||||
p_XEatData(dpy, (rep.nhsync + rep.nvsync) * 4 +
|
||||
_XEatData(dpy, (rep.nhsync + rep.nvsync) * 4 +
|
||||
((rep.vendorLength+3) & ~3) + ((rep.modelLength+3) & ~3));
|
||||
|
||||
if (monitor->vendor)
|
||||
|
@ -963,7 +963,7 @@ SDL_NAME(XF86VidModeGetMonitor)(dpy, screen, monitor)
|
|||
return False;
|
||||
}
|
||||
if (!(monitor->vsync = Xcalloc(rep.nvsync, sizeof(SDL_NAME(XF86VidModeSyncRange))))) {
|
||||
p_XEatData(dpy, (rep.nhsync + rep.nvsync) * 4 +
|
||||
_XEatData(dpy, (rep.nhsync + rep.nvsync) * 4 +
|
||||
((rep.vendorLength+3) & ~3) + ((rep.modelLength+3) & ~3));
|
||||
if (monitor->vendor)
|
||||
Xfree(monitor->vendor);
|
||||
|
@ -975,21 +975,21 @@ SDL_NAME(XF86VidModeGetMonitor)(dpy, screen, monitor)
|
|||
return False;
|
||||
}
|
||||
for (i = 0; i < rep.nhsync; i++) {
|
||||
p_XRead(dpy, (char *)&syncrange, 4);
|
||||
_XRead(dpy, (char *)&syncrange, 4);
|
||||
monitor->hsync[i].lo = (float)(syncrange & 0xFFFF) / 100.0;
|
||||
monitor->hsync[i].hi = (float)(syncrange >> 16) / 100.0;
|
||||
}
|
||||
for (i = 0; i < rep.nvsync; i++) {
|
||||
p_XRead(dpy, (char *)&syncrange, 4);
|
||||
_XRead(dpy, (char *)&syncrange, 4);
|
||||
monitor->vsync[i].lo = (float)(syncrange & 0xFFFF) / 100.0;
|
||||
monitor->vsync[i].hi = (float)(syncrange >> 16) / 100.0;
|
||||
}
|
||||
if (rep.vendorLength)
|
||||
p_XReadPad(dpy, monitor->vendor, rep.vendorLength);
|
||||
_XReadPad(dpy, monitor->vendor, rep.vendorLength);
|
||||
else
|
||||
monitor->vendor = "";
|
||||
if (rep.modelLength)
|
||||
p_XReadPad(dpy, monitor->model, rep.modelLength);
|
||||
_XReadPad(dpy, monitor->model, rep.modelLength);
|
||||
else
|
||||
monitor->model = "";
|
||||
|
||||
|
@ -1037,7 +1037,7 @@ SDL_NAME(XF86VidModeGetViewPort)(dpy, screen, x, y)
|
|||
*x = 0;
|
||||
*y = 0;
|
||||
} else {
|
||||
if (!p_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return False;
|
||||
|
@ -1095,7 +1095,7 @@ SDL_NAME(XF86VidModeGetDotClocks)(dpy, screen,
|
|||
req->reqType = info->codes->major_opcode;
|
||||
req->xf86vidmodeReqType = X_XF86VidModeGetDotClocks;
|
||||
req->screen = screen;
|
||||
if (!p_XReply(dpy, (xReply *)&rep,
|
||||
if (!_XReply(dpy, (xReply *)&rep,
|
||||
(SIZEOF(xXF86VidModeGetDotClocksReply) - SIZEOF(xReply)) >> 2, xFalse))
|
||||
{
|
||||
UnlockDisplay(dpy);
|
||||
|
@ -1107,7 +1107,7 @@ SDL_NAME(XF86VidModeGetDotClocks)(dpy, screen,
|
|||
*flagsPtr = rep.flags;
|
||||
|
||||
if (!(dotclocks = (int*) Xcalloc(rep.clocks, sizeof(int)))) {
|
||||
p_XEatData(dpy, (rep.clocks) * 4);
|
||||
_XEatData(dpy, (rep.clocks) * 4);
|
||||
Xfree(dotclocks);
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
|
@ -1115,7 +1115,7 @@ SDL_NAME(XF86VidModeGetDotClocks)(dpy, screen,
|
|||
}
|
||||
|
||||
for (i = 0; i < rep.clocks; i++) {
|
||||
p_XRead(dpy, (char*)&dotclk, 4);
|
||||
_XRead(dpy, (char*)&dotclk, 4);
|
||||
dotclocks[i] = dotclk;
|
||||
}
|
||||
*clocksPtr = dotclocks;
|
||||
|
@ -1146,9 +1146,9 @@ SDL_NAME(XF86VidModeSetGammaRamp) (
|
|||
req->screen = screen;
|
||||
req->length += (length >> 1) * 3;
|
||||
req->size = size;
|
||||
p_XSend(dpy, (char*)red, size * 2);
|
||||
p_XSend(dpy, (char*)green, size * 2);
|
||||
p_XSend(dpy, (char*)blue, size * 2);
|
||||
_XSend(dpy, (char*)red, size * 2);
|
||||
_XSend(dpy, (char*)green, size * 2);
|
||||
_XSend(dpy, (char*)blue, size * 2);
|
||||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
return True;
|
||||
|
@ -1177,15 +1177,15 @@ SDL_NAME(XF86VidModeGetGammaRamp) (
|
|||
req->xf86vidmodeReqType = X_XF86VidModeGetGammaRamp;
|
||||
req->screen = screen;
|
||||
req->size = size;
|
||||
if (!p_XReply (dpy, (xReply *) &rep, 0, xFalse)) {
|
||||
if (!_XReply (dpy, (xReply *) &rep, 0, xFalse)) {
|
||||
UnlockDisplay (dpy);
|
||||
SyncHandle ();
|
||||
return False;
|
||||
}
|
||||
if(rep.size) {
|
||||
p_XRead(dpy, (char*)red, rep.size << 1);
|
||||
p_XRead(dpy, (char*)green, rep.size << 1);
|
||||
p_XRead(dpy, (char*)blue, rep.size << 1);
|
||||
_XRead(dpy, (char*)red, rep.size << 1);
|
||||
_XRead(dpy, (char*)green, rep.size << 1);
|
||||
_XRead(dpy, (char*)blue, rep.size << 1);
|
||||
}
|
||||
|
||||
UnlockDisplay(dpy);
|
||||
|
@ -1212,7 +1212,7 @@ Bool SDL_NAME(XF86VidModeGetGammaRampSize)(
|
|||
req->reqType = info->codes->major_opcode;
|
||||
req->xf86vidmodeReqType = X_XF86VidModeGetGammaRampSize;
|
||||
req->screen = screen;
|
||||
if (!p_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
|
||||
if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
|
||||
UnlockDisplay (dpy);
|
||||
SyncHandle ();
|
||||
return False;
|
||||
|
|
|
@ -175,9 +175,9 @@ extern XExtDisplayInfo *XextFindDisplay(
|
|||
|
||||
#define XextHasExtension(i) ((i) && ((i)->codes))
|
||||
#define XextCheckExtension(dpy,i,name,val) \
|
||||
if (!XextHasExtension(i)) { pXMissingExtension (dpy, name); return val; }
|
||||
if (!XextHasExtension(i)) { XMissingExtension (dpy, name); return val; }
|
||||
#define XextSimpleCheckExtension(dpy,i,name) \
|
||||
if (!XextHasExtension(i)) { pXMissingExtension (dpy, name); return; }
|
||||
if (!XextHasExtension(i)) { XMissingExtension (dpy, name); return; }
|
||||
|
||||
|
||||
/*
|
||||
|
@ -190,9 +190,9 @@ extern XExtDisplayInfo *XextFindDisplay(
|
|||
XExtDisplayInfo *proc (Display *dpy) \
|
||||
{ \
|
||||
XExtDisplayInfo *dpyinfo; \
|
||||
if (!extinfo) { if (!(extinfo = pXextCreateExtension())) return NULL; } \
|
||||
if (!(dpyinfo = pXextFindDisplay (extinfo, dpy))) \
|
||||
dpyinfo = pXextAddDisplay (extinfo,dpy,extname,hooks,nev,data); \
|
||||
if (!extinfo) { if (!(extinfo = XextCreateExtension())) return NULL; } \
|
||||
if (!(dpyinfo = XextFindDisplay (extinfo, dpy))) \
|
||||
dpyinfo = XextAddDisplay (extinfo,dpy,extname,hooks,nev,data); \
|
||||
return dpyinfo; \
|
||||
}
|
||||
|
||||
|
@ -202,7 +202,7 @@ XExtDisplayInfo *proc (Display *dpy) \
|
|||
#define XEXT_GENERATE_CLOSE_DISPLAY(proc,extinfo) \
|
||||
int proc (Display *dpy, XExtCodes *codes) \
|
||||
{ \
|
||||
return pXextRemoveDisplay (extinfo, dpy); \
|
||||
return XextRemoveDisplay (extinfo, dpy); \
|
||||
}
|
||||
|
||||
#define XEXT_CLOSE_DISPLAY_PROTO(proc) \
|
||||
|
@ -215,7 +215,7 @@ char *proc (Display *dpy, int code, XExtCodes *codes, char *buf, int n) \
|
|||
if (code >= 0 && code < nerr) { \
|
||||
char tmp[256]; \
|
||||
SDL_snprintf (tmp, SDL_arraysize(tmp), "%s.%d", extname, code); \
|
||||
pXGetErrorDatabaseText (dpy, "XProtoError", tmp, errl[code], buf, n); \
|
||||
XGetErrorDatabaseText (dpy, "XProtoError", tmp, errl[code], buf, n); \
|
||||
return buf; \
|
||||
} \
|
||||
return (char *)0; \
|
||||
|
|
|
@ -45,7 +45,7 @@ static int DGA_DispatchEvent(_THIS)
|
|||
int posted;
|
||||
SDL_NAME(XDGAEvent) xevent;
|
||||
|
||||
pXNextEvent(DGA_Display, (XEvent *)&xevent);
|
||||
XNextEvent(DGA_Display, (XEvent *)&xevent);
|
||||
|
||||
posted = 0;
|
||||
xevent.type -= DGA_event_base;
|
||||
|
@ -96,7 +96,7 @@ printf("KeyPress (X11 keycode = 0x%X)\n", xkey.keycode);
|
|||
static XComposeStatus state;
|
||||
char keybuf[32];
|
||||
|
||||
if ( pXLookupString(&xkey, keybuf, sizeof(keybuf), NULL, &state) ) {
|
||||
if ( XLookupString(&xkey, keybuf, sizeof(keybuf), NULL, &state) ) {
|
||||
/*
|
||||
* FIXME: XLookupString() may yield more than one
|
||||
* character, so we need a mechanism to allow for
|
||||
|
|
|
@ -73,9 +73,9 @@ static int DGA_Available(void)
|
|||
and the DGA 2.0+ extension is available, and we can map mem.
|
||||
*/
|
||||
if ( SDL_X11_LoadSymbols() ) {
|
||||
if ( (SDL_strncmp(pXDisplayName(display), ":", 1) == 0) ||
|
||||
(SDL_strncmp(pXDisplayName(display), "unix:", 5) == 0) ) {
|
||||
dpy = pXOpenDisplay(display);
|
||||
if ( (SDL_strncmp(XDisplayName(display), ":", 1) == 0) ||
|
||||
(SDL_strncmp(XDisplayName(display), "unix:", 5) == 0) ) {
|
||||
dpy = XOpenDisplay(display);
|
||||
if ( dpy ) {
|
||||
int events, errors, major, minor;
|
||||
|
||||
|
@ -90,7 +90,7 @@ static int DGA_Available(void)
|
|||
SDL_NAME(XDGACloseFramebuffer)(dpy, screen);
|
||||
}
|
||||
}
|
||||
pXCloseDisplay(dpy);
|
||||
XCloseDisplay(dpy);
|
||||
}
|
||||
}
|
||||
SDL_X11_UnloadSymbols();
|
||||
|
@ -329,7 +329,7 @@ static int DGA_VideoInit(_THIS, SDL_PixelFormat *vformat)
|
|||
/* Open the X11 display */
|
||||
display = NULL; /* Get it from DISPLAY environment variable */
|
||||
|
||||
DGA_Display = pXOpenDisplay(display);
|
||||
DGA_Display = XOpenDisplay(display);
|
||||
if ( DGA_Display == NULL ) {
|
||||
SDL_SetError("Couldn't open X11 display");
|
||||
return(-1);
|
||||
|
@ -339,12 +339,12 @@ static int DGA_VideoInit(_THIS, SDL_PixelFormat *vformat)
|
|||
if ( ! SDL_NAME(XDGAQueryExtension)(DGA_Display, &event_base, &error_base) ||
|
||||
! SDL_NAME(XDGAQueryVersion)(DGA_Display, &major_version, &minor_version) ) {
|
||||
SDL_SetError("DGA extension not available");
|
||||
pXCloseDisplay(DGA_Display);
|
||||
XCloseDisplay(DGA_Display);
|
||||
return(-1);
|
||||
}
|
||||
if ( major_version < 2 ) {
|
||||
SDL_SetError("DGA driver requires DGA 2.0 or newer");
|
||||
pXCloseDisplay(DGA_Display);
|
||||
XCloseDisplay(DGA_Display);
|
||||
return(-1);
|
||||
}
|
||||
DGA_event_base = event_base;
|
||||
|
@ -360,10 +360,10 @@ static int DGA_VideoInit(_THIS, SDL_PixelFormat *vformat)
|
|||
int i, num_formats;
|
||||
|
||||
vformat->BitsPerPixel = DefaultDepth(DGA_Display, DGA_Screen);
|
||||
pix_format = pXListPixmapFormats(DGA_Display, &num_formats);
|
||||
pix_format = XListPixmapFormats(DGA_Display, &num_formats);
|
||||
if ( pix_format == NULL ) {
|
||||
SDL_SetError("Couldn't determine screen formats");
|
||||
pXCloseDisplay(DGA_Display);
|
||||
XCloseDisplay(DGA_Display);
|
||||
return(-1);
|
||||
}
|
||||
for ( i=0; i<num_formats; ++i ) {
|
||||
|
@ -372,7 +372,7 @@ static int DGA_VideoInit(_THIS, SDL_PixelFormat *vformat)
|
|||
}
|
||||
if ( i != num_formats )
|
||||
vformat->BitsPerPixel = pix_format[i].bits_per_pixel;
|
||||
pXFree((char *)pix_format);
|
||||
XFree((char *)pix_format);
|
||||
}
|
||||
if ( vformat->BitsPerPixel > 8 ) {
|
||||
vformat->Rmask = visual->red_mask;
|
||||
|
@ -383,7 +383,7 @@ static int DGA_VideoInit(_THIS, SDL_PixelFormat *vformat)
|
|||
/* Open access to the framebuffer */
|
||||
if ( ! SDL_NAME(XDGAOpenFramebuffer)(DGA_Display, DGA_Screen) ) {
|
||||
SDL_SetError("Unable to map the video memory");
|
||||
pXCloseDisplay(DGA_Display);
|
||||
XCloseDisplay(DGA_Display);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
|
@ -403,7 +403,7 @@ static int DGA_VideoInit(_THIS, SDL_PixelFormat *vformat)
|
|||
}
|
||||
}
|
||||
UpdateHWInfo(this, modes);
|
||||
pXFree(modes);
|
||||
XFree(modes);
|
||||
|
||||
/* Create the hardware surface lock mutex */
|
||||
hw_lock = SDL_CreateMutex();
|
||||
|
@ -442,7 +442,7 @@ SDL_Surface *DGA_SetVideoMode(_THIS, SDL_Surface *current,
|
|||
|
||||
/* Free any previous colormap */
|
||||
if ( DGA_colormap ) {
|
||||
pXFreeColormap(DGA_Display, DGA_colormap);
|
||||
XFreeColormap(DGA_Display, DGA_colormap);
|
||||
DGA_colormap = 0;
|
||||
}
|
||||
|
||||
|
@ -473,7 +473,7 @@ SDL_Surface *DGA_SetVideoMode(_THIS, SDL_Surface *current,
|
|||
|
||||
/* Set the video mode */
|
||||
mode = SDL_NAME(XDGASetMode)(DGA_Display, DGA_Screen, modes[i].num);
|
||||
pXFree(modes);
|
||||
XFree(modes);
|
||||
if ( mode == NULL ) {
|
||||
SDL_SetError("Unable to switch to requested mode");
|
||||
return(NULL);
|
||||
|
@ -821,7 +821,7 @@ static int DGA_FillHWRect(_THIS, SDL_Surface *dst, SDL_Rect *rect, Uint32 color)
|
|||
#endif
|
||||
SDL_NAME(XDGAFillRectangle)(DGA_Display, DGA_Screen, x, y, w, h, color);
|
||||
if ( !(this->screen->flags & SDL_DOUBLEBUF) ) {
|
||||
pXFlush(DGA_Display);
|
||||
XFlush(DGA_Display);
|
||||
}
|
||||
DGA_AddBusySurface(dst);
|
||||
UNLOCK_DISPLAY();
|
||||
|
@ -863,7 +863,7 @@ static int HWAccelBlit(SDL_Surface *src, SDL_Rect *srcrect,
|
|||
srcx, srcy, w, h, dstx, dsty);
|
||||
}
|
||||
if ( !(this->screen->flags & SDL_DOUBLEBUF) ) {
|
||||
pXFlush(DGA_Display);
|
||||
XFlush(DGA_Display);
|
||||
}
|
||||
DGA_AddBusySurface(src);
|
||||
DGA_AddBusySurface(dst);
|
||||
|
@ -943,7 +943,7 @@ static int DGA_FlipHWSurface(_THIS, SDL_Surface *surface)
|
|||
DGA_WaitFlip(this);
|
||||
SDL_NAME(XDGASetViewport)(DGA_Display, DGA_Screen,
|
||||
0, flip_yoffset[flip_page], XDGAFlipRetrace);
|
||||
pXFlush(DGA_Display);
|
||||
XFlush(DGA_Display);
|
||||
UNLOCK_DISPLAY();
|
||||
was_flipped = 1;
|
||||
flip_page = !flip_page;
|
||||
|
@ -976,8 +976,8 @@ static int DGA_SetColors(_THIS, int firstcolor, int ncolors, SDL_Color *colors)
|
|||
xcmap[i].flags = (DoRed|DoGreen|DoBlue);
|
||||
}
|
||||
LOCK_DISPLAY();
|
||||
pXStoreColors(DGA_Display, DGA_colormap, xcmap, ncolors);
|
||||
pXSync(DGA_Display, False);
|
||||
XStoreColors(DGA_Display, DGA_colormap, xcmap, ncolors);
|
||||
XSync(DGA_Display, False);
|
||||
UNLOCK_DISPLAY();
|
||||
SDL_stack_free(xcmap);
|
||||
|
||||
|
@ -1011,8 +1011,8 @@ int DGA_SetGammaRamp(_THIS, Uint16 *ramp)
|
|||
xcmap[i].flags = (DoRed|DoGreen|DoBlue);
|
||||
}
|
||||
LOCK_DISPLAY();
|
||||
pXStoreColors(DGA_Display, DGA_colormap, xcmap, ncolors);
|
||||
pXSync(DGA_Display, False);
|
||||
XStoreColors(DGA_Display, DGA_colormap, xcmap, ncolors);
|
||||
XSync(DGA_Display, False);
|
||||
UNLOCK_DISPLAY();
|
||||
return(0);
|
||||
}
|
||||
|
@ -1024,7 +1024,7 @@ void DGA_VideoQuit(_THIS)
|
|||
if ( DGA_Display ) {
|
||||
/* Free colormap, if necessary */
|
||||
if ( DGA_colormap ) {
|
||||
pXFreeColormap(DGA_Display, DGA_colormap);
|
||||
XFreeColormap(DGA_Display, DGA_colormap);
|
||||
DGA_colormap = 0;
|
||||
}
|
||||
|
||||
|
@ -1064,6 +1064,6 @@ void DGA_VideoQuit(_THIS)
|
|||
DGA_FreeHWSurfaces(this);
|
||||
|
||||
/* Close up the display */
|
||||
pXCloseDisplay(DGA_Display);
|
||||
XCloseDisplay(DGA_Display);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,11 +21,10 @@
|
|||
*/
|
||||
#include "SDL_config.h"
|
||||
|
||||
#if 0
|
||||
#if 1
|
||||
#define DEBUG_DYNAMIC_X11 1
|
||||
#endif
|
||||
|
||||
#define __SDL_NO_REDEFINE_X11_HEADER_SYMS 1
|
||||
#include "SDL_x11dyn.h"
|
||||
|
||||
#ifdef DEBUG_DYNAMIC_X11
|
||||
|
@ -41,51 +40,88 @@ static void *x11_handle = NULL;
|
|||
static const char *x11ext_library = SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT;
|
||||
static void *x11ext_handle = NULL;
|
||||
|
||||
static void *X11_GetSym(int required, const char *fnname, int *rc)
|
||||
typedef struct
|
||||
{
|
||||
void *fn = NULL;
|
||||
if (*rc) { /* haven't already failed on a previous lookup? */
|
||||
fn = SDL_LoadFunction(x11_handle, fnname);
|
||||
#if DEBUG_DYNAMIC_X11
|
||||
if (fn != NULL)
|
||||
printf("X11: Found '%s' in libX11 (%p)\n", fnname, fn);
|
||||
#endif
|
||||
void *lib;
|
||||
const char *libname;
|
||||
} x11libitem;
|
||||
|
||||
if (fn == NULL) { /* not found? Check libX11ext ... */
|
||||
fn = SDL_LoadFunction(x11ext_handle, fnname);
|
||||
#if DEBUG_DYNAMIC_X11
|
||||
static void *X11_GetSym(const char *fnname, int *rc)
|
||||
{
|
||||
int i;
|
||||
void *fn = NULL;
|
||||
const x11libitem libs[] =
|
||||
{
|
||||
{ x11_handle, "libX11" },
|
||||
{ x11ext_handle, "libX11ext" },
|
||||
};
|
||||
|
||||
for (i = 0; i < (sizeof (libs) / sizeof (libs[0])); i++)
|
||||
{
|
||||
if (libs[i].lib != NULL)
|
||||
{
|
||||
fn = SDL_LoadFunction(libs[i].lib, fnname);
|
||||
if (fn != NULL)
|
||||
printf("X11: Found '%s' in libXext (%p)\n", fnname, fn);
|
||||
else
|
||||
printf("X11: Symbol '%s' NOT FOUND!%s\n", fnname,
|
||||
required ? "" : " (...but not required!)");
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
*rc = ((fn != NULL) || (!required));
|
||||
}
|
||||
|
||||
#if DEBUG_DYNAMIC_X11
|
||||
if (fn != NULL)
|
||||
printf("X11: Found '%s' in %s (%p)\n", fnname, libs[i].libname, fn);
|
||||
else
|
||||
printf("X11: Symbol '%s' NOT FOUND!\n", fnname);
|
||||
#endif
|
||||
|
||||
if (fn == NULL)
|
||||
*rc = 0; /* kill this module. */
|
||||
|
||||
return fn;
|
||||
}
|
||||
|
||||
|
||||
/* Define all the function pointers and wrappers... */
|
||||
#define SDL_X11_MODULE(modname)
|
||||
#define SDL_X11_SYM(rc,fn,params,args,ret) \
|
||||
static rc (*p##fn) params = NULL; \
|
||||
rc fn params { ret p##fn args ; }
|
||||
#include "SDL_x11sym.h"
|
||||
#undef SDL_X11_MODULE
|
||||
#undef SDL_X11_SYM
|
||||
#endif /* SDL_VIDEO_DRIVER_X11_DYNAMIC */
|
||||
|
||||
/* Define all the function pointers... */
|
||||
#define SDL_X11_SYM(req,ret,fn,params) ret (*p##fn) params = NULL;
|
||||
/* Annoying varargs entry point... */
|
||||
#ifdef X_HAVE_UTF8_STRING
|
||||
XIC (*pXCreateIC)(XIM,...) = NULL;
|
||||
#endif
|
||||
|
||||
/* These SDL_X11_HAVE_* flags are here whether you have dynamic X11 or not. */
|
||||
#define SDL_X11_MODULE(modname) int SDL_X11_HAVE_##modname = 1;
|
||||
#define SDL_X11_SYM(rc,fn,params,args,ret)
|
||||
#include "SDL_x11sym.h"
|
||||
#undef SDL_X11_MODULE
|
||||
#undef SDL_X11_SYM
|
||||
|
||||
|
||||
static int x11_load_refcount = 0;
|
||||
|
||||
void SDL_X11_UnloadSymbols(void)
|
||||
{
|
||||
#ifdef SDL_VIDEO_DRIVER_X11_DYNAMIC
|
||||
/* Don't actually unload if more than one module is using the libs... */
|
||||
if (x11_load_refcount > 0) {
|
||||
if (--x11_load_refcount == 0) {
|
||||
/* set all the function pointers to NULL. */
|
||||
#define SDL_X11_SYM(req,ret,fn,params) p##fn = NULL;
|
||||
#define SDL_X11_MODULE(modname) SDL_X11_HAVE_##modname = 1;
|
||||
#define SDL_X11_SYM(rc,fn,params,args,ret) p##fn = NULL;
|
||||
#include "SDL_x11sym.h"
|
||||
#undef SDL_X11_MODULE
|
||||
#undef SDL_X11_SYM
|
||||
|
||||
#ifdef SDL_VIDEO_DRIVER_X11_DYNAMIC
|
||||
#ifdef X_HAVE_UTF8_STRING
|
||||
pXCreateIC = NULL;
|
||||
#endif
|
||||
|
||||
if (x11_handle != NULL) {
|
||||
SDL_UnloadObject(x11_handle);
|
||||
x11_handle = NULL;
|
||||
|
@ -94,35 +130,41 @@ void SDL_X11_UnloadSymbols(void)
|
|||
SDL_UnloadObject(x11ext_handle);
|
||||
x11ext_handle = NULL;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/* returns non-zero if all needed symbols were loaded. */
|
||||
int SDL_X11_LoadSymbols(void)
|
||||
{
|
||||
int rc = 1;
|
||||
int rc = 1; /* always succeed if not using Dynamic X11 stuff. */
|
||||
|
||||
/* deal with multiple modules (dga, x11, etc) needing these symbols... */
|
||||
#ifdef SDL_VIDEO_DRIVER_X11_DYNAMIC
|
||||
/* deal with multiple modules (dga, x11, etc) needing these symbols... */
|
||||
if (x11_load_refcount++ == 0) {
|
||||
#ifdef SDL_VIDEO_DRIVER_X11_DYNAMIC
|
||||
x11_handle = SDL_LoadObject(x11_library);
|
||||
x11ext_handle = SDL_LoadObject(x11ext_library);
|
||||
rc = ((x11_handle != NULL) && (x11ext_handle != NULL));
|
||||
#define SDL_X11_SYM(req,r,fn,arg) p##fn = X11_GetSym(req,#fn, &rc);
|
||||
#include "SDL_x11sym.h"
|
||||
#undef SDL_X11_SYM
|
||||
int *thismod = NULL;
|
||||
x11_handle = SDL_LoadObject(x11_library);
|
||||
x11ext_handle = SDL_LoadObject(x11ext_library);
|
||||
#define SDL_X11_MODULE(modname) thismod = &SDL_X11_HAVE_##modname;
|
||||
#define SDL_X11_SYM(a,fn,x,y,z) p##fn = X11_GetSym(#fn,thismod);
|
||||
#include "SDL_x11sym.h"
|
||||
#undef SDL_X11_MODULE
|
||||
#undef SDL_X11_SYM
|
||||
|
||||
if (!rc)
|
||||
SDL_X11_UnloadSymbols(); /* in case one of these loaded... */
|
||||
|
||||
#else
|
||||
#define SDL_X11_SYM(req,r,fn,arg) p##fn = fn;
|
||||
#include "SDL_x11sym.h"
|
||||
#undef SDL_X11_SYM
|
||||
#ifdef X_HAVE_UTF8_STRING
|
||||
pXCreateIC = X11_GetSym("XCreateIC",&SDL_X11_HAVE_UTF8);
|
||||
#endif
|
||||
|
||||
if (!SDL_X11_HAVE_BASEXLIB) { /* some required symbol didn't load. */
|
||||
SDL_X11_UnloadSymbols(); /* in case something got loaded... */
|
||||
}
|
||||
}
|
||||
#else
|
||||
#ifdef X_HAVE_UTF8_STRING
|
||||
pXCreateIC = XCreateIC;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
|
|
@ -39,60 +39,41 @@
|
|||
#endif
|
||||
|
||||
/*
|
||||
* Never reference Xlib directly...we might load it dynamically at runtime.
|
||||
* Even if we don't, for readability, we still use the function pointers
|
||||
* (although the symbol resolution will be done by the loader in that case).
|
||||
* When using the "dynamic X11" functionality, we duplicate all the Xlib
|
||||
* symbols that would be referenced by SDL inside of SDL itself.
|
||||
* These duplicated symbols just serve as passthroughs to the functions
|
||||
* in Xlib, that was dynamically loaded.
|
||||
*
|
||||
* We define SDL_X11_SYM and include SDL_x11sym.h to accomplish various
|
||||
* goals, without having to duplicate those function signatures.
|
||||
* This allows us to use Xlib as-is when linking against it directly, but
|
||||
* also handles all the strange cases where there was code in the Xlib
|
||||
* headers that may or may not exist or vary on a given platform.
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef __osf__
|
||||
extern int _XData32(Display *,register long *,unsigned);
|
||||
extern void _XRead32(Display *,register long *,long);
|
||||
extern void _SmtBufferOverflow(Display *,register smtDisplayPtr);
|
||||
extern void _SmtIpError(Display *,register smtDisplayPtr, int);
|
||||
extern int ipAllocateData(ChannelPtr, IPCard, IPDataPtr *);
|
||||
extern int ipUnallocateAndSendData(ChannelPtr, IPCard);
|
||||
#endif
|
||||
|
||||
/* evil function signatures... */
|
||||
typedef Bool (*SDL_X11_XESetWireToEventRetType)(Display*,XEvent*,xEvent*);
|
||||
typedef int (*SDL_X11_XSynchronizeRetType)(Display*);
|
||||
typedef Status (*SDL_X11_XESetEventToWireRetType)(Display*,XEvent*,xEvent*);
|
||||
typedef int (*SDL_X11_XSetExtensionErrorHandlerType)(Display *,char *,char *);
|
||||
|
||||
#define SDL_X11_SYM(req,ret,fn,params) extern ret (*p##fn) params;
|
||||
#include "SDL_x11sym.h"
|
||||
#undef SDL_X11_SYM
|
||||
|
||||
/* Macro in the xlib headers, not an actual symbol... */
|
||||
#define pXDestroyImage XDestroyImage
|
||||
|
||||
/* Workaround code in headers... */
|
||||
#if !__SDL_NO_REDEFINE_X11_HEADER_SYMS
|
||||
#define _XFlush p_XFlush
|
||||
#define _XFlushGCCache p_XFlushGCCache
|
||||
#define _XReply p_XReply
|
||||
#define _XSend p_XSend
|
||||
#define XFree pXFree
|
||||
#define _XData32 p_XData32
|
||||
|
||||
#if defined(__osf__)
|
||||
#define _SmtBufferOverflow p_SmtBufferOverflow
|
||||
#define _SmtIpError p_SmtIpError
|
||||
#define ipAllocateData pipAllocateData
|
||||
#define ipUnallocateAndSendData pipUnallocateAndSendData
|
||||
#endif
|
||||
|
||||
#endif /* !__SDL_NO_REDEFINE_X11_HEADER_SYMS */
|
||||
|
||||
int SDL_X11_LoadSymbols(void);
|
||||
void SDL_X11_UnloadSymbols(void);
|
||||
|
||||
/* That's really annoying...make this a function pointer no matter what. */
|
||||
#ifdef X_HAVE_UTF8_STRING
|
||||
extern XIC (*pXCreateIC)(XIM,...);
|
||||
#endif
|
||||
|
||||
/* These SDL_X11_HAVE_* flags are here whether you have dynamic X11 or not. */
|
||||
#define SDL_X11_MODULE(modname) extern int SDL_X11_HAVE_##modname;
|
||||
#define SDL_X11_SYM(rc,fn,params,args,ret)
|
||||
#include "SDL_x11sym.h"
|
||||
#undef SDL_X11_MODULE
|
||||
#undef SDL_X11_SYM
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -187,13 +187,13 @@ static int X11_KeyRepeat(Display *display, XEvent *event)
|
|||
int repeated;
|
||||
|
||||
repeated = 0;
|
||||
if ( pXPending(display) ) {
|
||||
pXPeekEvent(display, &peekevent);
|
||||
if ( XPending(display) ) {
|
||||
XPeekEvent(display, &peekevent);
|
||||
if ( (peekevent.type == KeyPress) &&
|
||||
(peekevent.xkey.keycode == event->xkey.keycode) &&
|
||||
((peekevent.xkey.time-event->xkey.time) < 2) ) {
|
||||
repeated = 1;
|
||||
pXNextEvent(display, &peekevent);
|
||||
XNextEvent(display, &peekevent);
|
||||
}
|
||||
}
|
||||
return(repeated);
|
||||
|
@ -228,7 +228,7 @@ static __inline__ int X11_WarpedMotion(_THIS, XEvent *xevent)
|
|||
(xevent->xmotion.y < MOUSE_FUDGE_FACTOR) ||
|
||||
(xevent->xmotion.y > (h-MOUSE_FUDGE_FACTOR)) ) {
|
||||
/* Get the events that have accumulated */
|
||||
while ( pXCheckTypedEvent(SDL_Display, MotionNotify, xevent) ) {
|
||||
while ( XCheckTypedEvent(SDL_Display, MotionNotify, xevent) ) {
|
||||
deltax = xevent->xmotion.x - mouse_last.x;
|
||||
deltay = xevent->xmotion.y - mouse_last.y;
|
||||
#ifdef DEBUG_MOTION
|
||||
|
@ -240,10 +240,10 @@ static __inline__ int X11_WarpedMotion(_THIS, XEvent *xevent)
|
|||
}
|
||||
mouse_last.x = w/2;
|
||||
mouse_last.y = h/2;
|
||||
pXWarpPointer(SDL_Display, None, SDL_Window, 0, 0, 0, 0,
|
||||
XWarpPointer(SDL_Display, None, SDL_Window, 0, 0, 0, 0,
|
||||
mouse_last.x, mouse_last.y);
|
||||
for ( i=0; i<10; ++i ) {
|
||||
pXMaskEvent(SDL_Display, PointerMotionMask, xevent);
|
||||
XMaskEvent(SDL_Display, PointerMotionMask, xevent);
|
||||
if ( (xevent->xmotion.x >
|
||||
(mouse_last.x-MOUSE_FUDGE_FACTOR)) &&
|
||||
(xevent->xmotion.x <
|
||||
|
@ -273,7 +273,7 @@ static int X11_DispatchEvent(_THIS)
|
|||
XEvent xevent;
|
||||
|
||||
SDL_memset(&xevent, '\0', sizeof (XEvent)); /* valgrind fix. --ryan. */
|
||||
pXNextEvent(SDL_Display, &xevent);
|
||||
XNextEvent(SDL_Display, &xevent);
|
||||
|
||||
posted = 0;
|
||||
switch (xevent.type) {
|
||||
|
@ -332,7 +332,7 @@ printf("FocusIn!\n");
|
|||
|
||||
#ifdef X_HAVE_UTF8_STRING
|
||||
if ( SDL_IC != NULL ) {
|
||||
pXSetICFocus(SDL_IC);
|
||||
XSetICFocus(SDL_IC);
|
||||
}
|
||||
#endif
|
||||
/* Queue entry into fullscreen mode */
|
||||
|
@ -350,7 +350,7 @@ printf("FocusOut!\n");
|
|||
|
||||
#ifdef X_HAVE_UTF8_STRING
|
||||
if ( SDL_IC != NULL ) {
|
||||
pXUnsetICFocus(SDL_IC);
|
||||
XUnsetICFocus(SDL_IC);
|
||||
}
|
||||
#endif
|
||||
/* Queue leaving fullscreen mode */
|
||||
|
@ -433,7 +433,7 @@ printf("KeyPress (X11 keycode = 0x%X)\n", xevent.xkey.keycode);
|
|||
break;
|
||||
}
|
||||
|
||||
if ( pXFilterEvent(&xevent, None) ) {
|
||||
if ( XFilterEvent(&xevent, None) ) {
|
||||
if ( xevent.xkey.keycode ) {
|
||||
posted = SDL_PrivateKeyboard(SDL_PRESSED, &keysym);
|
||||
} else {
|
||||
|
@ -450,7 +450,7 @@ printf("KeyPress (X11 keycode = 0x%X)\n", xevent.xkey.keycode);
|
|||
static Status state;
|
||||
/* A UTF-8 character can be at most 6 bytes */
|
||||
char keybuf[6];
|
||||
if ( pXutf8LookupString(SDL_IC, &xevent.xkey,
|
||||
if ( Xutf8LookupString(SDL_IC, &xevent.xkey,
|
||||
keybuf, sizeof(keybuf),
|
||||
NULL, &state) ) {
|
||||
keysym.unicode = Utf8ToUcs4((Uint8*)keybuf);
|
||||
|
@ -462,7 +462,7 @@ printf("KeyPress (X11 keycode = 0x%X)\n", xevent.xkey.keycode);
|
|||
static XComposeStatus state;
|
||||
char keybuf[32];
|
||||
|
||||
if ( pXLookupString(&xevent.xkey,
|
||||
if ( XLookupString(&xevent.xkey,
|
||||
keybuf, sizeof(keybuf),
|
||||
NULL, &state) ) {
|
||||
/*
|
||||
|
@ -622,8 +622,8 @@ printf("Unhandled event %d\n", xevent.type);
|
|||
int X11_Pending(Display *display)
|
||||
{
|
||||
/* Flush the display connection and look to see if events are queued */
|
||||
pXFlush(display);
|
||||
if ( pXEventsQueued(display, QueuedAlready) ) {
|
||||
XFlush(display);
|
||||
if ( XEventsQueued(display, QueuedAlready) ) {
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
@ -637,7 +637,7 @@ int X11_Pending(Display *display)
|
|||
FD_ZERO(&fdset);
|
||||
FD_SET(x11_fd, &fdset);
|
||||
if ( select(x11_fd+1, &fdset, NULL, NULL, &zero_time) == 1 ) {
|
||||
return(pXPending(display));
|
||||
return(XPending(display));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -827,7 +827,7 @@ SDLKey X11_TranslateKeycode(Display *display, KeyCode kc)
|
|||
KeySym xsym;
|
||||
SDLKey key;
|
||||
|
||||
xsym = pXKeycodeToKeysym(display, kc, 0);
|
||||
xsym = XKeycodeToKeysym(display, kc, 0);
|
||||
#ifdef DEBUG_KEYS
|
||||
fprintf(stderr, "Translating key code %d -> 0x%.4x\n", kc, xsym);
|
||||
#endif
|
||||
|
@ -914,12 +914,12 @@ static void get_modifier_masks(Display *display)
|
|||
if(got_masks)
|
||||
return;
|
||||
|
||||
xmods = pXGetModifierMapping(display);
|
||||
xmods = XGetModifierMapping(display);
|
||||
n = xmods->max_keypermod;
|
||||
for(i = 3; i < 8; i++) {
|
||||
for(j = 0; j < n; j++) {
|
||||
KeyCode kc = xmods->modifiermap[i * n + j];
|
||||
KeySym ks = pXKeycodeToKeysym(display, kc, 0);
|
||||
KeySym ks = XKeycodeToKeysym(display, kc, 0);
|
||||
unsigned mask = 1 << i;
|
||||
switch(ks) {
|
||||
case XK_Num_Lock:
|
||||
|
@ -937,7 +937,7 @@ static void get_modifier_masks(Display *display)
|
|||
}
|
||||
}
|
||||
}
|
||||
pXFreeModifiermap(xmods);
|
||||
XFreeModifiermap(xmods);
|
||||
got_masks = 1;
|
||||
}
|
||||
|
||||
|
@ -979,7 +979,7 @@ Uint16 X11_KeyToUnicode(SDLKey keysym, SDLMod modifiers)
|
|||
}
|
||||
}
|
||||
|
||||
xkey.keycode = pXKeysymToKeycode(xkey.display, xsym);
|
||||
xkey.keycode = XKeysymToKeycode(xkey.display, xsym);
|
||||
|
||||
get_modifier_masks(SDL_Display);
|
||||
if(modifiers & KMOD_SHIFT)
|
||||
|
@ -1002,7 +1002,7 @@ Uint16 X11_KeyToUnicode(SDLKey keysym, SDLMod modifiers)
|
|||
xkey.state |= num_mask;
|
||||
|
||||
unicode = 0;
|
||||
if ( pXLookupString(&xkey, keybuf, sizeof(keybuf), NULL, NULL) )
|
||||
if ( XLookupString(&xkey, keybuf, sizeof(keybuf), NULL, NULL) )
|
||||
unicode = (unsigned char)keybuf[0];
|
||||
return(unicode);
|
||||
}
|
||||
|
@ -1025,14 +1025,14 @@ void X11_SetKeyboardState(Display *display, const char *key_vec)
|
|||
|
||||
/* The first time the window is mapped, we initialize key state */
|
||||
if ( ! key_vec ) {
|
||||
pXQueryKeymap(display, keys_return);
|
||||
XQueryKeymap(display, keys_return);
|
||||
key_vec = keys_return;
|
||||
}
|
||||
|
||||
/* Get the keyboard modifier state */
|
||||
modstate = 0;
|
||||
get_modifier_masks(display);
|
||||
if ( pXQueryPointer(display, DefaultRootWindow(display),
|
||||
if ( XQueryPointer(display, DefaultRootWindow(display),
|
||||
&junk_window, &junk_window, &x, &y, &x, &y, &mask) ) {
|
||||
if ( mask & LockMask ) {
|
||||
modstate |= KMOD_CAPS;
|
||||
|
|
|
@ -64,7 +64,7 @@ static int X11_SetGammaNoLock(_THIS, float red, float green, float blue)
|
|||
}
|
||||
if ( SDL_GetAppState() & SDL_APPACTIVE ) {
|
||||
succeeded = SDL_NAME(XF86VidModeSetGamma)(SDL_Display, SDL_Screen, &gamma);
|
||||
pXSync(SDL_Display, False);
|
||||
XSync(SDL_Display, False);
|
||||
} else {
|
||||
gamma_saved[0] = gamma.red;
|
||||
gamma_saved[1] = gamma.green;
|
||||
|
|
|
@ -64,10 +64,10 @@ XVisualInfo *X11_GL_GetVisual(_THIS)
|
|||
XVisualInfo vi_in;
|
||||
int out_count;
|
||||
|
||||
pXGetWindowAttributes(SDL_Display, SDL_Window, &a);
|
||||
XGetWindowAttributes(SDL_Display, SDL_Window, &a);
|
||||
vi_in.screen = SDL_Screen;
|
||||
vi_in.visualid = pXVisualIDFromVisual(a.visual);
|
||||
glx_visualinfo = pXGetVisualInfo(SDL_Display,
|
||||
vi_in.visualid = XVisualIDFromVisual(a.visual);
|
||||
glx_visualinfo = XGetVisualInfo(SDL_Display,
|
||||
VisualScreenMask|VisualIDMask, &vi_in, &out_count);
|
||||
return glx_visualinfo;
|
||||
}
|
||||
|
@ -186,7 +186,7 @@ int X11_GL_CreateWindow(_THIS, int w, int h)
|
|||
attributes.colormap = SDL_XColorMap;
|
||||
mask = CWBackPixel | CWBorderPixel | CWColormap;
|
||||
|
||||
SDL_Window = pXCreateWindow(SDL_Display, WMwindow,
|
||||
SDL_Window = XCreateWindow(SDL_Display, WMwindow,
|
||||
0, 0, w, h, 0, glx_visualinfo->depth,
|
||||
InputOutput, glx_visualinfo->visual,
|
||||
mask, &attributes);
|
||||
|
@ -207,10 +207,10 @@ int X11_GL_CreateContext(_THIS)
|
|||
int retval;
|
||||
#if SDL_VIDEO_OPENGL_GLX
|
||||
/* We do this to create a clean separation between X and GLX errors. */
|
||||
pXSync( SDL_Display, False );
|
||||
XSync( SDL_Display, False );
|
||||
glx_context = this->gl_data->glXCreateContext(GFX_Display,
|
||||
glx_visualinfo, NULL, True);
|
||||
pXSync( GFX_Display, False );
|
||||
XSync( GFX_Display, False );
|
||||
|
||||
if (glx_context == NULL) {
|
||||
SDL_SetError("Could not create GL context");
|
||||
|
@ -258,7 +258,7 @@ int X11_GL_MakeCurrent(_THIS)
|
|||
SDL_SetError("Unable to make GL context current");
|
||||
retval = -1;
|
||||
}
|
||||
pXSync( GFX_Display, False );
|
||||
XSync( GFX_Display, False );
|
||||
|
||||
/* More Voodoo X server workarounds... Grr... */
|
||||
SDL_Lock_EventThread();
|
||||
|
|
|
@ -44,6 +44,10 @@ static int shm_errhandler(Display *d, XErrorEvent *e)
|
|||
|
||||
static void try_mitshm(_THIS, SDL_Surface *screen)
|
||||
{
|
||||
/* Dynamic X11 may not have SHM entry points on this box. */
|
||||
if ((use_mitshm) && (!SDL_X11_HAVE_SHM))
|
||||
use_mitshm = 0;
|
||||
|
||||
if(!use_mitshm)
|
||||
return;
|
||||
shminfo.shmid = shmget(IPC_PRIVATE, screen->h*screen->pitch,
|
||||
|
@ -53,10 +57,10 @@ static void try_mitshm(_THIS, SDL_Surface *screen)
|
|||
shminfo.readOnly = False;
|
||||
if ( shminfo.shmaddr != (char *)-1 ) {
|
||||
shm_error = False;
|
||||
X_handler = pXSetErrorHandler(shm_errhandler);
|
||||
pXShmAttach(SDL_Display, &shminfo);
|
||||
pXSync(SDL_Display, True);
|
||||
pXSetErrorHandler(X_handler);
|
||||
X_handler = XSetErrorHandler(shm_errhandler);
|
||||
XShmAttach(SDL_Display, &shminfo);
|
||||
XSync(SDL_Display, True);
|
||||
XSetErrorHandler(X_handler);
|
||||
if ( shm_error )
|
||||
shmdt(shminfo.shmaddr);
|
||||
} else {
|
||||
|
@ -82,13 +86,13 @@ int X11_SetupImage(_THIS, SDL_Surface *screen)
|
|||
#ifndef NO_SHARED_MEMORY
|
||||
try_mitshm(this, screen);
|
||||
if(use_mitshm) {
|
||||
SDL_Ximage = pXShmCreateImage(SDL_Display, SDL_Visual,
|
||||
SDL_Ximage = XShmCreateImage(SDL_Display, SDL_Visual,
|
||||
this->hidden->depth, ZPixmap,
|
||||
shminfo.shmaddr, &shminfo,
|
||||
screen->w, screen->h);
|
||||
if(!SDL_Ximage) {
|
||||
pXShmDetach(SDL_Display, &shminfo);
|
||||
pXSync(SDL_Display, False);
|
||||
XShmDetach(SDL_Display, &shminfo);
|
||||
XSync(SDL_Display, False);
|
||||
shmdt(shminfo.shmaddr);
|
||||
screen->pixels = NULL;
|
||||
goto error;
|
||||
|
@ -105,7 +109,7 @@ int X11_SetupImage(_THIS, SDL_Surface *screen)
|
|||
return -1;
|
||||
}
|
||||
bpp = screen->format->BytesPerPixel;
|
||||
SDL_Ximage = pXCreateImage(SDL_Display, SDL_Visual,
|
||||
SDL_Ximage = XCreateImage(SDL_Display, SDL_Visual,
|
||||
this->hidden->depth, ZPixmap, 0,
|
||||
(char *)screen->pixels,
|
||||
screen->w, screen->h,
|
||||
|
@ -128,11 +132,11 @@ error:
|
|||
void X11_DestroyImage(_THIS, SDL_Surface *screen)
|
||||
{
|
||||
if ( SDL_Ximage ) {
|
||||
pXDestroyImage(SDL_Ximage);
|
||||
XDestroyImage(SDL_Ximage);
|
||||
#ifndef NO_SHARED_MEMORY
|
||||
if ( use_mitshm ) {
|
||||
pXShmDetach(SDL_Display, &shminfo);
|
||||
pXSync(SDL_Display, False);
|
||||
XShmDetach(SDL_Display, &shminfo);
|
||||
XSync(SDL_Display, False);
|
||||
shmdt(shminfo.shmaddr);
|
||||
}
|
||||
#endif /* ! NO_SHARED_MEMORY */
|
||||
|
@ -213,7 +217,7 @@ void X11_FreeHWSurface(_THIS, SDL_Surface *surface)
|
|||
int X11_LockHWSurface(_THIS, SDL_Surface *surface)
|
||||
{
|
||||
if ( (surface == SDL_VideoSurface) && blit_queued ) {
|
||||
pXSync(GFX_Display, False);
|
||||
XSync(GFX_Display, False);
|
||||
blit_queued = 0;
|
||||
}
|
||||
return(0);
|
||||
|
@ -236,15 +240,15 @@ static void X11_NormalUpdate(_THIS, int numrects, SDL_Rect *rects)
|
|||
if ( rects[i].w == 0 || rects[i].h == 0 ) { /* Clipped? */
|
||||
continue;
|
||||
}
|
||||
pXPutImage(GFX_Display, SDL_Window, SDL_GC, SDL_Ximage,
|
||||
XPutImage(GFX_Display, SDL_Window, SDL_GC, SDL_Ximage,
|
||||
rects[i].x, rects[i].y,
|
||||
rects[i].x, rects[i].y, rects[i].w, rects[i].h);
|
||||
}
|
||||
if ( SDL_VideoSurface->flags & SDL_ASYNCBLIT ) {
|
||||
pXFlush(GFX_Display);
|
||||
XFlush(GFX_Display);
|
||||
blit_queued = 1;
|
||||
} else {
|
||||
pXSync(GFX_Display, False);
|
||||
XSync(GFX_Display, False);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -257,16 +261,16 @@ static void X11_MITSHMUpdate(_THIS, int numrects, SDL_Rect *rects)
|
|||
if ( rects[i].w == 0 || rects[i].h == 0 ) { /* Clipped? */
|
||||
continue;
|
||||
}
|
||||
pXShmPutImage(GFX_Display, SDL_Window, SDL_GC, SDL_Ximage,
|
||||
XShmPutImage(GFX_Display, SDL_Window, SDL_GC, SDL_Ximage,
|
||||
rects[i].x, rects[i].y,
|
||||
rects[i].x, rects[i].y, rects[i].w, rects[i].h,
|
||||
False);
|
||||
}
|
||||
if ( SDL_VideoSurface->flags & SDL_ASYNCBLIT ) {
|
||||
pXFlush(GFX_Display);
|
||||
XFlush(GFX_Display);
|
||||
blit_queued = 1;
|
||||
} else {
|
||||
pXSync(GFX_Display, False);
|
||||
XSync(GFX_Display, False);
|
||||
}
|
||||
#endif /* ! NO_SHARED_MEMORY */
|
||||
}
|
||||
|
@ -300,14 +304,15 @@ void X11_RefreshDisplay(_THIS)
|
|||
}
|
||||
#ifndef NO_SHARED_MEMORY
|
||||
if ( this->UpdateRects == X11_MITSHMUpdate ) {
|
||||
pXShmPutImage(SDL_Display, SDL_Window, SDL_GC, SDL_Ximage,
|
||||
XShmPutImage(SDL_Display, SDL_Window, SDL_GC, SDL_Ximage,
|
||||
0, 0, 0, 0, this->screen->w, this->screen->h,
|
||||
False);
|
||||
} else
|
||||
#endif /* ! NO_SHARED_MEMORY */
|
||||
{
|
||||
pXPutImage(SDL_Display, SDL_Window, SDL_GC, SDL_Ximage,
|
||||
XPutImage(SDL_Display, SDL_Window, SDL_GC, SDL_Ximage,
|
||||
0, 0, 0, 0, this->screen->w, this->screen->h);
|
||||
}
|
||||
pXSync(SDL_Display, False);
|
||||
XSync(SDL_Display, False);
|
||||
}
|
||||
|
||||
|
|
|
@ -135,7 +135,7 @@ static void set_best_resolution(_THIS, int width, int height)
|
|||
(modes[i]->vdisplay != mode.vdisplay) ) {
|
||||
SDL_NAME(XF86VidModeSwitchToMode)(SDL_Display, SDL_Screen, modes[i]);
|
||||
}
|
||||
pXFree(modes);
|
||||
XFree(modes);
|
||||
}
|
||||
}
|
||||
#endif /* SDL_VIDEO_DRIVER_X11_VIDMODE */
|
||||
|
@ -174,7 +174,7 @@ static void set_best_resolution(_THIS, int width, int height)
|
|||
SDL_modelist[i]->w,
|
||||
SDL_modelist[i]->h,
|
||||
0);
|
||||
pXSync(SDL_Display, False);
|
||||
XSync(SDL_Display, False);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -224,7 +224,7 @@ void X11_WaitMapped(_THIS, Window win)
|
|||
{
|
||||
XEvent event;
|
||||
do {
|
||||
pXMaskEvent(SDL_Display, StructureNotifyMask, &event);
|
||||
XMaskEvent(SDL_Display, StructureNotifyMask, &event);
|
||||
} while ( (event.type != MapNotify) || (event.xmap.event != win) );
|
||||
}
|
||||
|
||||
|
@ -233,19 +233,19 @@ void X11_WaitUnmapped(_THIS, Window win)
|
|||
{
|
||||
XEvent event;
|
||||
do {
|
||||
pXMaskEvent(SDL_Display, StructureNotifyMask, &event);
|
||||
XMaskEvent(SDL_Display, StructureNotifyMask, &event);
|
||||
} while ( (event.type != UnmapNotify) || (event.xunmap.event != win) );
|
||||
}
|
||||
|
||||
static void move_cursor_to(_THIS, int x, int y)
|
||||
{
|
||||
pXWarpPointer(SDL_Display, None, SDL_Root, 0, 0, 0, 0, x, y);
|
||||
XWarpPointer(SDL_Display, None, SDL_Root, 0, 0, 0, 0, x, y);
|
||||
}
|
||||
|
||||
static int add_visual(_THIS, int depth, int class)
|
||||
{
|
||||
XVisualInfo vi;
|
||||
if(pXMatchVisualInfo(SDL_Display, SDL_Screen, depth, class, &vi)) {
|
||||
if(XMatchVisualInfo(SDL_Display, SDL_Screen, depth, class, &vi)) {
|
||||
int n = this->hidden->nvisuals;
|
||||
this->hidden->visuals[n].depth = vi.depth;
|
||||
this->hidden->visuals[n].visual = vi.visual;
|
||||
|
@ -261,13 +261,13 @@ static int add_visual_byid(_THIS, const char *visual_id)
|
|||
if ( visual_id ) {
|
||||
SDL_memset(&template, 0, (sizeof template));
|
||||
template.visualid = SDL_strtol(visual_id, NULL, 0);
|
||||
vi = pXGetVisualInfo(SDL_Display, VisualIDMask, &template, &nvis);
|
||||
vi = XGetVisualInfo(SDL_Display, VisualIDMask, &template, &nvis);
|
||||
if ( vi ) {
|
||||
int n = this->hidden->nvisuals;
|
||||
this->hidden->visuals[n].depth = vi->depth;
|
||||
this->hidden->visuals[n].visual = vi->visual;
|
||||
this->hidden->nvisuals++;
|
||||
pXFree(vi);
|
||||
XFree(vi);
|
||||
}
|
||||
}
|
||||
return(this->hidden->nvisuals);
|
||||
|
@ -403,7 +403,7 @@ int X11_GetVideoModes(_THIS)
|
|||
}
|
||||
SDL_modelist[n] = NULL;
|
||||
}
|
||||
pXFree(modes);
|
||||
XFree(modes);
|
||||
|
||||
use_vidmode = vm_major * 100 + vm_minor;
|
||||
save_mode(this);
|
||||
|
@ -477,7 +477,7 @@ int X11_GetVideoModes(_THIS)
|
|||
use_xme = 0;
|
||||
}
|
||||
if ( modelist ) {
|
||||
pXFree(modelist);
|
||||
XFree(modelist);
|
||||
}
|
||||
#endif /* SDL_VIDEO_DRIVER_X11_XME */
|
||||
|
||||
|
@ -512,7 +512,7 @@ int X11_GetVideoModes(_THIS)
|
|||
}
|
||||
|
||||
/* look up the pixel quantum for each depth */
|
||||
pf = pXListPixmapFormats(SDL_Display, &np);
|
||||
pf = XListPixmapFormats(SDL_Display, &np);
|
||||
for(i = 0; i < this->hidden->nvisuals; i++) {
|
||||
int d = this->hidden->visuals[i].depth;
|
||||
for(j = 0; j < np; j++)
|
||||
|
@ -521,7 +521,7 @@ int X11_GetVideoModes(_THIS)
|
|||
this->hidden->visuals[i].bpp = j < np ? pf[j].bits_per_pixel : d;
|
||||
}
|
||||
|
||||
pXFree(pf);
|
||||
XFree(pf);
|
||||
}
|
||||
|
||||
if ( SDL_modelist == NULL ) {
|
||||
|
@ -595,7 +595,7 @@ int X11_GetVideoModes(_THIS)
|
|||
xinerama_y = xinerama[i].y_org;
|
||||
}
|
||||
}
|
||||
pXFree(xinerama);
|
||||
XFree(xinerama);
|
||||
}
|
||||
#endif /* SDL_VIDEO_DRIVER_X11_XINERAMA */
|
||||
|
||||
|
@ -661,15 +661,15 @@ int X11_ResizeFullScreen(_THIS)
|
|||
if ( window_h > real_h ) {
|
||||
real_h = MAX(real_h, screen_h);
|
||||
}
|
||||
pXMoveResizeWindow(SDL_Display, FSwindow, x, y, real_w, real_h);
|
||||
XMoveResizeWindow(SDL_Display, FSwindow, x, y, real_w, real_h);
|
||||
move_cursor_to(this, real_w/2, real_h/2);
|
||||
|
||||
/* Center and reparent the drawing window */
|
||||
x = (real_w - window_w)/2;
|
||||
y = (real_h - window_h)/2;
|
||||
pXReparentWindow(SDL_Display, SDL_Window, FSwindow, x, y);
|
||||
XReparentWindow(SDL_Display, SDL_Window, FSwindow, x, y);
|
||||
/* FIXME: move the mouse to the old relative location */
|
||||
pXSync(SDL_Display, True); /* Flush spurious mode change events */
|
||||
XSync(SDL_Display, True); /* Flush spurious mode change events */
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
|
@ -679,7 +679,7 @@ void X11_QueueEnterFullScreen(_THIS)
|
|||
switch_waiting = 0x01 | SDL_FULLSCREEN;
|
||||
switch_time = SDL_GetTicks() + 1500;
|
||||
#if 0 /* This causes a BadMatch error if the window is iconified (not needed) */
|
||||
pXSetInputFocus(SDL_Display, WMwindow, RevertToNone, CurrentTime);
|
||||
XSetInputFocus(SDL_Display, WMwindow, RevertToNone, CurrentTime);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -712,14 +712,14 @@ int X11_EnterFullScreen(_THIS)
|
|||
if ( window_h > real_h ) {
|
||||
real_h = MAX(real_h, screen_h);
|
||||
}
|
||||
pXMoveResizeWindow(SDL_Display, FSwindow,
|
||||
XMoveResizeWindow(SDL_Display, FSwindow,
|
||||
xinerama_x, xinerama_y, real_w, real_h);
|
||||
pXMapRaised(SDL_Display, FSwindow);
|
||||
XMapRaised(SDL_Display, FSwindow);
|
||||
X11_WaitMapped(this, FSwindow);
|
||||
|
||||
#if 0 /* This seems to break WindowMaker in focus-follows-mouse mode */
|
||||
/* Make sure we got to the top of the window stack */
|
||||
if ( pXQueryTree(SDL_Display, SDL_Root, &tmpwin, &tmpwin,
|
||||
if ( XQueryTree(SDL_Display, SDL_Root, &tmpwin, &tmpwin,
|
||||
&windows, &nwindows) && windows ) {
|
||||
/* If not, try to put us there - if fail... oh well */
|
||||
if ( windows[nwindows-1] != FSwindow ) {
|
||||
|
@ -732,13 +732,13 @@ int X11_EnterFullScreen(_THIS)
|
|||
}
|
||||
}
|
||||
windows[nwindows-1] = FSwindow;
|
||||
pXRestackWindows(SDL_Display, windows, nwindows);
|
||||
pXSync(SDL_Display, False);
|
||||
XRestackWindows(SDL_Display, windows, nwindows);
|
||||
XSync(SDL_Display, False);
|
||||
}
|
||||
pXFree(windows);
|
||||
XFree(windows);
|
||||
}
|
||||
#else
|
||||
pXRaiseWindow(SDL_Display, FSwindow);
|
||||
XRaiseWindow(SDL_Display, FSwindow);
|
||||
#endif
|
||||
|
||||
#if SDL_VIDEO_DRIVER_X11_VIDMODE
|
||||
|
@ -756,7 +756,7 @@ int X11_EnterFullScreen(_THIS)
|
|||
}
|
||||
/* Set the colormap */
|
||||
if ( SDL_XColorMap ) {
|
||||
pXInstallColormap(SDL_Display, SDL_XColorMap);
|
||||
XInstallColormap(SDL_Display, SDL_XColorMap);
|
||||
}
|
||||
if ( okay )
|
||||
X11_GrabInputNoLock(this, this->input_grab | SDL_GRAB_FULLSCREEN);
|
||||
|
@ -777,7 +777,7 @@ int X11_EnterFullScreen(_THIS)
|
|||
int X11_LeaveFullScreen(_THIS)
|
||||
{
|
||||
if ( currently_fullscreen ) {
|
||||
pXReparentWindow(SDL_Display, SDL_Window, WMwindow, 0, 0);
|
||||
XReparentWindow(SDL_Display, SDL_Window, WMwindow, 0, 0);
|
||||
#if SDL_VIDEO_DRIVER_X11_VIDMODE
|
||||
if ( use_vidmode ) {
|
||||
restore_mode(this);
|
||||
|
@ -799,14 +799,14 @@ int X11_LeaveFullScreen(_THIS)
|
|||
saved_res.width,
|
||||
saved_res.height,
|
||||
0);
|
||||
pXSync(SDL_Display, False);
|
||||
XSync(SDL_Display, False);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
pXUnmapWindow(SDL_Display, FSwindow);
|
||||
XUnmapWindow(SDL_Display, FSwindow);
|
||||
X11_WaitUnmapped(this, FSwindow);
|
||||
pXSync(SDL_Display, True); /* Flush spurious mode change events */
|
||||
XSync(SDL_Display, True); /* Flush spurious mode change events */
|
||||
currently_fullscreen = 0;
|
||||
}
|
||||
/* If we get popped out of fullscreen mode for some reason, input_grab
|
||||
|
|
|
@ -41,8 +41,8 @@ void X11_FreeWMCursor(_THIS, WMcursor *cursor)
|
|||
{
|
||||
if ( SDL_Display != NULL ) {
|
||||
SDL_Lock_EventThread();
|
||||
pXFreeCursor(SDL_Display, cursor->x_cursor);
|
||||
pXSync(SDL_Display, False);
|
||||
XFreeCursor(SDL_Display, cursor->x_cursor);
|
||||
XSync(SDL_Display, False);
|
||||
SDL_Unlock_EventThread();
|
||||
}
|
||||
SDL_free(cursor);
|
||||
|
@ -96,48 +96,48 @@ WMcursor *X11_CreateWMCursor(_THIS,
|
|||
SDL_Lock_EventThread();
|
||||
|
||||
/* Create the data image */
|
||||
data_image = pXCreateImage(SDL_Display,
|
||||
data_image = XCreateImage(SDL_Display,
|
||||
DefaultVisual(SDL_Display, SDL_Screen),
|
||||
1, XYBitmap, 0, x_data, w, h, 8, w/8);
|
||||
data_image->byte_order = MSBFirst;
|
||||
data_image->bitmap_bit_order = MSBFirst;
|
||||
data_pixmap = pXCreatePixmap(SDL_Display, SDL_Root, w, h, 1);
|
||||
data_pixmap = XCreatePixmap(SDL_Display, SDL_Root, w, h, 1);
|
||||
|
||||
/* Create the data mask */
|
||||
mask_image = pXCreateImage(SDL_Display,
|
||||
mask_image = XCreateImage(SDL_Display,
|
||||
DefaultVisual(SDL_Display, SDL_Screen),
|
||||
1, XYBitmap, 0, x_mask, w, h, 8, w/8);
|
||||
mask_image->byte_order = MSBFirst;
|
||||
mask_image->bitmap_bit_order = MSBFirst;
|
||||
mask_pixmap = pXCreatePixmap(SDL_Display, SDL_Root, w, h, 1);
|
||||
mask_pixmap = XCreatePixmap(SDL_Display, SDL_Root, w, h, 1);
|
||||
|
||||
/* Create the graphics context */
|
||||
GCvalues.function = GXcopy;
|
||||
GCvalues.foreground = ~0;
|
||||
GCvalues.background = 0;
|
||||
GCvalues.plane_mask = AllPlanes;
|
||||
GCcursor = pXCreateGC(SDL_Display, data_pixmap,
|
||||
GCcursor = XCreateGC(SDL_Display, data_pixmap,
|
||||
(GCFunction|GCForeground|GCBackground|GCPlaneMask),
|
||||
&GCvalues);
|
||||
|
||||
/* Blit the images to the pixmaps */
|
||||
pXPutImage(SDL_Display, data_pixmap, GCcursor, data_image,
|
||||
XPutImage(SDL_Display, data_pixmap, GCcursor, data_image,
|
||||
0, 0, 0, 0, w, h);
|
||||
pXPutImage(SDL_Display, mask_pixmap, GCcursor, mask_image,
|
||||
XPutImage(SDL_Display, mask_pixmap, GCcursor, mask_image,
|
||||
0, 0, 0, 0, w, h);
|
||||
pXFreeGC(SDL_Display, GCcursor);
|
||||
XFreeGC(SDL_Display, GCcursor);
|
||||
/* These free the x_data and x_mask memory pointers */
|
||||
pXDestroyImage(data_image);
|
||||
pXDestroyImage(mask_image);
|
||||
XDestroyImage(data_image);
|
||||
XDestroyImage(mask_image);
|
||||
|
||||
/* Create the cursor */
|
||||
cursor->x_cursor = pXCreatePixmapCursor(SDL_Display, data_pixmap,
|
||||
cursor->x_cursor = XCreatePixmapCursor(SDL_Display, data_pixmap,
|
||||
mask_pixmap, &black, &white, hot_x, hot_y);
|
||||
pXFreePixmap(SDL_Display, data_pixmap);
|
||||
pXFreePixmap(SDL_Display, mask_pixmap);
|
||||
XFreePixmap(SDL_Display, data_pixmap);
|
||||
XFreePixmap(SDL_Display, mask_pixmap);
|
||||
|
||||
/* Release the event thread */
|
||||
pXSync(SDL_Display, False);
|
||||
XSync(SDL_Display, False);
|
||||
SDL_Unlock_EventThread();
|
||||
|
||||
return(cursor);
|
||||
|
@ -155,13 +155,13 @@ int X11_ShowWMCursor(_THIS, WMcursor *cursor)
|
|||
SDL_Lock_EventThread();
|
||||
if ( cursor == NULL ) {
|
||||
if ( SDL_BlankCursor != NULL ) {
|
||||
pXDefineCursor(SDL_Display, SDL_Window,
|
||||
XDefineCursor(SDL_Display, SDL_Window,
|
||||
SDL_BlankCursor->x_cursor);
|
||||
}
|
||||
} else {
|
||||
pXDefineCursor(SDL_Display, SDL_Window, cursor->x_cursor);
|
||||
XDefineCursor(SDL_Display, SDL_Window, cursor->x_cursor);
|
||||
}
|
||||
pXSync(SDL_Display, False);
|
||||
XSync(SDL_Display, False);
|
||||
SDL_Unlock_EventThread();
|
||||
}
|
||||
return(1);
|
||||
|
@ -178,8 +178,8 @@ void X11_WarpWMCursor(_THIS, Uint16 x, Uint16 y)
|
|||
SDL_PrivateMouseMotion(0, 0, x, y);
|
||||
} else {
|
||||
SDL_Lock_EventThread();
|
||||
pXWarpPointer(SDL_Display, None, SDL_Window, 0, 0, 0, 0, x, y);
|
||||
pXSync(SDL_Display, False);
|
||||
XWarpPointer(SDL_Display, None, SDL_Window, 0, 0, 0, 0, x, y);
|
||||
XSync(SDL_Display, False);
|
||||
SDL_Unlock_EventThread();
|
||||
}
|
||||
}
|
||||
|
@ -217,7 +217,7 @@ static void SetMouseAccel(_THIS, const char *accel_param)
|
|||
}
|
||||
}
|
||||
if ( mouse_param_buf ) {
|
||||
pXChangePointerControl(SDL_Display, True, True,
|
||||
XChangePointerControl(SDL_Display, True, True,
|
||||
accel_value[0], accel_value[1], accel_value[2]);
|
||||
SDL_free(mouse_param_buf);
|
||||
}
|
||||
|
@ -250,7 +250,7 @@ void X11_CheckMouseModeNoLock(_THIS)
|
|||
|
||||
SDL_GetMouseState(&mouse_last.x, &mouse_last.y);
|
||||
/* Use as raw mouse mickeys as possible */
|
||||
pXGetPointerControl(SDL_Display,
|
||||
XGetPointerControl(SDL_Display,
|
||||
&mouse_accel.numerator,
|
||||
&mouse_accel.denominator,
|
||||
&mouse_accel.threshold);
|
||||
|
@ -266,7 +266,7 @@ void X11_CheckMouseModeNoLock(_THIS)
|
|||
if ( using_dga & DGA_MOUSE ) {
|
||||
X11_DisableDGAMouse(this);
|
||||
} else {
|
||||
pXChangePointerControl(SDL_Display, True, True,
|
||||
XChangePointerControl(SDL_Display, True, True,
|
||||
mouse_accel.numerator,
|
||||
mouse_accel.denominator,
|
||||
mouse_accel.threshold);
|
||||
|
|
|
@ -20,154 +20,159 @@
|
|||
slouken@libsdl.org
|
||||
*/
|
||||
|
||||
SDL_X11_SYM(1,XClassHint*,XAllocClassHint,(void))
|
||||
SDL_X11_SYM(1,Status,XAllocColor,(Display*,Colormap,XColor*))
|
||||
SDL_X11_SYM(1,XSizeHints*,XAllocSizeHints,(void))
|
||||
SDL_X11_SYM(1,XWMHints*,XAllocWMHints,(void))
|
||||
SDL_X11_SYM(1,int,XChangePointerControl,(Display*,Bool,Bool,int,int,int))
|
||||
SDL_X11_SYM(1,int,XChangeProperty,(Display*,Window,Atom,Atom,int,int,_Xconst unsigned char*,int))
|
||||
SDL_X11_SYM(1,int,XChangeWindowAttributes,(Display*,Window,unsigned long,XSetWindowAttributes*))
|
||||
SDL_X11_SYM(1,Bool,XCheckTypedEvent,(Display*,int,XEvent*))
|
||||
SDL_X11_SYM(1,int,XClearWindow,(Display*,Window))
|
||||
SDL_X11_SYM(1,int,XCloseDisplay,(Display*))
|
||||
SDL_X11_SYM(1,Colormap,XCreateColormap,(Display*,Window,Visual*,int))
|
||||
SDL_X11_SYM(1,Cursor,XCreatePixmapCursor,(Display*,Pixmap,Pixmap,XColor*,XColor*,unsigned int,unsigned int))
|
||||
SDL_X11_SYM(1,GC,XCreateGC,(Display*,Drawable,unsigned long,XGCValues*))
|
||||
SDL_X11_SYM(1,XImage*,XCreateImage,(Display*,Visual*,unsigned int,int,int,char*,unsigned int,unsigned int,int,int))
|
||||
SDL_X11_SYM(1,Pixmap,XCreatePixmap,(Display*,Drawable,unsigned int,unsigned int,unsigned int))
|
||||
SDL_X11_SYM(1,Pixmap,XCreatePixmapFromBitmapData,(Display*,Drawable,char*,unsigned int,unsigned int,unsigned long,unsigned long,unsigned int))
|
||||
SDL_X11_SYM(1,Window,XCreateSimpleWindow,(Display*,Window,int,int,unsigned int,unsigned int,unsigned int,unsigned long,unsigned long))
|
||||
SDL_X11_SYM(1,Window,XCreateWindow,(Display*,Window,int,int,unsigned int,unsigned int,unsigned int,int,unsigned int,Visual*,unsigned long,XSetWindowAttributes*))
|
||||
SDL_X11_SYM(1,int,XDefineCursor,(Display*,Window,Cursor))
|
||||
SDL_X11_SYM(1,int,XDeleteProperty,(Display*,Window,Atom))
|
||||
SDL_X11_SYM(1,int,XDestroyWindow,(Display*,Window))
|
||||
SDL_X11_SYM(1,char*,XDisplayName,(_Xconst char*))
|
||||
SDL_X11_SYM(1,int,XEventsQueued,(Display*,int))
|
||||
SDL_X11_SYM(1,Bool,XFilterEvent,(XEvent *event, Window w))
|
||||
SDL_X11_SYM(1,int,XFlush,(Display*))
|
||||
SDL_X11_SYM(1,int,XFree,(void*))
|
||||
SDL_X11_SYM(1,int,XFreeColormap,(Display*,Colormap))
|
||||
SDL_X11_SYM(1,int,XFreeColors,(Display*,Colormap,unsigned long*,int,unsigned long))
|
||||
SDL_X11_SYM(1,int,XFreeCursor,(Display*,Cursor))
|
||||
SDL_X11_SYM(1,int,XFreeGC,(Display*,GC))
|
||||
SDL_X11_SYM(1,int,XFreeModifiermap,(XModifierKeymap*))
|
||||
SDL_X11_SYM(1,int,XFreePixmap,(Display*,Pixmap))
|
||||
SDL_X11_SYM(1,int,XGetErrorDatabaseText,(Display*,_Xconst char*,_Xconst char*,_Xconst char*,char*,int))
|
||||
SDL_X11_SYM(1,XModifierKeymap*,XGetModifierMapping,(Display*))
|
||||
SDL_X11_SYM(1,int,XGetPointerControl,(Display*,int*,int*,int*))
|
||||
SDL_X11_SYM(1,XVisualInfo*,XGetVisualInfo,(Display*,long,XVisualInfo*,int*))
|
||||
SDL_X11_SYM(1,XWMHints*,XGetWMHints,(Display*,Window))
|
||||
SDL_X11_SYM(1,Status,XGetTextProperty,(Display*,Window,XTextProperty*,Atom))
|
||||
SDL_X11_SYM(1,Status,XGetWindowAttributes,(Display*,Window,XWindowAttributes*))
|
||||
SDL_X11_SYM(1,int,XGrabKeyboard,(Display*,Window,Bool,int,int,Time))
|
||||
SDL_X11_SYM(1,int,XGrabPointer,(Display*,Window,Bool,unsigned int,int,int,Window,Cursor,Time))
|
||||
SDL_X11_SYM(1,Status,XIconifyWindow,(Display*,Window,int))
|
||||
SDL_X11_SYM(1,int,XInstallColormap,(Display*,Colormap))
|
||||
SDL_X11_SYM(1,KeyCode,XKeysymToKeycode,(Display*,KeySym))
|
||||
SDL_X11_SYM(1,Atom,XInternAtom,(Display*,_Xconst char*,Bool))
|
||||
SDL_X11_SYM(1,XPixmapFormatValues*,XListPixmapFormats,(Display*,int*))
|
||||
SDL_X11_SYM(1,int,XLookupString,(XKeyEvent*,char*,int,KeySym*,XComposeStatus*))
|
||||
SDL_X11_SYM(1,int,XMapRaised,(Display*,Window))
|
||||
SDL_X11_SYM(1,int,XMapWindow,(Display*,Window))
|
||||
SDL_X11_SYM(1,int,XMaskEvent,(Display*,long,XEvent*))
|
||||
SDL_X11_SYM(1,Status,XMatchVisualInfo,(Display*,int,int,int,XVisualInfo*))
|
||||
SDL_X11_SYM(1,int,XMissingExtension,(Display*,_Xconst char*))
|
||||
SDL_X11_SYM(1,int,XMoveResizeWindow,(Display*,Window,int,int,unsigned int,unsigned int))
|
||||
SDL_X11_SYM(1,int,XMoveWindow,(Display*,Window,int,int))
|
||||
SDL_X11_SYM(1,int,XNextEvent,(Display*,XEvent*))
|
||||
SDL_X11_SYM(1,Display*,XOpenDisplay,(_Xconst char*))
|
||||
SDL_X11_SYM(1,int,XPeekEvent,(Display*,XEvent*))
|
||||
SDL_X11_SYM(1,int,XPending,(Display*))
|
||||
SDL_X11_SYM(1,int,XPutImage,(Display*,Drawable,GC,XImage*,int,int,int,int,unsigned int,unsigned int))
|
||||
SDL_X11_SYM(1,int,XQueryColors,(Display*,Colormap,XColor*,int))
|
||||
SDL_X11_SYM(1,int,XQueryKeymap,(Display*,char [32]))
|
||||
SDL_X11_SYM(1,Bool,XQueryPointer,(Display*,Window,Window*,Window*,int*,int*,int*,int*,unsigned int*))
|
||||
SDL_X11_SYM(1,int,XRaiseWindow,(Display*,Window))
|
||||
SDL_X11_SYM(1,int,XReparentWindow,(Display*,Window,Window,int,int))
|
||||
SDL_X11_SYM(1,int,XResizeWindow,(Display*,Window,unsigned int,unsigned int))
|
||||
SDL_X11_SYM(1,int,XSelectInput,(Display*,Window,long))
|
||||
SDL_X11_SYM(1,Status,XSendEvent,(Display*,Window,Bool,long,XEvent*))
|
||||
SDL_X11_SYM(1,int,XSetClassHint,(Display*,Window,XClassHint*))
|
||||
SDL_X11_SYM(1,XErrorHandler,XSetErrorHandler,(XErrorHandler))
|
||||
SDL_X11_SYM(1,XIOErrorHandler,XSetIOErrorHandler,(XIOErrorHandler))
|
||||
SDL_X11_SYM(1,int,XSetTransientForHint,(Display*,Window,Window))
|
||||
SDL_X11_SYM(1,int,XSetWMHints,(Display*,Window,XWMHints*))
|
||||
SDL_X11_SYM(1,void,XSetTextProperty,(Display*,Window,XTextProperty*,Atom))
|
||||
SDL_X11_SYM(1,void,XSetWMNormalHints,(Display*,Window,XSizeHints*))
|
||||
SDL_X11_SYM(1,Status,XSetWMProtocols,(Display*,Window,Atom*,int))
|
||||
SDL_X11_SYM(1,int,XSetWindowBackground,(Display*,Window,unsigned long))
|
||||
SDL_X11_SYM(1,int,XSetWindowBackgroundPixmap,(Display*,Window,Pixmap))
|
||||
SDL_X11_SYM(1,int,XSetWindowColormap,(Display*,Window,Colormap))
|
||||
SDL_X11_SYM(1,int,XStoreColors,(Display*,Colormap,XColor*,int))
|
||||
SDL_X11_SYM(1,Status,XStringListToTextProperty,(char**,int,XTextProperty*))
|
||||
SDL_X11_SYM(1,int,XSync,(Display*,Bool))
|
||||
SDL_X11_SYM(1,int,XUngrabKeyboard,(Display*,Time))
|
||||
SDL_X11_SYM(1,int,XUngrabPointer,(Display*,Time))
|
||||
SDL_X11_SYM(1,int,XUnmapWindow,(Display*,Window))
|
||||
SDL_X11_SYM(1,int,XWarpPointer,(Display*,Window,Window,int,int,unsigned int,unsigned int,int,int))
|
||||
SDL_X11_SYM(1,VisualID,XVisualIDFromVisual,(Visual*))
|
||||
SDL_X11_SYM(1,XExtDisplayInfo*,XextAddDisplay,(XExtensionInfo*,Display*,char*,XExtensionHooks*,int,XPointer))
|
||||
SDL_X11_SYM(1,XExtensionInfo*,XextCreateExtension,(void))
|
||||
SDL_X11_SYM(1,void,XextDestroyExtension,(XExtensionInfo*))
|
||||
SDL_X11_SYM(1,XExtDisplayInfo*,XextFindDisplay,(XExtensionInfo*,Display*))
|
||||
SDL_X11_SYM(1,int,XextRemoveDisplay,(XExtensionInfo*,Display*))
|
||||
SDL_X11_SYM(1,Bool,XQueryExtension,(Display*,_Xconst char*,int*,int*,int*))
|
||||
SDL_X11_SYM(1,char *,XDisplayString,(Display*))
|
||||
SDL_X11_SYM(1,int,XGetErrorText,(Display*,int,char*,int))
|
||||
|
||||
#ifdef X_HAVE_UTF8_STRING
|
||||
SDL_X11_SYM(1,int,Xutf8TextListToTextProperty,(Display*,char**,int,XICCEncodingStyle,XTextProperty*))
|
||||
SDL_X11_SYM(1,int,Xutf8LookupString,(XIC,XKeyPressedEvent*,char*,int,KeySym*,Status*))
|
||||
SDL_X11_SYM(1,XIC,XCreateIC,(XIM, ...))
|
||||
SDL_X11_SYM(1,void,XDestroyIC,(XIC))
|
||||
SDL_X11_SYM(1,void,XSetICFocus,(XIC))
|
||||
SDL_X11_SYM(1,void,XUnsetICFocus,(XIC))
|
||||
SDL_X11_SYM(1,XIM,XOpenIM,(Display*,struct _XrmHashBucketRec*,char*,char*))
|
||||
SDL_X11_SYM(1,Status,XCloseIM,(XIM))
|
||||
#endif
|
||||
SDL_X11_SYM(1,void,_XEatData,(Display*,unsigned long))
|
||||
SDL_X11_SYM(1,void,_XFlush,(Display*))
|
||||
SDL_X11_SYM(1,void,_XFlushGCCache,(Display*,GC))
|
||||
SDL_X11_SYM(1,int,_XRead,(Display*,char*,long))
|
||||
SDL_X11_SYM(1,void,_XReadPad,(Display*,char*,long))
|
||||
SDL_X11_SYM(1,void,_XSend,(Display*,_Xconst char*,long))
|
||||
SDL_X11_SYM(1,Status,_XReply,(Display*,xReply*,int,Bool))
|
||||
SDL_X11_SYM(1,unsigned long,_XSetLastRequestRead,(Display*,xGenericReply*))
|
||||
|
||||
/*
|
||||
* These don't exist in 32-bit versions and are removed by Xlib macros, but
|
||||
* 64+ bit systems will use them.
|
||||
*/
|
||||
#if defined(LONG64)
|
||||
SDL_X11_SYM(1,int,_XData32,(Display *dpy,register long *data,unsigned len))
|
||||
SDL_X11_SYM(1,void,_XRead32,(Display *dpy,register long *data,long len))
|
||||
#endif
|
||||
|
||||
#if defined(__osf__)
|
||||
SDL_X11_SYM(1,void,_SmtBufferOverflow,(Display *dpy,register smtDisplayPtr))
|
||||
SDL_X11_SYM(1,void,_SmtIpError,(Display *dpy,register smtDisplayPtr, int))
|
||||
SDL_X11_SYM(1,int,ipAllocateData,(ChannelPtr, IPCard, IPDataPtr *))
|
||||
SDL_X11_SYM(1,int,ipUnallocateAndSendData,(ChannelPtr, IPCard))
|
||||
#endif
|
||||
SDL_X11_MODULE(BASEXLIB)
|
||||
SDL_X11_SYM(XClassHint*,XAllocClassHint,(void),(),return)
|
||||
SDL_X11_SYM(Status,XAllocColor,(Display* a,Colormap b,XColor* c),(a,b,c),return)
|
||||
SDL_X11_SYM(XSizeHints*,XAllocSizeHints,(void),(),return)
|
||||
SDL_X11_SYM(XWMHints*,XAllocWMHints,(void),(),return)
|
||||
SDL_X11_SYM(int,XChangePointerControl,(Display* a,Bool b,Bool c,int d,int e,int f),(a,b,c,d,e,f),return)
|
||||
SDL_X11_SYM(int,XChangeProperty,(Display* a,Window b,Atom c,Atom d,int e,int f,_Xconst unsigned char* g,int h),(a,b,c,d,e,f,g,h),return)
|
||||
SDL_X11_SYM(int,XChangeWindowAttributes,(Display* a,Window b,unsigned long c,XSetWindowAttributes* d),(a,b,c,d),return)
|
||||
SDL_X11_SYM(Bool,XCheckTypedEvent,(Display* a,int b,XEvent* c),(a,b,c),return)
|
||||
SDL_X11_SYM(int,XClearWindow,(Display* a,Window b),(a,b),return)
|
||||
SDL_X11_SYM(int,XCloseDisplay,(Display* a),(a),return)
|
||||
SDL_X11_SYM(Colormap,XCreateColormap,(Display* a,Window b,Visual* c,int d),(a,b,c,d),return)
|
||||
SDL_X11_SYM(Cursor,XCreatePixmapCursor,(Display* a,Pixmap b,Pixmap c,XColor* d,XColor* e,unsigned int f,unsigned int g),(a,b,c,d,e,f,g),return)
|
||||
SDL_X11_SYM(GC,XCreateGC,(Display* a,Drawable b,unsigned long c,XGCValues* d),(a,b,c,d),return)
|
||||
SDL_X11_SYM(XImage*,XCreateImage,(Display* a,Visual* b,unsigned int c,int d,int e,char* f,unsigned int g,unsigned int h,int i,int j),(a,b,c,d,e,f,g,h,i,j),return)
|
||||
SDL_X11_SYM(Pixmap,XCreatePixmap,(Display* a,Drawable b,unsigned int c,unsigned int d,unsigned int e),(a,b,c,d,e),return)
|
||||
SDL_X11_SYM(Pixmap,XCreatePixmapFromBitmapData,(Display* a,Drawable b,char* c,unsigned int d,unsigned int e,unsigned long f,unsigned long g,unsigned int h),(a,b,c,d,e,f,g,h),return)
|
||||
SDL_X11_SYM(Window,XCreateSimpleWindow,(Display* a,Window b,int c,int d,unsigned int e,unsigned int f,unsigned int g,unsigned long h,unsigned long i),(a,b,c,d,e,f,g,h,i),return)
|
||||
SDL_X11_SYM(Window,XCreateWindow,(Display* a,Window b,int c,int d,unsigned int e,unsigned int f,unsigned int g,int h,unsigned int i,Visual* j,unsigned long k,XSetWindowAttributes* l),(a,b,c,d,e,f,g,h,i,j,k,l),return)
|
||||
SDL_X11_SYM(int,XDefineCursor,(Display* a,Window b,Cursor c),(a,b,c),return)
|
||||
SDL_X11_SYM(int,XDeleteProperty,(Display* a,Window b,Atom c),(a,b,c),return)
|
||||
SDL_X11_SYM(int,XDestroyWindow,(Display* a,Window b),(a,b),return)
|
||||
SDL_X11_SYM(char*,XDisplayName,(_Xconst char* a),(a),return)
|
||||
SDL_X11_SYM(int,XEventsQueued,(Display* a,int b),(a,b),return)
|
||||
SDL_X11_SYM(Bool,XFilterEvent,(XEvent *event, Window w),(event,w),return)
|
||||
SDL_X11_SYM(int,XFlush,(Display* a),(a),return)
|
||||
SDL_X11_SYM(int,XFree,(void*a),(a),return)
|
||||
SDL_X11_SYM(int,XFreeColormap,(Display* a,Colormap b),(a,b),return)
|
||||
SDL_X11_SYM(int,XFreeColors,(Display* a,Colormap b,unsigned long* c,int d,unsigned long e),(a,b,c,d,e),return)
|
||||
SDL_X11_SYM(int,XFreeCursor,(Display* a,Cursor b),(a,b),return)
|
||||
SDL_X11_SYM(int,XFreeGC,(Display* a,GC b),(a,b),return)
|
||||
SDL_X11_SYM(int,XFreeModifiermap,(XModifierKeymap* a),(a),return)
|
||||
SDL_X11_SYM(int,XFreePixmap,(Display* a,Pixmap b),(a,b),return)
|
||||
SDL_X11_SYM(int,XGetErrorDatabaseText,(Display* a,_Xconst char* b,_Xconst char* c,_Xconst char* d,char* e,int f),(a,b,c,d,e,f),return)
|
||||
SDL_X11_SYM(XModifierKeymap*,XGetModifierMapping,(Display* a),(a),return)
|
||||
SDL_X11_SYM(int,XGetPointerControl,(Display* a,int* b,int* c,int* d),(a,b,c,d),return)
|
||||
SDL_X11_SYM(XVisualInfo*,XGetVisualInfo,(Display* a,long b,XVisualInfo* c,int* d),(a,b,c,d),return)
|
||||
SDL_X11_SYM(XWMHints*,XGetWMHints,(Display* a,Window b),(a,b),return)
|
||||
SDL_X11_SYM(Status,XGetTextProperty,(Display* a,Window b,XTextProperty* c,Atom d),(a,b,c,d),return)
|
||||
SDL_X11_SYM(Status,XGetWindowAttributes,(Display* a,Window b,XWindowAttributes* c),(a,b,c),return)
|
||||
SDL_X11_SYM(int,XGrabKeyboard,(Display* a,Window b,Bool c,int d,int e,Time f),(a,b,c,d,e,f),return)
|
||||
SDL_X11_SYM(int,XGrabPointer,(Display* a,Window b,Bool c,unsigned int d,int e,int f,Window g,Cursor h,Time i),(a,b,c,d,e,f,g,h,i),return)
|
||||
SDL_X11_SYM(Status,XIconifyWindow,(Display* a,Window b,int c),(a,b,c),return)
|
||||
SDL_X11_SYM(int,XInstallColormap,(Display* a,Colormap b),(a,b),return)
|
||||
SDL_X11_SYM(KeyCode,XKeysymToKeycode,(Display* a,KeySym b),(a,b),return)
|
||||
SDL_X11_SYM(Atom,XInternAtom,(Display* a,_Xconst char* b,Bool c),(a,b,c),return)
|
||||
SDL_X11_SYM(XPixmapFormatValues*,XListPixmapFormats,(Display* a,int* b),(a,b),return)
|
||||
SDL_X11_SYM(int,XLookupString,(XKeyEvent* a,char* b,int c,KeySym* d,XComposeStatus* e),(a,b,c,d,e),return)
|
||||
SDL_X11_SYM(int,XMapRaised,(Display* a,Window b),(a,b),return)
|
||||
SDL_X11_SYM(int,XMapWindow,(Display* a,Window b),(a,b),return)
|
||||
SDL_X11_SYM(int,XMaskEvent,(Display* a,long b,XEvent* c),(a,b,c),return)
|
||||
SDL_X11_SYM(Status,XMatchVisualInfo,(Display* a,int b,int c,int d,XVisualInfo* e),(a,b,c,d,e),return)
|
||||
SDL_X11_SYM(int,XMissingExtension,(Display* a,_Xconst char* b),(a,b),return)
|
||||
SDL_X11_SYM(int,XMoveResizeWindow,(Display* a,Window b,int c,int d,unsigned int e,unsigned int f),(a,b,c,d,e,f),return)
|
||||
SDL_X11_SYM(int,XMoveWindow,(Display* a,Window b,int c,int d),(a,b,c,d),return)
|
||||
SDL_X11_SYM(int,XNextEvent,(Display* a,XEvent* b),(a,b),return)
|
||||
SDL_X11_SYM(Display*,XOpenDisplay,(_Xconst char* a),(a),return)
|
||||
SDL_X11_SYM(int,XPeekEvent,(Display* a,XEvent* b),(a,b),return)
|
||||
SDL_X11_SYM(int,XPending,(Display* a),(a),return)
|
||||
SDL_X11_SYM(int,XPutImage,(Display* a,Drawable b,GC c,XImage* d,int e,int f,int g,int h,unsigned int i,unsigned int j),(a,b,c,d,e,f,g,h,i,j),return)
|
||||
SDL_X11_SYM(int,XQueryColors,(Display* a,Colormap b,XColor* c,int d),(a,b,c,d),return)
|
||||
SDL_X11_SYM(int,XQueryKeymap,(Display* a,char *b),(a,b),return)
|
||||
SDL_X11_SYM(Bool,XQueryPointer,(Display* a,Window b,Window* c,Window* d,int* e,int* f,int* g,int* h,unsigned int* i),(a,b,c,d,e,f,g,h,i),return)
|
||||
SDL_X11_SYM(int,XRaiseWindow,(Display* a,Window b),(a,b),return)
|
||||
SDL_X11_SYM(int,XReparentWindow,(Display* a,Window b,Window c,int d,int e),(a,b,c,d,e),return)
|
||||
SDL_X11_SYM(int,XResizeWindow,(Display* a,Window b,unsigned int c,unsigned int d),(a,b,c,d),return)
|
||||
SDL_X11_SYM(int,XSelectInput,(Display* a,Window b,long c),(a,b,c),return)
|
||||
SDL_X11_SYM(Status,XSendEvent,(Display* a,Window b,Bool c,long d,XEvent* e),(a,b,c,d,e),return)
|
||||
SDL_X11_SYM(int,XSetClassHint,(Display* a,Window b,XClassHint* c),(a,b,c),return)
|
||||
SDL_X11_SYM(XErrorHandler,XSetErrorHandler,(XErrorHandler a),(a),return)
|
||||
SDL_X11_SYM(XIOErrorHandler,XSetIOErrorHandler,(XIOErrorHandler a),(a),return)
|
||||
SDL_X11_SYM(int,XSetTransientForHint,(Display* a,Window b,Window c),(a,b,c),return)
|
||||
SDL_X11_SYM(int,XSetWMHints,(Display* a,Window b,XWMHints* c),(a,b,c),return)
|
||||
SDL_X11_SYM(void,XSetTextProperty,(Display* a,Window b,XTextProperty* c,Atom d),(a,b,c,d),)
|
||||
SDL_X11_SYM(void,XSetWMNormalHints,(Display* a,Window b,XSizeHints* c),(a,b,c),)
|
||||
SDL_X11_SYM(Status,XSetWMProtocols,(Display* a,Window b,Atom* c,int d),(a,b,c,d),return)
|
||||
SDL_X11_SYM(int,XSetWindowBackground,(Display* a,Window b,unsigned long c),(a,b,c),return)
|
||||
SDL_X11_SYM(int,XSetWindowBackgroundPixmap,(Display* a,Window b,Pixmap c),(a,b,c),return)
|
||||
SDL_X11_SYM(int,XSetWindowColormap,(Display* a,Window b,Colormap c),(a,b,c),return)
|
||||
SDL_X11_SYM(int,XStoreColors,(Display* a,Colormap b,XColor* c,int d),(a,b,c,d),return)
|
||||
SDL_X11_SYM(Status,XStringListToTextProperty,(char** a,int b,XTextProperty* c),(a,b,c),return)
|
||||
SDL_X11_SYM(int,XSync,(Display* a,Bool b),(a,b),return)
|
||||
SDL_X11_SYM(int,XUngrabKeyboard,(Display* a,Time b),(a,b),return)
|
||||
SDL_X11_SYM(int,XUngrabPointer,(Display* a,Time b),(a,b),return)
|
||||
SDL_X11_SYM(int,XUnmapWindow,(Display* a,Window b),(a,b),return)
|
||||
SDL_X11_SYM(int,XWarpPointer,(Display* a,Window b,Window c,int d,int e,unsigned int f,unsigned int g,int h, int i),(a,b,c,d,e,f,g,h,i),return)
|
||||
SDL_X11_SYM(VisualID,XVisualIDFromVisual,(Visual* a),(a),return)
|
||||
SDL_X11_SYM(XExtDisplayInfo*,XextAddDisplay,(XExtensionInfo* a,Display* b,char* c,XExtensionHooks* d,int e,XPointer f),(a,b,c,d,e,f),return)
|
||||
SDL_X11_SYM(XExtensionInfo*,XextCreateExtension,(void),(),return)
|
||||
SDL_X11_SYM(void,XextDestroyExtension,(XExtensionInfo* a),(a),)
|
||||
SDL_X11_SYM(XExtDisplayInfo*,XextFindDisplay,(XExtensionInfo* a,Display* b),(a,b),return)
|
||||
SDL_X11_SYM(int,XextRemoveDisplay,(XExtensionInfo* a,Display* b),(a,b),return)
|
||||
SDL_X11_SYM(Bool,XQueryExtension,(Display* a,_Xconst char* b,int* c,int* d,int* e),(a,b,c,d,e),return)
|
||||
SDL_X11_SYM(char *,XDisplayString,(Display* a),(a),return)
|
||||
SDL_X11_SYM(int,XGetErrorText,(Display* a,int b,char* c,int d),(a,b,c,d),return)
|
||||
SDL_X11_SYM(void,_XEatData,(Display* a,unsigned long b),(a,b),)
|
||||
SDL_X11_SYM(void,_XFlush,(Display* a),(a),)
|
||||
SDL_X11_SYM(void,_XFlushGCCache,(Display* a,GC b),(a,b),)
|
||||
SDL_X11_SYM(int,_XRead,(Display* a,char* b,long c),(a,b,c),return)
|
||||
SDL_X11_SYM(void,_XReadPad,(Display* a,char* b,long c),(a,b,c),)
|
||||
SDL_X11_SYM(void,_XSend,(Display* a,_Xconst char* b,long c),(a,b,c),)
|
||||
SDL_X11_SYM(Status,_XReply,(Display* a,xReply* b,int c,Bool d),(a,b,c,d),return)
|
||||
SDL_X11_SYM(unsigned long,_XSetLastRequestRead,(Display* a,xGenericReply* b),(a,b),return)
|
||||
SDL_X11_SYM(SDL_X11_XSynchronizeRetType,XSynchronize,(Display* a,Bool b),(a,b),return)
|
||||
SDL_X11_SYM(SDL_X11_XESetWireToEventRetType,XESetWireToEvent,(Display* a,int b,SDL_X11_XESetWireToEventRetType c),(a,b,c),return)
|
||||
SDL_X11_SYM(SDL_X11_XESetEventToWireRetType,XESetEventToWire,(Display* a,int b,SDL_X11_XESetEventToWireRetType c),(a,b,c),return)
|
||||
SDL_X11_SYM(SDL_X11_XSetExtensionErrorHandlerType,XSetExtensionErrorHandler,(SDL_X11_XSetExtensionErrorHandlerType a),(a),return)
|
||||
|
||||
#if NeedWidePrototypes
|
||||
SDL_X11_SYM(1,KeySym,XKeycodeToKeysym,(Display*,unsigned int,int))
|
||||
SDL_X11_SYM(KeySym,XKeycodeToKeysym,(Display* a,unsigned int b,int c),(a,b,c),return)
|
||||
#else
|
||||
SDL_X11_SYM(1,KeySym,XKeycodeToKeysym,(Display*,KeyCode,int))
|
||||
SDL_X11_SYM(KeySym,XKeycodeToKeysym,(Display* a,KeyCode b,int c),(a,b,c),return)
|
||||
#endif
|
||||
|
||||
#ifdef X_HAVE_UTF8_STRING
|
||||
SDL_X11_MODULE(UTF8)
|
||||
SDL_X11_SYM(int,Xutf8TextListToTextProperty,(Display* a,char** b,int c,XICCEncodingStyle d,XTextProperty* e),(a,b,c,d,e),return)
|
||||
SDL_X11_SYM(int,Xutf8LookupString,(XIC a,XKeyPressedEvent* b,char* c,int d,KeySym* e,Status* f),(a,b,c,d,e,f),return)
|
||||
/*SDL_X11_SYM(XIC,XCreateIC,(XIM, ...),return) !!! ARGH! */
|
||||
SDL_X11_SYM(void,XDestroyIC,(XIC a),(a),)
|
||||
SDL_X11_SYM(void,XSetICFocus,(XIC a),(a),)
|
||||
SDL_X11_SYM(void,XUnsetICFocus,(XIC a),(a),)
|
||||
SDL_X11_SYM(XIM,XOpenIM,(Display* a,struct _XrmHashBucketRec* b,char* c,char* d),(a,b,c,d),return)
|
||||
SDL_X11_SYM(Status,XCloseIM,(XIM a),(a),return)
|
||||
#endif
|
||||
|
||||
#ifndef NO_SHARED_MEMORY
|
||||
SDL_X11_SYM(1,Status,XShmAttach,(Display*,XShmSegmentInfo*))
|
||||
SDL_X11_SYM(1,Status,XShmDetach,(Display*,XShmSegmentInfo*))
|
||||
SDL_X11_SYM(1,Status,XShmPutImage,(Display*,Drawable,GC,XImage*,int,int,int,int,unsigned int,unsigned int,Bool))
|
||||
SDL_X11_SYM(1,XImage*,XShmCreateImage,(Display*,Visual*,unsigned int,int,char*,XShmSegmentInfo*,unsigned int,unsigned int))
|
||||
SDL_X11_SYM(1,Bool,XShmQueryExtension,(Display*))
|
||||
SDL_X11_MODULE(SHM)
|
||||
SDL_X11_SYM(Status,XShmAttach,(Display* a,XShmSegmentInfo* b),(a,b),return)
|
||||
SDL_X11_SYM(Status,XShmDetach,(Display* a,XShmSegmentInfo* b),(a,b),return)
|
||||
SDL_X11_SYM(Status,XShmPutImage,(Display* a,Drawable b,GC c,XImage* d,int e,int f,int g,int h,unsigned int i,unsigned int j,Bool k),(a,b,c,d,e,f,g,h,i,j,k),return)
|
||||
SDL_X11_SYM(XImage*,XShmCreateImage,(Display* a,Visual* b,unsigned int c,int d,char* e,XShmSegmentInfo* f,unsigned int g,unsigned int h),(a,b,c,d,e,f,g,h),return)
|
||||
SDL_X11_SYM(Bool,XShmQueryExtension,(Display* a),(a),return)
|
||||
#endif
|
||||
|
||||
SDL_X11_SYM(1,SDL_X11_XSynchronizeRetType,XSynchronize,(Display*,Bool))
|
||||
SDL_X11_SYM(1,SDL_X11_XESetWireToEventRetType,XESetWireToEvent,(Display*,int,SDL_X11_XESetWireToEventRetType))
|
||||
SDL_X11_SYM(1,SDL_X11_XESetEventToWireRetType,XESetEventToWire,(Display*,int,SDL_X11_XESetEventToWireRetType))
|
||||
SDL_X11_SYM(1,SDL_X11_XSetExtensionErrorHandlerType,XSetExtensionErrorHandler,(SDL_X11_XSetExtensionErrorHandlerType))
|
||||
/*
|
||||
* Not required...these only exist in code in headers on some 64-bit platforms,
|
||||
* and are removed via macros elsewhere, so it's safe for them to be missing.
|
||||
*/
|
||||
SDL_X11_MODULE(IO_32BIT)
|
||||
SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
|
||||
SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),)
|
||||
|
||||
/*
|
||||
* These only show up on some variants of Unix.
|
||||
*/
|
||||
#if defined(__osf__)
|
||||
SDL_X11_MODULE(OSF_ENTRY_POINTS)
|
||||
SDL_X11_SYM(void,_SmtBufferOverflow,(Display *dpy,register smtDisplayPtr p),(dpy,p),)
|
||||
SDL_X11_SYM(void,_SmtIpError,(Display *dpy,register smtDisplayPtr p, int i),(dpy,p,i),)
|
||||
SDL_X11_SYM(int,ipAllocateData,(ChannelPtr a, IPCard b, IPDataPtr * c),(a,b,c),return)
|
||||
SDL_X11_SYM(int,ipUnallocateAndSendData,(ChannelPtr a, IPCard b),(a,b),return)
|
||||
#endif
|
||||
|
||||
/* end of SDL_x11sym.h ... */
|
||||
|
||||
|
|
|
@ -71,9 +71,9 @@ static int X11_Available(void)
|
|||
{
|
||||
Display *display = NULL;
|
||||
if ( SDL_X11_LoadSymbols() ) {
|
||||
display = pXOpenDisplay(NULL);
|
||||
display = XOpenDisplay(NULL);
|
||||
if ( display != NULL ) {
|
||||
pXCloseDisplay(display);
|
||||
XCloseDisplay(display);
|
||||
}
|
||||
SDL_X11_UnloadSymbols();
|
||||
}
|
||||
|
@ -199,7 +199,7 @@ static int x_errhandler(Display *d, XErrorEvent *e)
|
|||
(e->error_code <= (vm_error+XF86VidModeNumberErrors)))) ) {
|
||||
#ifdef XFREE86_DEBUG
|
||||
{ char errmsg[1024];
|
||||
pXGetErrorText(d, e->error_code, errmsg, sizeof(errmsg));
|
||||
XGetErrorText(d, e->error_code, errmsg, sizeof(errmsg));
|
||||
printf("VidMode error: %s\n", errmsg);
|
||||
}
|
||||
#endif
|
||||
|
@ -214,7 +214,7 @@ printf("VidMode error: %s\n", errmsg);
|
|||
(e->error_code <= (dga_error+XF86DGANumberErrors))) ) {
|
||||
#ifdef XFREE86_DEBUG
|
||||
{ char errmsg[1024];
|
||||
pXGetErrorText(d, e->error_code, errmsg, sizeof(errmsg));
|
||||
XGetErrorText(d, e->error_code, errmsg, sizeof(errmsg));
|
||||
printf("DGA error: %s\n", errmsg);
|
||||
}
|
||||
#endif
|
||||
|
@ -247,7 +247,7 @@ static int xext_errhandler(Display *d, char *ext_name, char *reason)
|
|||
#ifdef XFREE86_DEBUG
|
||||
printf("Xext error inside SDL (may be harmless):\n");
|
||||
printf(" Extension \"%s\" %s on display \"%s\".\n",
|
||||
ext_name, reason, pXDisplayString(d));
|
||||
ext_name, reason, XDisplayString(d));
|
||||
#endif
|
||||
|
||||
if (SDL_strcmp(reason, "missing") == 0) {
|
||||
|
@ -319,9 +319,9 @@ static void create_aux_windows(_THIS)
|
|||
int def_vis = (SDL_Visual == DefaultVisual(SDL_Display, SDL_Screen));
|
||||
|
||||
/* Look up some useful Atoms */
|
||||
WM_DELETE_WINDOW = pXInternAtom(SDL_Display, "WM_DELETE_WINDOW", False);
|
||||
_NET_WM_NAME = pXInternAtom(SDL_Display, "_NET_WM_NAME", False);
|
||||
_NET_WM_ICON_NAME = pXInternAtom(SDL_Display, "_NET_WM_ICON_NAME", False);
|
||||
WM_DELETE_WINDOW = XInternAtom(SDL_Display, "WM_DELETE_WINDOW", False);
|
||||
_NET_WM_NAME = XInternAtom(SDL_Display, "_NET_WM_NAME", False);
|
||||
_NET_WM_ICON_NAME = XInternAtom(SDL_Display, "_NET_WM_ICON_NAME", False);
|
||||
|
||||
/* Don't create any extra windows if we are being managed */
|
||||
if ( SDL_windowid ) {
|
||||
|
@ -331,21 +331,21 @@ static void create_aux_windows(_THIS)
|
|||
}
|
||||
|
||||
if(FSwindow)
|
||||
pXDestroyWindow(SDL_Display, FSwindow);
|
||||
XDestroyWindow(SDL_Display, FSwindow);
|
||||
|
||||
xattr.override_redirect = True;
|
||||
xattr.background_pixel = def_vis ? BlackPixel(SDL_Display, SDL_Screen) : 0;
|
||||
xattr.border_pixel = 0;
|
||||
xattr.colormap = SDL_XColorMap;
|
||||
|
||||
FSwindow = pXCreateWindow(SDL_Display, SDL_Root,
|
||||
FSwindow = XCreateWindow(SDL_Display, SDL_Root,
|
||||
xinerama_x, xinerama_y, 32, 32, 0,
|
||||
this->hidden->depth, InputOutput, SDL_Visual,
|
||||
CWOverrideRedirect | CWBackPixel | CWBorderPixel
|
||||
| CWColormap,
|
||||
&xattr);
|
||||
|
||||
pXSelectInput(SDL_Display, FSwindow, StructureNotifyMask);
|
||||
XSelectInput(SDL_Display, FSwindow, StructureNotifyMask);
|
||||
|
||||
/* Tell KDE to keep the fullscreen window on top */
|
||||
{
|
||||
|
@ -355,13 +355,13 @@ static void create_aux_windows(_THIS)
|
|||
SDL_memset(&ev, 0, sizeof(ev));
|
||||
ev.xclient.type = ClientMessage;
|
||||
ev.xclient.window = SDL_Root;
|
||||
ev.xclient.message_type = pXInternAtom(SDL_Display,
|
||||
ev.xclient.message_type = XInternAtom(SDL_Display,
|
||||
"KWM_KEEP_ON_TOP", False);
|
||||
ev.xclient.format = 32;
|
||||
ev.xclient.data.l[0] = FSwindow;
|
||||
ev.xclient.data.l[1] = CurrentTime;
|
||||
mask = SubstructureRedirectMask;
|
||||
pXSendEvent(SDL_Display, SDL_Root, False, mask, &ev);
|
||||
XSendEvent(SDL_Display, SDL_Root, False, mask, &ev);
|
||||
}
|
||||
|
||||
hints = NULL;
|
||||
|
@ -369,47 +369,47 @@ static void create_aux_windows(_THIS)
|
|||
iconprop.value = iconpropUTF8.value = NULL;
|
||||
if(WMwindow) {
|
||||
/* All window attributes must survive the recreation */
|
||||
hints = pXGetWMHints(SDL_Display, WMwindow);
|
||||
pXGetTextProperty(SDL_Display, WMwindow, &titleprop, XA_WM_NAME);
|
||||
pXGetTextProperty(SDL_Display, WMwindow, &titlepropUTF8, _NET_WM_NAME);
|
||||
pXGetTextProperty(SDL_Display, WMwindow, &iconprop, XA_WM_ICON_NAME);
|
||||
pXGetTextProperty(SDL_Display, WMwindow, &iconpropUTF8, _NET_WM_ICON_NAME);
|
||||
pXDestroyWindow(SDL_Display, WMwindow);
|
||||
hints = XGetWMHints(SDL_Display, WMwindow);
|
||||
XGetTextProperty(SDL_Display, WMwindow, &titleprop, XA_WM_NAME);
|
||||
XGetTextProperty(SDL_Display, WMwindow, &titlepropUTF8, _NET_WM_NAME);
|
||||
XGetTextProperty(SDL_Display, WMwindow, &iconprop, XA_WM_ICON_NAME);
|
||||
XGetTextProperty(SDL_Display, WMwindow, &iconpropUTF8, _NET_WM_ICON_NAME);
|
||||
XDestroyWindow(SDL_Display, WMwindow);
|
||||
}
|
||||
|
||||
/* Create the window for windowed management */
|
||||
/* (reusing the xattr structure above) */
|
||||
WMwindow = pXCreateWindow(SDL_Display, SDL_Root, 0, 0, 32, 32, 0,
|
||||
WMwindow = XCreateWindow(SDL_Display, SDL_Root, 0, 0, 32, 32, 0,
|
||||
this->hidden->depth, InputOutput, SDL_Visual,
|
||||
CWBackPixel | CWBorderPixel | CWColormap,
|
||||
&xattr);
|
||||
|
||||
/* Set the input hints so we get keyboard input */
|
||||
if(!hints) {
|
||||
hints = pXAllocWMHints();
|
||||
hints = XAllocWMHints();
|
||||
hints->input = True;
|
||||
hints->flags = InputHint;
|
||||
}
|
||||
pXSetWMHints(SDL_Display, WMwindow, hints);
|
||||
pXFree(hints);
|
||||
XSetWMHints(SDL_Display, WMwindow, hints);
|
||||
XFree(hints);
|
||||
if(titleprop.value) {
|
||||
pXSetTextProperty(SDL_Display, WMwindow, &titleprop, XA_WM_NAME);
|
||||
pXFree(titleprop.value);
|
||||
XSetTextProperty(SDL_Display, WMwindow, &titleprop, XA_WM_NAME);
|
||||
XFree(titleprop.value);
|
||||
}
|
||||
if(titlepropUTF8.value) {
|
||||
pXSetTextProperty(SDL_Display, WMwindow, &titlepropUTF8, _NET_WM_NAME);
|
||||
pXFree(titlepropUTF8.value);
|
||||
XSetTextProperty(SDL_Display, WMwindow, &titlepropUTF8, _NET_WM_NAME);
|
||||
XFree(titlepropUTF8.value);
|
||||
}
|
||||
if(iconprop.value) {
|
||||
pXSetTextProperty(SDL_Display, WMwindow, &iconprop, XA_WM_ICON_NAME);
|
||||
pXFree(iconprop.value);
|
||||
XSetTextProperty(SDL_Display, WMwindow, &iconprop, XA_WM_ICON_NAME);
|
||||
XFree(iconprop.value);
|
||||
}
|
||||
if(iconpropUTF8.value) {
|
||||
pXSetTextProperty(SDL_Display, WMwindow, &iconpropUTF8, _NET_WM_ICON_NAME);
|
||||
pXFree(iconpropUTF8.value);
|
||||
XSetTextProperty(SDL_Display, WMwindow, &iconpropUTF8, _NET_WM_ICON_NAME);
|
||||
XFree(iconpropUTF8.value);
|
||||
}
|
||||
|
||||
pXSelectInput(SDL_Display, WMwindow,
|
||||
XSelectInput(SDL_Display, WMwindow,
|
||||
FocusChangeMask | KeyPressMask | KeyReleaseMask
|
||||
| PropertyChangeMask | StructureNotifyMask | KeymapStateMask);
|
||||
|
||||
|
@ -417,41 +417,44 @@ static void create_aux_windows(_THIS)
|
|||
get_classname(classname, sizeof(classname));
|
||||
{
|
||||
XClassHint *classhints;
|
||||
classhints = pXAllocClassHint();
|
||||
classhints = XAllocClassHint();
|
||||
if(classhints != NULL) {
|
||||
classhints->res_name = classname;
|
||||
classhints->res_class = classname;
|
||||
pXSetClassHint(SDL_Display, WMwindow, classhints);
|
||||
pXFree(classhints);
|
||||
XSetClassHint(SDL_Display, WMwindow, classhints);
|
||||
XFree(classhints);
|
||||
}
|
||||
}
|
||||
|
||||
/* Setup the communication with the IM server */
|
||||
SDL_IM = NULL;
|
||||
SDL_IC = NULL;
|
||||
SDL_IM = NULL;
|
||||
SDL_IC = NULL;
|
||||
|
||||
#ifdef X_HAVE_UTF8_STRING
|
||||
SDL_IM = pXOpenIM(SDL_Display, NULL, classname, classname);
|
||||
if (SDL_IM == NULL) {
|
||||
SDL_SetError("no input method could be opened");
|
||||
} else {
|
||||
SDL_IC = pXCreateIC(SDL_IM,
|
||||
XNClientWindow, WMwindow,
|
||||
XNFocusWindow, WMwindow,
|
||||
XNInputStyle, XIMPreeditNothing | XIMStatusNothing,
|
||||
XNResourceName, classname,
|
||||
XNResourceClass, classname,
|
||||
NULL);
|
||||
if (SDL_IC == NULL) {
|
||||
SDL_SetError("no input context could be created");
|
||||
pXCloseIM(SDL_IM);
|
||||
SDL_IM = NULL;
|
||||
#ifdef X_HAVE_UTF8_STRING
|
||||
if (SDL_X11_HAVE_UTF8) {
|
||||
SDL_IM = XOpenIM(SDL_Display, NULL, classname, classname);
|
||||
if (SDL_IM == NULL) {
|
||||
SDL_SetError("no input method could be opened");
|
||||
} else {
|
||||
SDL_IC = pXCreateIC(SDL_IM,
|
||||
XNClientWindow, WMwindow,
|
||||
XNFocusWindow, WMwindow,
|
||||
XNInputStyle, XIMPreeditNothing | XIMStatusNothing,
|
||||
XNResourceName, classname,
|
||||
XNResourceClass, classname,
|
||||
NULL);
|
||||
|
||||
if (SDL_IC == NULL) {
|
||||
SDL_SetError("no input context could be created");
|
||||
XCloseIM(SDL_IM);
|
||||
SDL_IM = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Allow the window to be deleted by the window manager */
|
||||
pXSetWMProtocols(SDL_Display, WMwindow, &WM_DELETE_WINDOW, 1);
|
||||
/* Allow the window to be deleted by the window manager */
|
||||
XSetWMProtocols(SDL_Display, WMwindow, &WM_DELETE_WINDOW, 1);
|
||||
}
|
||||
|
||||
static int X11_VideoInit(_THIS, SDL_PixelFormat *vformat)
|
||||
|
@ -462,13 +465,13 @@ static int X11_VideoInit(_THIS, SDL_PixelFormat *vformat)
|
|||
/* Open the X11 display */
|
||||
display = NULL; /* Get it from DISPLAY environment variable */
|
||||
|
||||
if ( (SDL_strncmp(pXDisplayName(display), ":", 1) == 0) ||
|
||||
(SDL_strncmp(pXDisplayName(display), "unix:", 5) == 0) ) {
|
||||
if ( (SDL_strncmp(XDisplayName(display), ":", 1) == 0) ||
|
||||
(SDL_strncmp(XDisplayName(display), "unix:", 5) == 0) ) {
|
||||
local_X11 = 1;
|
||||
} else {
|
||||
local_X11 = 0;
|
||||
}
|
||||
SDL_Display = pXOpenDisplay(display);
|
||||
SDL_Display = XOpenDisplay(display);
|
||||
#if defined(__osf__) && defined(SDL_VIDEO_DRIVER_X11_DYNAMIC)
|
||||
/* On Tru64 if linking without -lX11, it fails and you get following message.
|
||||
* Xlib: connection to ":0.0" refused by server
|
||||
|
@ -480,7 +483,7 @@ static int X11_VideoInit(_THIS, SDL_PixelFormat *vformat)
|
|||
*/
|
||||
if ( SDL_Display == NULL ) {
|
||||
SDL_Delay(1000);
|
||||
SDL_Display = pXOpenDisplay(display);
|
||||
SDL_Display = XOpenDisplay(display);
|
||||
}
|
||||
#endif
|
||||
if ( SDL_Display == NULL ) {
|
||||
|
@ -488,27 +491,27 @@ static int X11_VideoInit(_THIS, SDL_PixelFormat *vformat)
|
|||
return(-1);
|
||||
}
|
||||
#ifdef X11_DEBUG
|
||||
pXSynchronize(SDL_Display, True);
|
||||
XSynchronize(SDL_Display, True);
|
||||
#endif
|
||||
|
||||
/* Create an alternate X display for graphics updates -- allows us
|
||||
to do graphics updates in a separate thread from event handling.
|
||||
Thread-safe X11 doesn't seem to exist.
|
||||
*/
|
||||
GFX_Display = pXOpenDisplay(display);
|
||||
GFX_Display = XOpenDisplay(display);
|
||||
if ( GFX_Display == NULL ) {
|
||||
SDL_SetError("Couldn't open X11 display");
|
||||
return(-1);
|
||||
}
|
||||
|
||||
/* Set the normal X error handler */
|
||||
X_handler = pXSetErrorHandler(x_errhandler);
|
||||
X_handler = XSetErrorHandler(x_errhandler);
|
||||
|
||||
/* Set the error handler if we lose the X display */
|
||||
XIO_handler = pXSetIOErrorHandler(xio_errhandler);
|
||||
XIO_handler = XSetIOErrorHandler(xio_errhandler);
|
||||
|
||||
/* Set the X extension error handler */
|
||||
Xext_handler = pXSetExtensionErrorHandler(xext_errhandler);
|
||||
Xext_handler = XSetExtensionErrorHandler(xext_errhandler);
|
||||
|
||||
/* use default screen (from $DISPLAY) */
|
||||
SDL_Screen = DefaultScreen(SDL_Display);
|
||||
|
@ -517,7 +520,7 @@ static int X11_VideoInit(_THIS, SDL_PixelFormat *vformat)
|
|||
/* Check for MIT shared memory extension */
|
||||
use_mitshm = 0;
|
||||
if ( local_X11 ) {
|
||||
use_mitshm = pXShmQueryExtension(SDL_Display);
|
||||
use_mitshm = XShmQueryExtension(SDL_Display);
|
||||
}
|
||||
#endif /* NO_SHARED_MEMORY */
|
||||
|
||||
|
@ -544,7 +547,7 @@ static int X11_VideoInit(_THIS, SDL_PixelFormat *vformat)
|
|||
if ( SDL_Visual == DefaultVisual(SDL_Display, SDL_Screen) ) {
|
||||
SDL_XColorMap = SDL_DisplayColormap;
|
||||
} else {
|
||||
SDL_XColorMap = pXCreateColormap(SDL_Display, SDL_Root,
|
||||
SDL_XColorMap = XCreateColormap(SDL_Display, SDL_Root,
|
||||
SDL_Visual, AllocNone);
|
||||
}
|
||||
this->hidden->depth = this->hidden->visuals[i].depth;
|
||||
|
@ -571,7 +574,7 @@ static int X11_VideoInit(_THIS, SDL_PixelFormat *vformat)
|
|||
this->info.wm_available = 1;
|
||||
|
||||
/* We're done! */
|
||||
pXFlush(SDL_Display);
|
||||
XFlush(SDL_Display);
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
@ -586,7 +589,7 @@ static void X11_DestroyWindow(_THIS, SDL_Surface *screen)
|
|||
if ( ! SDL_windowid ) {
|
||||
/* Hide the managed window */
|
||||
if ( WMwindow ) {
|
||||
pXUnmapWindow(SDL_Display, WMwindow);
|
||||
XUnmapWindow(SDL_Display, WMwindow);
|
||||
}
|
||||
if ( screen && (screen->flags & SDL_FULLSCREEN) ) {
|
||||
screen->flags &= ~SDL_FULLSCREEN;
|
||||
|
@ -595,7 +598,7 @@ static void X11_DestroyWindow(_THIS, SDL_Surface *screen)
|
|||
|
||||
/* Destroy the output window */
|
||||
if ( SDL_Window ) {
|
||||
pXDestroyWindow(SDL_Display, SDL_Window);
|
||||
XDestroyWindow(SDL_Display, SDL_Window);
|
||||
}
|
||||
|
||||
/* Free the colormap entries */
|
||||
|
@ -605,7 +608,7 @@ static void X11_DestroyWindow(_THIS, SDL_Surface *screen)
|
|||
numcolors = SDL_Visual->map_entries;
|
||||
for ( pixel=0; pixel<numcolors; ++pixel ) {
|
||||
while ( SDL_XPixels[pixel] > 0 ) {
|
||||
pXFreeColors(GFX_Display,
|
||||
XFreeColors(GFX_Display,
|
||||
SDL_DisplayColormap,&pixel,1,0);
|
||||
--SDL_XPixels[pixel];
|
||||
}
|
||||
|
@ -616,7 +619,7 @@ static void X11_DestroyWindow(_THIS, SDL_Surface *screen)
|
|||
|
||||
/* Free the graphics context */
|
||||
if ( SDL_GC ) {
|
||||
pXFreeGC(SDL_Display, SDL_GC);
|
||||
XFreeGC(SDL_Display, SDL_GC);
|
||||
SDL_GC = 0;
|
||||
}
|
||||
}
|
||||
|
@ -646,7 +649,7 @@ static void X11_SetSizeHints(_THIS, int w, int h, Uint32 flags)
|
|||
{
|
||||
XSizeHints *hints;
|
||||
|
||||
hints = pXAllocSizeHints();
|
||||
hints = XAllocSizeHints();
|
||||
if ( hints ) {
|
||||
if ( flags & SDL_RESIZABLE ) {
|
||||
hints->min_width = 32;
|
||||
|
@ -666,13 +669,13 @@ static void X11_SetSizeHints(_THIS, int w, int h, Uint32 flags)
|
|||
/* Center it, if desired */
|
||||
if ( X11_WindowPosition(this, &hints->x, &hints->y, w, h) ) {
|
||||
hints->flags |= USPosition;
|
||||
pXMoveWindow(SDL_Display, WMwindow, hints->x, hints->y);
|
||||
XMoveWindow(SDL_Display, WMwindow, hints->x, hints->y);
|
||||
|
||||
/* Flush the resize event so we don't catch it later */
|
||||
pXSync(SDL_Display, True);
|
||||
XSync(SDL_Display, True);
|
||||
}
|
||||
pXSetWMNormalHints(SDL_Display, WMwindow, hints);
|
||||
pXFree(hints);
|
||||
XSetWMNormalHints(SDL_Display, WMwindow, hints);
|
||||
XFree(hints);
|
||||
}
|
||||
|
||||
/* Respect the window caption style */
|
||||
|
@ -684,7 +687,7 @@ static void X11_SetSizeHints(_THIS, int w, int h, Uint32 flags)
|
|||
set = SDL_FALSE;
|
||||
|
||||
/* First try to set MWM hints */
|
||||
WM_HINTS = pXInternAtom(SDL_Display, "_MOTIF_WM_HINTS", True);
|
||||
WM_HINTS = XInternAtom(SDL_Display, "_MOTIF_WM_HINTS", True);
|
||||
if ( WM_HINTS != None ) {
|
||||
/* Hints used by Motif compliant window managers */
|
||||
struct {
|
||||
|
@ -695,7 +698,7 @@ static void X11_SetSizeHints(_THIS, int w, int h, Uint32 flags)
|
|||
unsigned long status;
|
||||
} MWMHints = { (1L << 1), 0, 0, 0, 0 };
|
||||
|
||||
pXChangeProperty(SDL_Display, WMwindow,
|
||||
XChangeProperty(SDL_Display, WMwindow,
|
||||
WM_HINTS, WM_HINTS, 32,
|
||||
PropModeReplace,
|
||||
(unsigned char *)&MWMHints,
|
||||
|
@ -703,11 +706,11 @@ static void X11_SetSizeHints(_THIS, int w, int h, Uint32 flags)
|
|||
set = SDL_TRUE;
|
||||
}
|
||||
/* Now try to set KWM hints */
|
||||
WM_HINTS = pXInternAtom(SDL_Display, "KWM_WIN_DECORATION", True);
|
||||
WM_HINTS = XInternAtom(SDL_Display, "KWM_WIN_DECORATION", True);
|
||||
if ( WM_HINTS != None ) {
|
||||
long KWMHints = 0;
|
||||
|
||||
pXChangeProperty(SDL_Display, WMwindow,
|
||||
XChangeProperty(SDL_Display, WMwindow,
|
||||
WM_HINTS, WM_HINTS, 32,
|
||||
PropModeReplace,
|
||||
(unsigned char *)&KWMHints,
|
||||
|
@ -715,11 +718,11 @@ static void X11_SetSizeHints(_THIS, int w, int h, Uint32 flags)
|
|||
set = SDL_TRUE;
|
||||
}
|
||||
/* Now try to set GNOME hints */
|
||||
WM_HINTS = pXInternAtom(SDL_Display, "_WIN_HINTS", True);
|
||||
WM_HINTS = XInternAtom(SDL_Display, "_WIN_HINTS", True);
|
||||
if ( WM_HINTS != None ) {
|
||||
long GNOMEHints = 0;
|
||||
|
||||
pXChangeProperty(SDL_Display, WMwindow,
|
||||
XChangeProperty(SDL_Display, WMwindow,
|
||||
WM_HINTS, WM_HINTS, 32,
|
||||
PropModeReplace,
|
||||
(unsigned char *)&GNOMEHints,
|
||||
|
@ -728,7 +731,7 @@ static void X11_SetSizeHints(_THIS, int w, int h, Uint32 flags)
|
|||
}
|
||||
/* Finally set the transient hints if necessary */
|
||||
if ( ! set ) {
|
||||
pXSetTransientForHint(SDL_Display, WMwindow, SDL_Root);
|
||||
XSetTransientForHint(SDL_Display, WMwindow, SDL_Root);
|
||||
}
|
||||
} else {
|
||||
SDL_bool set;
|
||||
|
@ -738,27 +741,27 @@ static void X11_SetSizeHints(_THIS, int w, int h, Uint32 flags)
|
|||
set = SDL_FALSE;
|
||||
|
||||
/* First try to unset MWM hints */
|
||||
WM_HINTS = pXInternAtom(SDL_Display, "_MOTIF_WM_HINTS", True);
|
||||
WM_HINTS = XInternAtom(SDL_Display, "_MOTIF_WM_HINTS", True);
|
||||
if ( WM_HINTS != None ) {
|
||||
pXDeleteProperty(SDL_Display, WMwindow, WM_HINTS);
|
||||
XDeleteProperty(SDL_Display, WMwindow, WM_HINTS);
|
||||
set = SDL_TRUE;
|
||||
}
|
||||
/* Now try to unset KWM hints */
|
||||
WM_HINTS = pXInternAtom(SDL_Display, "KWM_WIN_DECORATION", True);
|
||||
WM_HINTS = XInternAtom(SDL_Display, "KWM_WIN_DECORATION", True);
|
||||
if ( WM_HINTS != None ) {
|
||||
pXDeleteProperty(SDL_Display, WMwindow, WM_HINTS);
|
||||
XDeleteProperty(SDL_Display, WMwindow, WM_HINTS);
|
||||
set = SDL_TRUE;
|
||||
}
|
||||
/* Now try to unset GNOME hints */
|
||||
WM_HINTS = pXInternAtom(SDL_Display, "_WIN_HINTS", True);
|
||||
WM_HINTS = XInternAtom(SDL_Display, "_WIN_HINTS", True);
|
||||
if ( WM_HINTS != None ) {
|
||||
pXDeleteProperty(SDL_Display, WMwindow, WM_HINTS);
|
||||
XDeleteProperty(SDL_Display, WMwindow, WM_HINTS);
|
||||
set = SDL_TRUE;
|
||||
}
|
||||
/* Finally unset the transient hints if necessary */
|
||||
if ( ! set ) {
|
||||
/* NOTE: Does this work? */
|
||||
pXSetTransientForHint(SDL_Display, WMwindow, None);
|
||||
XSetTransientForHint(SDL_Display, WMwindow, None);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -796,7 +799,7 @@ static int X11_CreateWindow(_THIS, SDL_Surface *screen,
|
|||
} else if ( SDL_windowid ) {
|
||||
XWindowAttributes a;
|
||||
|
||||
pXGetWindowAttributes(SDL_Display, SDL_Window, &a);
|
||||
XGetWindowAttributes(SDL_Display, SDL_Window, &a);
|
||||
vis = a.visual;
|
||||
depth = a.depth;
|
||||
} else {
|
||||
|
@ -825,7 +828,7 @@ static int X11_CreateWindow(_THIS, SDL_Surface *screen,
|
|||
|
||||
/* Create the appropriate colormap */
|
||||
if ( SDL_XColorMap != SDL_DisplayColormap ) {
|
||||
pXFreeColormap(SDL_Display, SDL_XColorMap);
|
||||
XFreeColormap(SDL_Display, SDL_XColorMap);
|
||||
}
|
||||
if ( SDL_Visual->class == PseudoColor ) {
|
||||
int ncolors;
|
||||
|
@ -845,7 +848,7 @@ static int X11_CreateWindow(_THIS, SDL_Surface *screen,
|
|||
}
|
||||
if ( flags & SDL_HWPALETTE ) {
|
||||
screen->flags |= SDL_HWPALETTE;
|
||||
SDL_XColorMap = pXCreateColormap(SDL_Display, SDL_Root,
|
||||
SDL_XColorMap = XCreateColormap(SDL_Display, SDL_Root,
|
||||
SDL_Visual, AllocAll);
|
||||
} else {
|
||||
SDL_XColorMap = SDL_DisplayColormap;
|
||||
|
@ -853,9 +856,9 @@ static int X11_CreateWindow(_THIS, SDL_Surface *screen,
|
|||
} else if ( SDL_Visual->class == DirectColor ) {
|
||||
|
||||
/* Create a colormap which we can manipulate for gamma */
|
||||
SDL_XColorMap = pXCreateColormap(SDL_Display, SDL_Root,
|
||||
SDL_XColorMap = XCreateColormap(SDL_Display, SDL_Root,
|
||||
SDL_Visual, AllocAll);
|
||||
pXSync(SDL_Display, False);
|
||||
XSync(SDL_Display, False);
|
||||
|
||||
/* Initialize the colormap to the identity mapping */
|
||||
SDL_GetGammaRamp(0, 0, 0);
|
||||
|
@ -864,7 +867,7 @@ static int X11_CreateWindow(_THIS, SDL_Surface *screen,
|
|||
this->screen = NULL;
|
||||
} else {
|
||||
/* Create a read-only colormap for our window */
|
||||
SDL_XColorMap = pXCreateColormap(SDL_Display, SDL_Root,
|
||||
SDL_XColorMap = XCreateColormap(SDL_Display, SDL_Root,
|
||||
SDL_Visual, AllocNone);
|
||||
}
|
||||
|
||||
|
@ -877,8 +880,8 @@ static int X11_CreateWindow(_THIS, SDL_Surface *screen,
|
|||
colour (0 is white on some displays), we should reset the
|
||||
background to 0 here since that is what the user expects
|
||||
with a private colormap */
|
||||
pXSetWindowBackground(SDL_Display, FSwindow, 0);
|
||||
pXClearWindow(SDL_Display, FSwindow);
|
||||
XSetWindowBackground(SDL_Display, FSwindow, 0);
|
||||
XClearWindow(SDL_Display, FSwindow);
|
||||
}
|
||||
|
||||
/* resize the (possibly new) window manager window */
|
||||
|
@ -886,7 +889,7 @@ static int X11_CreateWindow(_THIS, SDL_Surface *screen,
|
|||
X11_SetSizeHints(this, w, h, flags);
|
||||
window_w = w;
|
||||
window_h = h;
|
||||
pXResizeWindow(SDL_Display, WMwindow, w, h);
|
||||
XResizeWindow(SDL_Display, WMwindow, w, h);
|
||||
}
|
||||
|
||||
/* Create (or use) the X11 display window */
|
||||
|
@ -901,14 +904,14 @@ static int X11_CreateWindow(_THIS, SDL_Surface *screen,
|
|||
swa.background_pixel = 0;
|
||||
swa.border_pixel = 0;
|
||||
swa.colormap = SDL_XColorMap;
|
||||
SDL_Window = pXCreateWindow(SDL_Display, WMwindow,
|
||||
SDL_Window = XCreateWindow(SDL_Display, WMwindow,
|
||||
0, 0, w, h, 0, depth,
|
||||
InputOutput, SDL_Visual,
|
||||
CWBackPixel | CWBorderPixel
|
||||
| CWColormap, &swa);
|
||||
}
|
||||
/* Only manage our input if we own the window */
|
||||
pXSelectInput(SDL_Display, SDL_Window,
|
||||
XSelectInput(SDL_Display, SDL_Window,
|
||||
( EnterWindowMask | LeaveWindowMask
|
||||
| ButtonPressMask | ButtonReleaseMask
|
||||
| PointerMotionMask | ExposureMask ));
|
||||
|
@ -924,7 +927,7 @@ static int X11_CreateWindow(_THIS, SDL_Surface *screen,
|
|||
XGCValues gcv;
|
||||
|
||||
gcv.graphics_exposures = False;
|
||||
SDL_GC = pXCreateGC(SDL_Display, SDL_Window,
|
||||
SDL_GC = XCreateGC(SDL_Display, SDL_Window,
|
||||
GCGraphicsExposures, &gcv);
|
||||
if ( ! SDL_GC ) {
|
||||
SDL_SetError("Couldn't create graphics context");
|
||||
|
@ -934,10 +937,10 @@ static int X11_CreateWindow(_THIS, SDL_Surface *screen,
|
|||
|
||||
/* Set our colormaps when not setting a GL mode */
|
||||
if ( ! (flags & SDL_OPENGL) ) {
|
||||
pXSetWindowColormap(SDL_Display, SDL_Window, SDL_XColorMap);
|
||||
XSetWindowColormap(SDL_Display, SDL_Window, SDL_XColorMap);
|
||||
if( !SDL_windowid ) {
|
||||
pXSetWindowColormap(SDL_Display, FSwindow, SDL_XColorMap);
|
||||
pXSetWindowColormap(SDL_Display, WMwindow, SDL_XColorMap);
|
||||
XSetWindowColormap(SDL_Display, FSwindow, SDL_XColorMap);
|
||||
XSetWindowColormap(SDL_Display, WMwindow, SDL_XColorMap);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -952,7 +955,7 @@ static int X11_CreateWindow(_THIS, SDL_Surface *screen,
|
|||
xscreen = ScreenOfDisplay(SDL_Display, SDL_Screen);
|
||||
a.backing_store = DoesBackingStore(xscreen);
|
||||
if ( a.backing_store != NotUseful ) {
|
||||
pXChangeWindowAttributes(SDL_Display, SDL_Window,
|
||||
XChangeWindowAttributes(SDL_Display, SDL_Window,
|
||||
CWBackingStore, &a);
|
||||
}
|
||||
}
|
||||
|
@ -986,8 +989,8 @@ static int X11_CreateWindow(_THIS, SDL_Surface *screen,
|
|||
|
||||
/* Map them both and go fullscreen, if requested */
|
||||
if ( ! SDL_windowid ) {
|
||||
pXMapWindow(SDL_Display, SDL_Window);
|
||||
pXMapWindow(SDL_Display, WMwindow);
|
||||
XMapWindow(SDL_Display, SDL_Window);
|
||||
XMapWindow(SDL_Display, WMwindow);
|
||||
X11_WaitMapped(this, WMwindow);
|
||||
if ( flags & SDL_FULLSCREEN ) {
|
||||
screen->flags |= SDL_FULLSCREEN;
|
||||
|
@ -1008,7 +1011,7 @@ static int X11_ResizeWindow(_THIS,
|
|||
X11_SetSizeHints(this, w, h, flags);
|
||||
window_w = w;
|
||||
window_h = h;
|
||||
pXResizeWindow(SDL_Display, WMwindow, w, h);
|
||||
XResizeWindow(SDL_Display, WMwindow, w, h);
|
||||
|
||||
/* Resize the fullscreen and display windows */
|
||||
if ( flags & SDL_FULLSCREEN ) {
|
||||
|
@ -1024,7 +1027,7 @@ static int X11_ResizeWindow(_THIS,
|
|||
X11_LeaveFullScreen(this);
|
||||
}
|
||||
}
|
||||
pXResizeWindow(SDL_Display, SDL_Window, w, h);
|
||||
XResizeWindow(SDL_Display, SDL_Window, w, h);
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
|
@ -1046,7 +1049,7 @@ SDL_Surface *X11_SetVideoMode(_THIS, SDL_Surface *current,
|
|||
}
|
||||
|
||||
/* Flush any delayed updates */
|
||||
pXSync(GFX_Display, False);
|
||||
XSync(GFX_Display, False);
|
||||
|
||||
/* Set up the X11 window */
|
||||
saved_flags = current->flags;
|
||||
|
@ -1076,7 +1079,7 @@ SDL_Surface *X11_SetVideoMode(_THIS, SDL_Surface *current,
|
|||
|
||||
done:
|
||||
/* Release the event thread */
|
||||
pXSync(SDL_Display, False);
|
||||
XSync(SDL_Display, False);
|
||||
SDL_Unlock_EventThread();
|
||||
|
||||
/* We're done! */
|
||||
|
@ -1125,7 +1128,7 @@ static void X11_UpdateMouse(_THIS)
|
|||
|
||||
/* Lock the event thread, in multi-threading environments */
|
||||
SDL_Lock_EventThread();
|
||||
if ( pXQueryPointer(SDL_Display, SDL_Window, &u1, ¤t_win,
|
||||
if ( XQueryPointer(SDL_Display, SDL_Window, &u1, ¤t_win,
|
||||
&u2, &u2, &x, &y, &mask) ) {
|
||||
if ( (x >= 0) && (x < SDL_VideoSurface->w) &&
|
||||
(y >= 0) && (y < SDL_VideoSurface->h) ) {
|
||||
|
@ -1162,7 +1165,7 @@ static void allocate_nearest(_THIS, SDL_Color *colors,
|
|||
* XQueryColors sets the flags in the XColor struct, so we use
|
||||
* that to keep track of which colours are available
|
||||
*/
|
||||
pXQueryColors(GFX_Display, SDL_XColorMap, all, 256);
|
||||
XQueryColors(GFX_Display, SDL_XColorMap, all, 256);
|
||||
|
||||
for(i = 0; i < nwant; i++) {
|
||||
XColor *c;
|
||||
|
@ -1188,7 +1191,7 @@ static void allocate_nearest(_THIS, SDL_Color *colors,
|
|||
if(SDL_XPixels[best])
|
||||
continue; /* already allocated, waste no more time */
|
||||
c = all + best;
|
||||
if(pXAllocColor(GFX_Display, SDL_XColorMap, c)) {
|
||||
if(XAllocColor(GFX_Display, SDL_XColorMap, c)) {
|
||||
/* got it */
|
||||
colors[c->pixel].r = c->red >> 8;
|
||||
colors[c->pixel].g = c->green >> 8;
|
||||
|
@ -1230,8 +1233,8 @@ int X11_SetColors(_THIS, int firstcolor, int ncolors, SDL_Color *colors)
|
|||
xcmap[i].blue = (colors[i].b<<8)|colors[i].b;
|
||||
xcmap[i].flags = (DoRed|DoGreen|DoBlue);
|
||||
}
|
||||
pXStoreColors(GFX_Display, SDL_XColorMap, xcmap, ncolors);
|
||||
pXSync(GFX_Display, False);
|
||||
XStoreColors(GFX_Display, SDL_XColorMap, xcmap, ncolors);
|
||||
XSync(GFX_Display, False);
|
||||
SDL_stack_free(xcmap);
|
||||
} else {
|
||||
/*
|
||||
|
@ -1259,7 +1262,7 @@ int X11_SetColors(_THIS, int firstcolor, int ncolors, SDL_Color *colors)
|
|||
--SDL_XPixels[pixel];
|
||||
}
|
||||
}
|
||||
pXFreeColors(GFX_Display, SDL_XColorMap, freelist, nfree, 0);
|
||||
XFreeColors(GFX_Display, SDL_XColorMap, freelist, nfree, 0);
|
||||
SDL_stack_free(freelist);
|
||||
|
||||
want = SDL_stack_alloc(SDL_Color, ncolors);
|
||||
|
@ -1276,7 +1279,7 @@ int X11_SetColors(_THIS, int firstcolor, int ncolors, SDL_Color *colors)
|
|||
col.green = want[i].g << 8;
|
||||
col.blue = want[i].b << 8;
|
||||
col.flags = DoRed | DoGreen | DoBlue;
|
||||
if(pXAllocColor(GFX_Display, SDL_XColorMap, &col)) {
|
||||
if(XAllocColor(GFX_Display, SDL_XColorMap, &col)) {
|
||||
/* We got the colour, or at least the nearest
|
||||
the hardware could get. */
|
||||
colors[col.pixel].r = col.red >> 8;
|
||||
|
@ -1320,8 +1323,8 @@ int X11_SetGammaRamp(_THIS, Uint16 *ramp)
|
|||
xcmap[i].blue = ramp[2*256+c];
|
||||
xcmap[i].flags = (DoRed|DoGreen|DoBlue);
|
||||
}
|
||||
pXStoreColors(GFX_Display, SDL_XColorMap, xcmap, ncolors);
|
||||
pXSync(GFX_Display, False);
|
||||
XStoreColors(GFX_Display, SDL_XColorMap, xcmap, ncolors);
|
||||
XSync(GFX_Display, False);
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
@ -1334,16 +1337,16 @@ void X11_VideoQuit(_THIS)
|
|||
/* The event thread should be done, so we can touch SDL_Display */
|
||||
if ( SDL_Display != NULL ) {
|
||||
/* Flush any delayed updates */
|
||||
pXSync(GFX_Display, False);
|
||||
XSync(GFX_Display, False);
|
||||
|
||||
/* Close the connection with the IM server */
|
||||
#ifdef X_HAVE_UTF8_STRING
|
||||
if (SDL_IC != NULL) {
|
||||
pXDestroyIC(SDL_IC);
|
||||
XDestroyIC(SDL_IC);
|
||||
SDL_IC = NULL;
|
||||
}
|
||||
if (SDL_IM != NULL) {
|
||||
pXCloseIM(SDL_IM);
|
||||
XCloseIM(SDL_IM);
|
||||
SDL_IM = NULL;
|
||||
}
|
||||
#endif
|
||||
|
@ -1353,7 +1356,7 @@ void X11_VideoQuit(_THIS)
|
|||
X11_DestroyWindow(this, this->screen);
|
||||
X11_FreeVideoModes(this);
|
||||
if ( SDL_XColorMap != SDL_DisplayColormap ) {
|
||||
pXFreeColormap(SDL_Display, SDL_XColorMap);
|
||||
XFreeColormap(SDL_Display, SDL_XColorMap);
|
||||
}
|
||||
if ( SDL_iconcolors ) {
|
||||
unsigned long pixel;
|
||||
|
@ -1361,7 +1364,7 @@ void X11_VideoQuit(_THIS)
|
|||
SDL_Screen);
|
||||
for(pixel = 0; pixel < 256; ++pixel) {
|
||||
while(SDL_iconcolors[pixel] > 0) {
|
||||
pXFreeColors(GFX_Display,
|
||||
XFreeColors(GFX_Display,
|
||||
dcmap, &pixel, 1, 0);
|
||||
--SDL_iconcolors[pixel];
|
||||
}
|
||||
|
@ -1382,20 +1385,20 @@ void X11_VideoQuit(_THIS)
|
|||
|
||||
/* Close the X11 graphics connection */
|
||||
if ( GFX_Display != NULL ) {
|
||||
pXCloseDisplay(GFX_Display);
|
||||
XCloseDisplay(GFX_Display);
|
||||
GFX_Display = NULL;
|
||||
}
|
||||
|
||||
/* Close the X11 display connection */
|
||||
pXCloseDisplay(SDL_Display);
|
||||
XCloseDisplay(SDL_Display);
|
||||
SDL_Display = NULL;
|
||||
|
||||
/* Reset the X11 error handlers */
|
||||
if ( XIO_handler ) {
|
||||
pXSetIOErrorHandler(XIO_handler);
|
||||
XSetIOErrorHandler(XIO_handler);
|
||||
}
|
||||
if ( X_handler ) {
|
||||
pXSetErrorHandler(X_handler);
|
||||
XSetErrorHandler(X_handler);
|
||||
}
|
||||
|
||||
/* Unload GL library after X11 shuts down */
|
||||
|
|
|
@ -116,7 +116,7 @@ void X11_SetIcon(_THIS, SDL_Surface *icon, Uint8 *mask)
|
|||
SDL_iconcolors[i]--;
|
||||
}
|
||||
}
|
||||
pXFreeColors(GFX_Display, dcmap, freelist, nfree, 0);
|
||||
XFreeColors(GFX_Display, dcmap, freelist, nfree, 0);
|
||||
}
|
||||
if(!SDL_iconcolors)
|
||||
SDL_iconcolors = SDL_malloc(256 * sizeof *SDL_iconcolors);
|
||||
|
@ -131,7 +131,7 @@ void X11_SetIcon(_THIS, SDL_Surface *icon, Uint8 *mask)
|
|||
c.green = want[i].g << 8;
|
||||
c.blue = want[i].b << 8;
|
||||
c.flags = DoRed | DoGreen | DoBlue;
|
||||
if(pXAllocColor(GFX_Display, dcmap, &c)) {
|
||||
if(XAllocColor(GFX_Display, dcmap, &c)) {
|
||||
/* got the colour */
|
||||
SDL_iconcolors[c.pixel]++;
|
||||
got[c.pixel] = want[i];
|
||||
|
@ -145,13 +145,13 @@ void X11_SetIcon(_THIS, SDL_Surface *icon, Uint8 *mask)
|
|||
XColor cols[256];
|
||||
for(i = 0; i < 256; i++)
|
||||
cols[i].pixel = i;
|
||||
pXQueryColors(GFX_Display, dcmap, cols, 256);
|
||||
XQueryColors(GFX_Display, dcmap, cols, 256);
|
||||
for(i = 0; i < 256; i++) {
|
||||
got[i].r = cols[i].red >> 8;
|
||||
got[i].g = cols[i].green >> 8;
|
||||
got[i].b = cols[i].blue >> 8;
|
||||
if(!SDL_iconcolors[i]) {
|
||||
if(pXAllocColor(GFX_Display, dcmap,
|
||||
if(XAllocColor(GFX_Display, dcmap,
|
||||
cols + i)) {
|
||||
SDL_iconcolors[i] = 1;
|
||||
} else {
|
||||
|
@ -184,13 +184,13 @@ void X11_SetIcon(_THIS, SDL_Surface *icon, Uint8 *mask)
|
|||
SDL_memset(LSBmask, 0, masksize);
|
||||
for(i = 0; i < masksize; i++)
|
||||
LSBmask[i] = reverse_byte(mask[i]);
|
||||
mask_pixmap = pXCreatePixmapFromBitmapData(SDL_Display, WMwindow,
|
||||
mask_pixmap = XCreatePixmapFromBitmapData(SDL_Display, WMwindow,
|
||||
(char *)LSBmask,
|
||||
sicon->w, sicon->h,
|
||||
1L, 0L, 1);
|
||||
|
||||
/* Transfer the image to an X11 pixmap */
|
||||
icon_image = pXCreateImage(SDL_Display,
|
||||
icon_image = XCreateImage(SDL_Display,
|
||||
DefaultVisual(SDL_Display, SDL_Screen),
|
||||
DefaultDepth(SDL_Display, SDL_Screen),
|
||||
ZPixmap, 0, sicon->pixels,
|
||||
|
@ -198,13 +198,13 @@ void X11_SetIcon(_THIS, SDL_Surface *icon, Uint8 *mask)
|
|||
32, 0);
|
||||
icon_image->byte_order = (SDL_BYTEORDER == SDL_BIG_ENDIAN)
|
||||
? MSBFirst : LSBFirst;
|
||||
icon_pixmap = pXCreatePixmap(SDL_Display, SDL_Root, sicon->w, sicon->h,
|
||||
icon_pixmap = XCreatePixmap(SDL_Display, SDL_Root, sicon->w, sicon->h,
|
||||
DefaultDepth(SDL_Display, SDL_Screen));
|
||||
gc = pXCreateGC(SDL_Display, icon_pixmap, 0, &GCvalues);
|
||||
pXPutImage(SDL_Display, icon_pixmap, gc, icon_image,
|
||||
gc = XCreateGC(SDL_Display, icon_pixmap, 0, &GCvalues);
|
||||
XPutImage(SDL_Display, icon_pixmap, gc, icon_image,
|
||||
0, 0, 0, 0, sicon->w, sicon->h);
|
||||
pXFreeGC(SDL_Display, gc);
|
||||
pXDestroyImage(icon_image);
|
||||
XFreeGC(SDL_Display, gc);
|
||||
XDestroyImage(icon_image);
|
||||
SDL_free(LSBmask);
|
||||
sicon->pixels = NULL;
|
||||
|
||||
|
@ -213,17 +213,17 @@ void X11_SetIcon(_THIS, SDL_Surface *icon, Uint8 *mask)
|
|||
it screws up others. The default is only to use a pixmap. */
|
||||
p = SDL_getenv("SDL_VIDEO_X11_ICONWIN");
|
||||
if(p && *p) {
|
||||
icon_window = pXCreateSimpleWindow(SDL_Display, SDL_Root,
|
||||
icon_window = XCreateSimpleWindow(SDL_Display, SDL_Root,
|
||||
0, 0, sicon->w, sicon->h, 0,
|
||||
CopyFromParent,
|
||||
CopyFromParent);
|
||||
pXSetWindowBackgroundPixmap(SDL_Display, icon_window,
|
||||
XSetWindowBackgroundPixmap(SDL_Display, icon_window,
|
||||
icon_pixmap);
|
||||
pXClearWindow(SDL_Display, icon_window);
|
||||
XClearWindow(SDL_Display, icon_window);
|
||||
}
|
||||
|
||||
/* Set the window icon to the icon pixmap (and icon window) */
|
||||
wmhints = pXAllocWMHints();
|
||||
wmhints = XAllocWMHints();
|
||||
wmhints->flags = (IconPixmapHint | IconMaskHint);
|
||||
wmhints->icon_pixmap = icon_pixmap;
|
||||
wmhints->icon_mask = mask_pixmap;
|
||||
|
@ -231,9 +231,9 @@ void X11_SetIcon(_THIS, SDL_Surface *icon, Uint8 *mask)
|
|||
wmhints->flags |= IconWindowHint;
|
||||
wmhints->icon_window = icon_window;
|
||||
}
|
||||
pXSetWMHints(SDL_Display, WMwindow, wmhints);
|
||||
pXFree(wmhints);
|
||||
pXSync(SDL_Display, False);
|
||||
XSetWMHints(SDL_Display, WMwindow, wmhints);
|
||||
XFree(wmhints);
|
||||
XSync(SDL_Display, False);
|
||||
|
||||
done:
|
||||
SDL_Unlock_EventThread();
|
||||
|
@ -250,8 +250,10 @@ void X11_SetCaption(_THIS, const char *title, const char *icon)
|
|||
Atom _NET_WM_ICON_NAME;
|
||||
|
||||
/* Look up some useful Atoms */
|
||||
_NET_WM_NAME = pXInternAtom(SDL_Display, "_NET_WM_NAME", False);
|
||||
_NET_WM_ICON_NAME = pXInternAtom(SDL_Display, "_NET_WM_ICON_NAME", False);
|
||||
if (SDL_X11_HAVE_UTF8) {
|
||||
_NET_WM_NAME = XInternAtom(SDL_Display, "_NET_WM_NAME", False);
|
||||
_NET_WM_ICON_NAME = XInternAtom(SDL_Display, "_NET_WM_ICON_NAME", False);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Lock the event thread, in multi-threading environments */
|
||||
|
@ -263,18 +265,20 @@ void X11_SetCaption(_THIS, const char *title, const char *icon)
|
|||
SDL_OutOfMemory();
|
||||
return;
|
||||
}
|
||||
status = pXStringListToTextProperty(&title_latin1, 1, &titleprop);
|
||||
status = XStringListToTextProperty(&title_latin1, 1, &titleprop);
|
||||
SDL_free(title_latin1);
|
||||
if ( status ) {
|
||||
pXSetTextProperty(SDL_Display, WMwindow, &titleprop, XA_WM_NAME);
|
||||
pXFree(titleprop.value);
|
||||
XSetTextProperty(SDL_Display, WMwindow, &titleprop, XA_WM_NAME);
|
||||
XFree(titleprop.value);
|
||||
}
|
||||
#ifdef X_HAVE_UTF8_STRING
|
||||
status = pXutf8TextListToTextProperty(SDL_Display,
|
||||
(char **)&title, 1, XUTF8StringStyle, &titleprop);
|
||||
if ( status == Success ) {
|
||||
pXSetTextProperty(SDL_Display, WMwindow, &titleprop, _NET_WM_NAME);
|
||||
pXFree(titleprop.value);
|
||||
if (SDL_X11_HAVE_UTF8) {
|
||||
status = Xutf8TextListToTextProperty(SDL_Display,
|
||||
(char **)&title, 1, XUTF8StringStyle, &titleprop);
|
||||
if ( status == Success ) {
|
||||
XSetTextProperty(SDL_Display, WMwindow, &titleprop, _NET_WM_NAME);
|
||||
XFree(titleprop.value);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -284,22 +288,24 @@ void X11_SetCaption(_THIS, const char *title, const char *icon)
|
|||
SDL_OutOfMemory();
|
||||
return;
|
||||
}
|
||||
status = pXStringListToTextProperty(&icon_latin1, 1, &iconprop);
|
||||
status = XStringListToTextProperty(&icon_latin1, 1, &iconprop);
|
||||
SDL_free(icon_latin1);
|
||||
if ( status ) {
|
||||
pXSetTextProperty(SDL_Display, WMwindow, &iconprop, XA_WM_ICON_NAME);
|
||||
pXFree(iconprop.value);
|
||||
XSetTextProperty(SDL_Display, WMwindow, &iconprop, XA_WM_ICON_NAME);
|
||||
XFree(iconprop.value);
|
||||
}
|
||||
#ifdef X_HAVE_UTF8_STRING
|
||||
status = pXutf8TextListToTextProperty(SDL_Display,
|
||||
(char **)&icon, 1, XUTF8StringStyle, &iconprop);
|
||||
if ( status == Success ) {
|
||||
pXSetTextProperty(SDL_Display, WMwindow, &iconprop, _NET_WM_ICON_NAME);
|
||||
pXFree(iconprop.value);
|
||||
if (SDL_X11_HAVE_UTF8) {
|
||||
status = Xutf8TextListToTextProperty(SDL_Display,
|
||||
(char **)&icon, 1, XUTF8StringStyle, &iconprop);
|
||||
if ( status == Success ) {
|
||||
XSetTextProperty(SDL_Display, WMwindow, &iconprop, _NET_WM_ICON_NAME);
|
||||
XFree(iconprop.value);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
pXSync(SDL_Display, False);
|
||||
XSync(SDL_Display, False);
|
||||
|
||||
SDL_Unlock_EventThread();
|
||||
}
|
||||
|
@ -310,8 +316,8 @@ int X11_IconifyWindow(_THIS)
|
|||
int result;
|
||||
|
||||
SDL_Lock_EventThread();
|
||||
result = pXIconifyWindow(SDL_Display, WMwindow, SDL_Screen);
|
||||
pXSync(SDL_Display, False);
|
||||
result = XIconifyWindow(SDL_Display, WMwindow, SDL_Screen);
|
||||
XSync(SDL_Display, False);
|
||||
SDL_Unlock_EventThread();
|
||||
return(result);
|
||||
}
|
||||
|
@ -327,12 +333,12 @@ SDL_GrabMode X11_GrabInputNoLock(_THIS, SDL_GrabMode mode)
|
|||
return(mode); /* Will be set later on mode switch */
|
||||
}
|
||||
if ( mode == SDL_GRAB_OFF ) {
|
||||
pXUngrabPointer(SDL_Display, CurrentTime);
|
||||
pXUngrabKeyboard(SDL_Display, CurrentTime);
|
||||
XUngrabPointer(SDL_Display, CurrentTime);
|
||||
XUngrabKeyboard(SDL_Display, CurrentTime);
|
||||
} else {
|
||||
if ( this->screen->flags & SDL_FULLSCREEN ) {
|
||||
/* Unbind the mouse from the fullscreen window */
|
||||
pXUngrabPointer(SDL_Display, CurrentTime);
|
||||
XUngrabPointer(SDL_Display, CurrentTime);
|
||||
}
|
||||
/* Try to grab the mouse */
|
||||
#if 0 /* We'll wait here until we actually grab, otherwise behavior undefined */
|
||||
|
@ -340,7 +346,7 @@ SDL_GrabMode X11_GrabInputNoLock(_THIS, SDL_GrabMode mode)
|
|||
#else
|
||||
while ( 1 ) {
|
||||
#endif
|
||||
result = pXGrabPointer(SDL_Display, SDL_Window, True, 0,
|
||||
result = XGrabPointer(SDL_Display, SDL_Window, True, 0,
|
||||
GrabModeAsync, GrabModeAsync,
|
||||
SDL_Window, None, CurrentTime);
|
||||
if ( result == GrabSuccess ) {
|
||||
|
@ -352,17 +358,17 @@ SDL_GrabMode X11_GrabInputNoLock(_THIS, SDL_GrabMode mode)
|
|||
/* Uh, oh, what do we do here? */ ;
|
||||
}
|
||||
/* Now grab the keyboard */
|
||||
pXGrabKeyboard(SDL_Display, WMwindow, True,
|
||||
XGrabKeyboard(SDL_Display, WMwindow, True,
|
||||
GrabModeAsync, GrabModeAsync, CurrentTime);
|
||||
|
||||
/* Raise the window if we grab the mouse */
|
||||
if ( !(this->screen->flags & SDL_FULLSCREEN) )
|
||||
pXRaiseWindow(SDL_Display, WMwindow);
|
||||
XRaiseWindow(SDL_Display, WMwindow);
|
||||
|
||||
/* Make sure we register input focus */
|
||||
SDL_PrivateAppActive(1, SDL_APPINPUTFOCUS);
|
||||
}
|
||||
pXSync(SDL_Display, False);
|
||||
XSync(SDL_Display, False);
|
||||
|
||||
return(mode);
|
||||
}
|
||||
|
@ -387,7 +393,7 @@ static void unlock_display(void)
|
|||
{
|
||||
/* Make sure any X11 transactions are completed */
|
||||
SDL_VideoDevice *this = current_video;
|
||||
pXSync(SDL_Display, False);
|
||||
XSync(SDL_Display, False);
|
||||
SDL_Unlock_EventThread();
|
||||
}
|
||||
int X11_GetWMInfo(_THIS, SDL_SysWMinfo *info)
|
||||
|
|
|
@ -151,7 +151,7 @@ SDL_Overlay *X11_CreateYUVOverlay(_THIS, int width, int height, Uint32 format, S
|
|||
}
|
||||
}
|
||||
if ( formats ) {
|
||||
pXFree(formats);
|
||||
XFree(formats);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -200,21 +200,21 @@ SDL_Overlay *X11_CreateYUVOverlay(_THIS, int width, int height, Uint32 format, S
|
|||
unsigned int i;
|
||||
|
||||
SDL_NAME(XvSelectPortNotify)(GFX_Display, xv_port, True);
|
||||
X_handler = pXSetErrorHandler(xv_errhandler);
|
||||
X_handler = XSetErrorHandler(xv_errhandler);
|
||||
for ( i=0; i < sizeof(attr)/(sizeof attr[0]); ++i ) {
|
||||
Atom a;
|
||||
|
||||
xv_error = False;
|
||||
a = pXInternAtom(GFX_Display, attr[i], True);
|
||||
a = XInternAtom(GFX_Display, attr[i], True);
|
||||
if ( a != None ) {
|
||||
SDL_NAME(XvSetPortAttribute)(GFX_Display, xv_port, a, 1);
|
||||
pXSync(GFX_Display, True);
|
||||
XSync(GFX_Display, True);
|
||||
if ( ! xv_error ) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
pXSetErrorHandler(X_handler);
|
||||
XSetErrorHandler(X_handler);
|
||||
SDL_NAME(XvSelectPortNotify)(GFX_Display, xv_port, False);
|
||||
}
|
||||
|
||||
|
@ -254,7 +254,7 @@ SDL_Overlay *X11_CreateYUVOverlay(_THIS, int width, int height, Uint32 format, S
|
|||
#ifdef PITCH_WORKAROUND
|
||||
if ( hwdata->image != NULL && hwdata->image->pitches[0] != (width*bpp) ) {
|
||||
/* Ajust overlay width according to pitch */
|
||||
pXFree(hwdata->image);
|
||||
XFree(hwdata->image);
|
||||
width = hwdata->image->pitches[0] / bpp;
|
||||
hwdata->image = SDL_NAME(XvShmCreateImage)(GFX_Display, xv_port, format,
|
||||
0, width, height, yuvshm);
|
||||
|
@ -269,10 +269,10 @@ SDL_Overlay *X11_CreateYUVOverlay(_THIS, int width, int height, Uint32 format, S
|
|||
yuvshm->readOnly = False;
|
||||
if ( yuvshm->shmaddr != (char *)-1 ) {
|
||||
shm_error = False;
|
||||
X_handler = pXSetErrorHandler(shm_errhandler);
|
||||
pXShmAttach(GFX_Display, yuvshm);
|
||||
pXSync(GFX_Display, True);
|
||||
pXSetErrorHandler(X_handler);
|
||||
X_handler = XSetErrorHandler(shm_errhandler);
|
||||
XShmAttach(GFX_Display, yuvshm);
|
||||
XSync(GFX_Display, True);
|
||||
XSetErrorHandler(X_handler);
|
||||
if ( shm_error )
|
||||
shmdt(yuvshm->shmaddr);
|
||||
} else {
|
||||
|
@ -283,7 +283,7 @@ SDL_Overlay *X11_CreateYUVOverlay(_THIS, int width, int height, Uint32 format, S
|
|||
shm_error = True;
|
||||
}
|
||||
if ( shm_error ) {
|
||||
pXFree(hwdata->image);
|
||||
XFree(hwdata->image);
|
||||
hwdata->yuv_use_mitshm = 0;
|
||||
} else {
|
||||
hwdata->image->data = yuvshm->shmaddr;
|
||||
|
@ -298,7 +298,7 @@ SDL_Overlay *X11_CreateYUVOverlay(_THIS, int width, int height, Uint32 format, S
|
|||
#ifdef PITCH_WORKAROUND
|
||||
if ( hwdata->image != NULL && hwdata->image->pitches[0] != (width*bpp) ) {
|
||||
/* Ajust overlay width according to pitch */
|
||||
pXFree(hwdata->image);
|
||||
XFree(hwdata->image);
|
||||
width = hwdata->image->pitches[0] / bpp;
|
||||
hwdata->image = SDL_NAME(XvCreateImage)(GFX_Display, xv_port, format,
|
||||
0, width, height);
|
||||
|
@ -372,7 +372,7 @@ int X11_DisplayYUVOverlay(_THIS, SDL_Overlay *overlay, SDL_Rect *dstrect)
|
|||
hwdata->image, 0, 0, overlay->w, overlay->h,
|
||||
dstrect->x, dstrect->y, dstrect->w, dstrect->h);
|
||||
}
|
||||
pXSync(GFX_Display, False);
|
||||
XSync(GFX_Display, False);
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
@ -385,12 +385,12 @@ void X11_FreeYUVOverlay(_THIS, SDL_Overlay *overlay)
|
|||
SDL_NAME(XvUngrabPort)(GFX_Display, hwdata->port, CurrentTime);
|
||||
#ifndef NO_SHARED_MEMORY
|
||||
if ( hwdata->yuv_use_mitshm ) {
|
||||
pXShmDetach(GFX_Display, &hwdata->yuvshm);
|
||||
XShmDetach(GFX_Display, &hwdata->yuvshm);
|
||||
shmdt(hwdata->yuvshm.shmaddr);
|
||||
}
|
||||
#endif
|
||||
if ( hwdata->image ) {
|
||||
pXFree(hwdata->image);
|
||||
XFree(hwdata->image);
|
||||
}
|
||||
SDL_free(hwdata);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue