From 8e2a972b50f8e4d88f5c186feabeccfa4daf6156 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 27 Sep 2010 00:50:46 -0700 Subject: [PATCH] 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. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Kind regards, André --- include/SDL_syswm.h | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/include/SDL_syswm.h b/include/SDL_syswm.h index 8ea5f0bfb..4f2afa673 100644 --- a/include/SDL_syswm.h +++ b/include/SDL_syswm.h @@ -55,6 +55,7 @@ struct SDL_SysWMinfo; #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 @@ struct SDL_SysWMinfo; #undef Cursor #endif +#endif /* defined(SDL_VIDEO_DRIVER_X11) */ + +#if defined(SDL_VIDEO_DRIVER_DIRECTFB) +#include +#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 @@ struct SDL_SysWMmsg 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 @@ struct SDL_SysWMinfo 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; };