diff include/SDL_syswm.h @ 4899:5d529386db73

attached is a patch to support DirectFB in include/SDL_syswm.h. It defines SDL_SYSWM_DIRECTFB as a subsystem. This allows developers to e.g. access DirectFB's video and picture providers. Kind regards, André
author Sam Lantinga <slouken@libsdl.org>
date Mon, 27 Sep 2010 00:50:46 -0700
parents fd27410a5db0
children 69d9db65f248
line wrap: on
line diff
--- a/include/SDL_syswm.h	Mon Sep 27 00:49:56 2010 -0700
+++ b/include/SDL_syswm.h	Mon Sep 27 00:50:46 2010 -0700
@@ -55,6 +55,7 @@
 #else
 
 /* This is the structure for custom window manager events */
+#if defined(SDL_VIDEO_DRIVER_X11) || defined(SDL_VIDEO_DRIVER_DIRECTFB)
 #if defined(SDL_VIDEO_DRIVER_X11)
 #if defined(__APPLE__) && defined(__MACH__)
 /* conflicts with Quickdraw.h */
@@ -69,12 +70,22 @@
 #undef Cursor
 #endif
 
+#endif /* defined(SDL_VIDEO_DRIVER_X11) */
+
+#if defined(SDL_VIDEO_DRIVER_DIRECTFB)
+#include <directfb/directfb.h>
+#endif
 /** 
  *  These are the various supported subsystems under UNIX.
  */
 typedef enum
 {
-    SDL_SYSWM_X11
+#if defined(SDL_VIDEO_DRIVER_X11)
+    SDL_SYSWM_X11,
+#endif
+#if defined(SDL_VIDEO_DRIVER_DIRECTFB)
+    SDL_SYSWM_DIRECTFB,
+#endif
 } SDL_SYSWM_TYPE;
 
 /**
@@ -86,7 +97,12 @@
     SDL_SYSWM_TYPE subsystem;
     union
     {
+#if defined(SDL_VIDEO_DRIVER_X11)
         XEvent xevent;
+#endif
+#if defined(SDL_VIDEO_DRIVER_DIRECTFB)
+        DFBEvent dfb_event;
+#endif
     } event;
 };
 
@@ -102,11 +118,21 @@
     SDL_SYSWM_TYPE subsystem;
     union
     {
+#if defined(SDL_VIDEO_DRIVER_X11)
         struct
         {
             Display *display;   /**< The X11 display */
             Window window;      /**< The X11 display window */
         } x11;
+#endif
+#if defined(SDL_VIDEO_DRIVER_DIRECTFB)
+        struct
+        {
+        	IDirectFB *dfb;   			/**< The directfb main interface */
+        	IDirectFBWindow *window;    /**< The directfb window handle */
+        	IDirectFBSurface *surface;  /**< The directfb client surface */
+        } directfb;
+#endif
     } info;
 };