diff src/video/SDL_sysvideo.h @ 2742:b86247d21929

Added retained backing attribute, reference to UIKit renderer
author Holmes Futrell <hfutrell@umail.ucsb.edu>
date Tue, 02 Sep 2008 19:53:56 +0000
parents 204be4fc2726
children 0969758c8809
line wrap: on
line diff
--- a/src/video/SDL_sysvideo.h	Tue Sep 02 02:44:45 2008 +0000
+++ b/src/video/SDL_sysvideo.h	Tue Sep 02 19:53:56 2008 +0000
@@ -37,274 +37,276 @@
 typedef struct SDL_VideoDevice SDL_VideoDevice;
 
 /* Define the SDL texture structure */
-struct SDL_Texture
-{
-    Uint32 id;
+struct SDL_Texture {
+	Uint32          id;
 
-    Uint32 format;      /**< The pixel format of the texture */
-    int access;         /**< SDL_TextureAccess */
-    int w;              /**< The width of the texture */
-    int h;              /**< The height of the texture */
-    int modMode;        /**< The texture modulation mode */
-    int blendMode;      /**< The texture blend mode */
-    int scaleMode;      /**< The texture scale mode */
-    Uint8 r, g, b, a;   /**< Texture modulation values */
+	Uint32          format;	/**< The pixel format of the texture */
+	int             access;	/**< SDL_TextureAccess */
+	int             w;	/**< The width of the texture */
+	int             h;	/**< The height of the texture */
+	int             modMode;/**< The texture modulation mode */
+	int             blendMode;	/**< The texture blend mode */
+	int             scaleMode;	/**< The texture scale mode */
+	Uint8           r, g, b, a;	/**< Texture modulation values */
 
-    SDL_Renderer *renderer;
+	SDL_Renderer   *renderer;
 
-    void *driverdata;   /**< Driver specific texture representation */
+	void           *driverdata;	/**< Driver specific texture representation */
 
-    SDL_Texture *next;
+	SDL_Texture    *next;
 };
 
 /* Define the SDL renderer structure */
-struct SDL_Renderer
-{
-    int (*ActivateRenderer) (SDL_Renderer * renderer);
-    int (*DisplayModeChanged) (SDL_Renderer * renderer);
-    int (*CreateTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
-    int (*QueryTexturePixels) (SDL_Renderer * renderer, SDL_Texture * texture,
-                               void **pixels, int *pitch);
-    int (*SetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture,
-                              const SDL_Color * colors, int firstcolor,
-                              int ncolors);
-    int (*GetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture,
-                              SDL_Color * colors, int firstcolor,
-                              int ncolors);
-    int (*SetTextureColorMod) (SDL_Renderer * renderer,
-                               SDL_Texture * texture);
-    int (*SetTextureAlphaMod) (SDL_Renderer * renderer,
-                               SDL_Texture * texture);
-    int (*SetTextureBlendMode) (SDL_Renderer * renderer,
-                                SDL_Texture * texture);
-    int (*SetTextureScaleMode) (SDL_Renderer * renderer,
-                                SDL_Texture * texture);
-    int (*UpdateTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
-                          const SDL_Rect * rect, const void *pixels,
-                          int pitch);
-    int (*LockTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
-                        const SDL_Rect * rect, int markDirty, void **pixels,
-                        int *pitch);
-    void (*UnlockTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
-    void (*DirtyTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
-                          int numrects, const SDL_Rect * rects);
-    int (*RenderFill) (SDL_Renderer * renderer, Uint8 r, Uint8 g, Uint8 b,
-                       Uint8 a, const SDL_Rect * rect);
-    int (*RenderCopy) (SDL_Renderer * renderer, SDL_Texture * texture,
-                       const SDL_Rect * srcrect, const SDL_Rect * dstrect);
-    void (*RenderPresent) (SDL_Renderer * renderer);
-    void (*DestroyTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
+struct SDL_Renderer {
+	int             (*ActivateRenderer) (SDL_Renderer * renderer);
+	int             (*DisplayModeChanged) (SDL_Renderer * renderer);
+	int             (*CreateTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
+	int             (*QueryTexturePixels) (SDL_Renderer * renderer, SDL_Texture * texture,
+				                 void **pixels, int *pitch);
+	int             (*SetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture,
+		                   const SDL_Color * colors, int firstcolor,
+					                      int ncolors);
+	int             (*GetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture,
+			                 SDL_Color * colors, int firstcolor,
+					                      int ncolors);
+	int             (*SetTextureColorMod) (SDL_Renderer * renderer,
+				                     SDL_Texture * texture);
+	int             (*SetTextureAlphaMod) (SDL_Renderer * renderer,
+				                     SDL_Texture * texture);
+	int             (*SetTextureBlendMode) (SDL_Renderer * renderer,
+				                     SDL_Texture * texture);
+	int             (*SetTextureScaleMode) (SDL_Renderer * renderer,
+				                     SDL_Texture * texture);
+	int             (*UpdateTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
+		                  const SDL_Rect * rect, const void *pixels,
+					                  int pitch);
+	int             (*LockTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
+	                const SDL_Rect * rect, int markDirty, void **pixels,
+					                int *pitch);
+	void            (*UnlockTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
+	void            (*DirtyTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
+		                      int numrects, const SDL_Rect * rects);
+	int             (*RenderFill) (SDL_Renderer * renderer, Uint8 r, Uint8 g, Uint8 b,
+			                    Uint8 a, const SDL_Rect * rect);
+	int             (*RenderCopy) (SDL_Renderer * renderer, SDL_Texture * texture,
+	                const SDL_Rect * srcrect, const SDL_Rect * dstrect);
+	void            (*RenderPresent) (SDL_Renderer * renderer);
+	void            (*DestroyTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
 
-    void (*DestroyRenderer) (SDL_Renderer * renderer);
+	void            (*DestroyRenderer) (SDL_Renderer * renderer);
 
-    /* The current renderer info */
-    SDL_RendererInfo info;
+	/* The current renderer info */
+	SDL_RendererInfo info;
 
-    /* The window associated with the renderer */
-    SDL_WindowID window;
+	/* The window associated with the renderer */
+	SDL_WindowID    window;
 
-    void *driverdata;
+	void           *driverdata;
 };
 
 /* Define the SDL render driver structure */
-struct SDL_RenderDriver
-{
-    SDL_Renderer *(*CreateRenderer) (SDL_Window * window, Uint32 flags);
+struct SDL_RenderDriver {
+	SDL_Renderer   *(*CreateRenderer) (SDL_Window * window, Uint32 flags);
 
-    /* Info about the renderer capabilities */
-    SDL_RendererInfo info;
+	/* Info about the renderer capabilities */
+	SDL_RendererInfo info;
 };
 
 /* Define the SDL window structure, corresponding to toplevel windows */
-struct SDL_Window
-{
-    Uint32 id;
+struct SDL_Window {
+	Uint32          id;
 
-    char *title;
-    int x, y;
-    int w, h;
-    Uint32 flags;
+	char           *title;
+	int             x, y;
+	int             w, h;
+	Uint32          flags;
 
-    int display;
-    SDL_Renderer *renderer;
+	int             display;
+	SDL_Renderer   *renderer;
 
-    void *userdata;
-    void *driverdata;
+	void           *userdata;
+	void           *driverdata;
 };
 #define FULLSCREEN_VISIBLE(W) \
     (((W)->flags & SDL_WINDOW_FULLSCREEN) && \
      ((W)->flags & SDL_WINDOW_SHOWN) && \
      !((W)->flags & SDL_WINDOW_MINIMIZED))
 
-/* Define the SDL display structure
-   This corresponds to physical monitors attached to the system.
+/*
+ * Define the SDL display structure This corresponds to physical monitors
+ * attached to the system.
  */
-struct SDL_VideoDisplay
-{
-    int max_display_modes;
-    int num_display_modes;
-    SDL_DisplayMode *display_modes;
-    SDL_DisplayMode desktop_mode;
-    SDL_DisplayMode current_mode;
-    SDL_DisplayMode fullscreen_mode;
-    SDL_Palette *palette;
+struct SDL_VideoDisplay {
+	int             max_display_modes;
+	int             num_display_modes;
+	SDL_DisplayMode *display_modes;
+	SDL_DisplayMode desktop_mode;
+	SDL_DisplayMode current_mode;
+	SDL_DisplayMode fullscreen_mode;
+	SDL_Palette    *palette;
 
-    Uint16 *gamma;
-    Uint16 *saved_gamma;        /* (just offset into gamma) */
+	Uint16         *gamma;
+	Uint16         *saved_gamma;	/* (just offset into gamma) */
 
-    int num_render_drivers;
-    SDL_RenderDriver *render_drivers;
+	int             num_render_drivers;
+	SDL_RenderDriver *render_drivers;
 
-    int num_windows;
-    SDL_Window *windows;
+	int             num_windows;
+	SDL_Window     *windows;
 
-    SDL_Renderer *current_renderer;
+	SDL_Renderer   *current_renderer;
 
-    /* The hash list of textures */
-    SDL_Texture *textures[64];
+	/* The hash list of textures */
+	SDL_Texture    *textures[64];
 
-    SDL_VideoDevice *device;
+	SDL_VideoDevice *device;
 
-    void *driverdata;
+	void           *driverdata;
 };
 
 /* Define the SDL video driver structure */
 #define _THIS	SDL_VideoDevice *_this
 
-struct SDL_VideoDevice
-{
-    /* * * */
-    /* The name of this video driver */
-    const char *name;
+struct SDL_VideoDevice {
+	/* * * */
+	/* The name of this video driver */
+	const char     *name;
 
-    /* * * */
-    /* Initialization/Query functions */
+	/* * * */
+	/* Initialization/Query functions */
 
-    /* Initialize the native video subsystem, filling in the list
-       of displays for this driver, returning 0 or -1 if there's an error.
-     */
-    int (*VideoInit) (_THIS);
+	/*
+	 * Initialize the native video subsystem, filling in the list of
+	 * displays for this driver, returning 0 or -1 if there's an error.
+	 */
+	int             (*VideoInit) (_THIS);
 
-    /* Reverse the effects VideoInit() -- called if VideoInit() fails
-       or if the application is shutting down the video subsystem.
-     */
-    void (*VideoQuit) (_THIS);
+	/*
+	 * Reverse the effects VideoInit() -- called if VideoInit() fails or
+	 * if the application is shutting down the video subsystem.
+	 */
+	void            (*VideoQuit) (_THIS);
 
-    /* * * */
-    /* Display functions
-     */
+	/* * * */
+	/*
+	 * Display functions
+	 */
 
-    /* Get a list of the available display modes.
-     * e.g.  SDL_AddDisplayMode(_this->current_display, mode)
-     */
-    void (*GetDisplayModes) (_THIS);
-
-    /* Setting the display mode is independent of creating windows,
-     * so when the display mode is changed, all existing windows
-     * should have their data updated accordingly, including the
-     * display surfaces associated with them.
-     */
-    int (*SetDisplayMode) (_THIS, SDL_DisplayMode * mode);
+	/*
+	 * Get a list of the available display modes. e.g.
+	 * SDL_AddDisplayMode(_this->current_display, mode)
+	 */
+	void            (*GetDisplayModes) (_THIS);
 
-    /* Set the color entries of the display palette */
-    int (*SetDisplayPalette) (_THIS, SDL_Palette * palette);
-
-    /* Get the color entries of the display palette */
-    int (*GetDisplayPalette) (_THIS, SDL_Palette * palette);
+	/*
+	 * Setting the display mode is independent of creating windows, so
+	 * when the display mode is changed, all existing windows should have
+	 * their data updated accordingly, including the display surfaces
+	 * associated with them.
+	 */
+	int             (*SetDisplayMode) (_THIS, SDL_DisplayMode * mode);
 
-    /* Set the gamma ramp */
-    int (*SetDisplayGammaRamp) (_THIS, Uint16 * ramp);
+	/* Set the color entries of the display palette */
+	int             (*SetDisplayPalette) (_THIS, SDL_Palette * palette);
+
+	/* Get the color entries of the display palette */
+	int             (*GetDisplayPalette) (_THIS, SDL_Palette * palette);
 
-    /* Get the gamma ramp */
-    int (*GetDisplayGammaRamp) (_THIS, Uint16 * ramp);
+	/* Set the gamma ramp */
+	int             (*SetDisplayGammaRamp) (_THIS, Uint16 * ramp);
+
+	/* Get the gamma ramp */
+	int             (*GetDisplayGammaRamp) (_THIS, Uint16 * ramp);
 
-    /* * * */
-    /* Window functions
-     */
-    int (*CreateWindow) (_THIS, SDL_Window * window);
-    int (*CreateWindowFrom) (_THIS, SDL_Window * window, const void *data);
-    void (*SetWindowTitle) (_THIS, SDL_Window * window);
-    void (*SetWindowPosition) (_THIS, SDL_Window * window);
-    void (*SetWindowSize) (_THIS, SDL_Window * window);
-    void (*ShowWindow) (_THIS, SDL_Window * window);
-    void (*HideWindow) (_THIS, SDL_Window * window);
-    void (*RaiseWindow) (_THIS, SDL_Window * window);
-    void (*MaximizeWindow) (_THIS, SDL_Window * window);
-    void (*MinimizeWindow) (_THIS, SDL_Window * window);
-    void (*RestoreWindow) (_THIS, SDL_Window * window);
-    void (*SetWindowGrab) (_THIS, SDL_Window * window);
-    void (*DestroyWindow) (_THIS, SDL_Window * window);
+	/* * * */
+	/*
+	 * Window functions
+	 */
+	int             (*CreateWindow) (_THIS, SDL_Window * window);
+	int             (*CreateWindowFrom) (_THIS, SDL_Window * window, const void *data);
+	void            (*SetWindowTitle) (_THIS, SDL_Window * window);
+	void            (*SetWindowPosition) (_THIS, SDL_Window * window);
+	void            (*SetWindowSize) (_THIS, SDL_Window * window);
+	void            (*ShowWindow) (_THIS, SDL_Window * window);
+	void            (*HideWindow) (_THIS, SDL_Window * window);
+	void            (*RaiseWindow) (_THIS, SDL_Window * window);
+	void            (*MaximizeWindow) (_THIS, SDL_Window * window);
+	void            (*MinimizeWindow) (_THIS, SDL_Window * window);
+	void            (*RestoreWindow) (_THIS, SDL_Window * window);
+	void            (*SetWindowGrab) (_THIS, SDL_Window * window);
+	void            (*DestroyWindow) (_THIS, SDL_Window * window);
 
-    /* Get some platform dependent window information */
-      SDL_bool(*GetWindowWMInfo) (_THIS, SDL_Window * window,
-                                  struct SDL_SysWMinfo * info);
+	/* Get some platform dependent window information */
+	                SDL_bool(*GetWindowWMInfo) (_THIS, SDL_Window * window,
+			                       struct SDL_SysWMinfo * info);
 
-    /* * * */
-    /* OpenGL support
-     */
-    int (*GL_LoadLibrary) (_THIS, const char *path);
-    void *(*GL_GetProcAddress) (_THIS, const char *proc);
-      SDL_GLContext(*GL_CreateContext) (_THIS, SDL_Window * window);
-    int (*GL_MakeCurrent) (_THIS, SDL_Window * window, SDL_GLContext context);
-    int (*GL_SetSwapInterval) (_THIS, int interval);
-    int (*GL_GetSwapInterval) (_THIS);
-    void (*GL_SwapWindow) (_THIS, SDL_Window * window);
-    void (*GL_DeleteContext) (_THIS, SDL_GLContext context);
+	/* * * */
+	/*
+	 * OpenGL support
+	 */
+	int             (*GL_LoadLibrary) (_THIS, const char *path);
+	void           *(*GL_GetProcAddress) (_THIS, const char *proc);
+	                SDL_GLContext(*GL_CreateContext) (_THIS, SDL_Window * window);
+	int             (*GL_MakeCurrent) (_THIS, SDL_Window * window, SDL_GLContext context);
+	int             (*GL_SetSwapInterval) (_THIS, int interval);
+	int             (*GL_GetSwapInterval) (_THIS);
+	void            (*GL_SwapWindow) (_THIS, SDL_Window * window);
+	void            (*GL_DeleteContext) (_THIS, SDL_GLContext context);
 
-    /* * * */
-    /* Event manager functions
-     */
-    void (*PumpEvents) (_THIS);
+	/* * * */
+	/*
+	 * Event manager functions
+	 */
+	void            (*PumpEvents) (_THIS);
 
-    /* * * */
-    /* Data common to all drivers */
-    int num_displays;
-    SDL_VideoDisplay *displays;
-    int current_display;
-    Uint32 next_object_id;
+	/* * * */
+	/* Data common to all drivers */
+	int             num_displays;
+	SDL_VideoDisplay *displays;
+	int             current_display;
+	Uint32          next_object_id;
 
-    /* * * */
-    /* Data used by the GL drivers */
-    struct
-    {
-        int red_size;
-        int green_size;
-        int blue_size;
-        int alpha_size;
-        int depth_size;
-        int buffer_size;
-        int stencil_size;
-        int double_buffer;
-        int accum_red_size;
-        int accum_green_size;
-        int accum_blue_size;
-        int accum_alpha_size;
-        int stereo;
-        int multisamplebuffers;
-        int multisamplesamples;
-        int accelerated;
-        int driver_loaded;
-        char driver_path[256];
-        void *dll_handle;
-    } gl_config;
+	/* * * */
+	/* Data used by the GL drivers */
+	struct {
+		int             red_size;
+		int             green_size;
+		int             blue_size;
+		int             alpha_size;
+		int             depth_size;
+		int             buffer_size;
+		int             stencil_size;
+		int             double_buffer;
+		int             accum_red_size;
+		int             accum_green_size;
+		int             accum_blue_size;
+		int             accum_alpha_size;
+		int             stereo;
+		int             multisamplebuffers;
+		int             multisamplesamples;
+		int             accelerated;
+		int             retained_backing;
+		int             driver_loaded;
+		char            driver_path[256];
+		void           *dll_handle;
+	}               gl_config;
 
-    /* * * */
-    /* Data private to this driver */
-    void *driverdata;
-    struct SDL_GLDriverData *gl_data;
+	/* * * */
+	/* Data private to this driver */
+	void           *driverdata;
+	struct SDL_GLDriverData *gl_data;
 
-    /* * * */
-    /* The function used to dispose of this structure */
-    void (*free) (_THIS);
+	/* * * */
+	/* The function used to dispose of this structure */
+	void            (*free) (_THIS);
 };
 
-typedef struct VideoBootStrap
-{
-    const char *name;
-    const char *desc;
-    int (*available) (void);
-    SDL_VideoDevice *(*create) (int devindex);
-} VideoBootStrap;
+typedef struct VideoBootStrap {
+	const char     *name;
+	const char     *desc;
+	int             (*available) (void);
+	SDL_VideoDevice *(*create) (int devindex);
+}               VideoBootStrap;
 
 #if SDL_VIDEO_DRIVER_COCOA
 extern VideoBootStrap COCOA_bootstrap;
@@ -366,6 +368,9 @@
 #if SDL_VIDEO_DRIVER_OS2FS
 extern VideoBootStrap OS2FSLib_bootstrap;
 #endif
+#if SDL_VIDEO_DRIVER_UIKIT
+extern VideoBootStrap UIKIT_bootstrap;
+#endif
 #if SDL_VIDEO_DRIVER_DUMMY
 extern VideoBootStrap DUMMY_bootstrap;
 #endif
@@ -376,24 +381,26 @@
 #define SDL_CurrentDisplay	(_this->displays[_this->current_display])
 
 extern SDL_VideoDevice *SDL_GetVideoDevice();
-extern int SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode);
-extern int SDL_AddVideoDisplay(const SDL_VideoDisplay * display);
-extern SDL_bool SDL_AddDisplayMode(int displayIndex,
-                                   const SDL_DisplayMode * mode);
-extern void SDL_AddRenderDriver(int displayIndex,
-                                const SDL_RenderDriver * driver);
+extern int      SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode);
+extern int      SDL_AddVideoDisplay(const SDL_VideoDisplay * display);
+extern SDL_bool 
+SDL_AddDisplayMode(int displayIndex,
+		   const SDL_DisplayMode * mode);
+extern void 
+SDL_AddRenderDriver(int displayIndex,
+		    const SDL_RenderDriver * driver);
 
-extern int SDL_RecreateWindow(SDL_Window * window, Uint32 flags);
+extern int      SDL_RecreateWindow(SDL_Window * window, Uint32 flags);
 extern SDL_Window *SDL_GetWindowFromID(SDL_WindowID windowID);
 extern SDL_VideoDisplay *SDL_GetDisplayFromWindow(SDL_Window * window);
 
-extern void SDL_OnWindowShown(SDL_Window * window);
-extern void SDL_OnWindowHidden(SDL_Window * window);
-extern void SDL_OnWindowResized(SDL_Window * window);
-extern void SDL_OnWindowFocusGained(SDL_Window * window);
-extern void SDL_OnWindowFocusLost(SDL_Window * window);
+extern void     SDL_OnWindowShown(SDL_Window * window);
+extern void     SDL_OnWindowHidden(SDL_Window * window);
+extern void     SDL_OnWindowResized(SDL_Window * window);
+extern void     SDL_OnWindowFocusGained(SDL_Window * window);
+extern void     SDL_OnWindowFocusLost(SDL_Window * window);
 extern SDL_WindowID SDL_GetFocusWindow(void);
 
-#endif /* _SDL_sysvideo_h */
+#endif				/* _SDL_sysvideo_h */
 
 /* vi: set ts=4 sw=4 expandtab: */