Check configure-defined macro before doing _anything_ with XShape.
authorRyan C. Gordon <icculus@icculus.org>
Tue, 13 Jul 2010 02:43:49 -0400
changeset 4794 e562160a873f
parent 4793 cb31d2fdbe61
child 4795 6f0bc179771c
Check configure-defined macro before doing _anything_ with XShape.
src/video/x11/SDL_x11shape.c
src/video/x11/SDL_x11sym.h
src/video/x11/SDL_x11video.h
--- a/src/video/x11/SDL_x11shape.c	Tue Jul 13 02:43:10 2010 -0400
+++ b/src/video/x11/SDL_x11shape.c	Tue Jul 13 02:43:49 2010 -0400
@@ -21,13 +21,14 @@
 */
 
 #include <assert.h>
-#include <X11/extensions/shape.h>
+#include "SDL_x11video.h"
 #include "SDL_x11shape.h"
 #include "SDL_x11window.h"
-#include "SDL_x11video.h"
 
 SDL_WindowShaper* X11_CreateShaper(SDL_Window* window) {
 	SDL_WindowShaper* result = NULL;
+
+#if SDL_VIDEO_DRIVER_X11_XSHAPE
 	if (SDL_X11_HAVE_XSHAPE) {  /* Make sure X server supports it. */
 		result = malloc(sizeof(SDL_WindowShaper));
 		result->window = window;
@@ -38,6 +39,7 @@
 		int resized_properly = X11_ResizeWindowShape(window);
 		assert(resized_properly == 0);
 	}
+#endif
 
 	return result;
 }
@@ -69,6 +71,8 @@
 int X11_SetWindowShape(SDL_WindowShaper *shaper,SDL_Surface *shape,SDL_WindowShapeMode *shapeMode) {
 	if(shaper == NULL || shape == NULL || shaper->driverdata == NULL)
 		return -1;
+
+#if SDL_VIDEO_DRIVER_X11_XSHAPE
 	if(!SDL_ISPIXELFORMAT_ALPHA(SDL_MasksToPixelFormatEnum(shape->format->BitsPerPixel,shape->format->Rmask,shape->format->Gmask,shape->format->Bmask,shape->format->Amask)))
 		return -2;
 	if(shape->w != shaper->window->w || shape->h != shaper->window->h)
@@ -85,6 +89,7 @@
 	XSync(windowdata->videodata->display,False);
 
 	XFreePixmap(windowdata->videodata->display,shapemask);
-	
+#endif
+
 	return 0;
 }
--- a/src/video/x11/SDL_x11sym.h	Tue Jul 13 02:43:10 2010 -0400
+++ b/src/video/x11/SDL_x11sym.h	Tue Jul 13 02:43:49 2010 -0400
@@ -233,7 +233,7 @@
 SDL_X11_SYM(void,XScreenSaverSuspend,(Display *dpy,Bool suspend),(dpy,suspend),return)
 #endif
 
-#if 1 /* !!! FIXME: SDL_VIDEO_DRIVER_X11_XSHAPE */
+#if SDL_VIDEO_DRIVER_X11_XSHAPE
 SDL_X11_MODULE(XSHAPE)
 SDL_X11_SYM(void,XShapeCombineMask,(Display *dpy,Window dest,int dest_kind,int x_off,int y_off,Pixmap src,int op),(dpy,dest,dest_kind,x_off,y_off,src,op),)
 #endif
--- a/src/video/x11/SDL_x11video.h	Tue Jul 13 02:43:10 2010 -0400
+++ b/src/video/x11/SDL_x11video.h	Tue Jul 13 02:43:49 2010 -0400
@@ -45,6 +45,9 @@
 #if SDL_VIDEO_DRIVER_X11_SCRNSAVER
 #include <X11/extensions/scrnsaver.h>
 #endif
+#if SDL_VIDEO_DRIVER_X11_XSHAPE
+#include <X11/extensions/shape.h>
+#endif
 
 #include "SDL_x11dyn.h"