Commit ef7cdd91 authored by Holmes Futrell's avatar Holmes Futrell

Added retained backing attribute, reference to UIKit renderer

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403195
parent a4d2b489
...@@ -37,274 +37,276 @@ typedef struct SDL_VideoDisplay SDL_VideoDisplay; ...@@ -37,274 +37,276 @@ typedef struct SDL_VideoDisplay SDL_VideoDisplay;
typedef struct SDL_VideoDevice SDL_VideoDevice; typedef struct SDL_VideoDevice SDL_VideoDevice;
/* Define the SDL texture structure */ /* Define the SDL texture structure */
struct SDL_Texture struct SDL_Texture {
{ Uint32 id;
Uint32 id;
Uint32 format; /**< The pixel format of the texture */ Uint32 format; /**< The pixel format of the texture */
int access; /**< SDL_TextureAccess */ int access; /**< SDL_TextureAccess */
int w; /**< The width of the texture */ int w; /**< The width of the texture */
int h; /**< The height of the texture */ int h; /**< The height of the texture */
int modMode; /**< The texture modulation mode */ int modMode;/**< The texture modulation mode */
int blendMode; /**< The texture blend mode */ int blendMode; /**< The texture blend mode */
int scaleMode; /**< The texture scale mode */ int scaleMode; /**< The texture scale mode */
Uint8 r, g, b, a; /**< Texture modulation values */ 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 */ /* Define the SDL renderer structure */
struct SDL_Renderer struct SDL_Renderer {
{ int (*ActivateRenderer) (SDL_Renderer * renderer);
int (*ActivateRenderer) (SDL_Renderer * renderer); int (*DisplayModeChanged) (SDL_Renderer * renderer);
int (*DisplayModeChanged) (SDL_Renderer * renderer); int (*CreateTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
int (*CreateTexture) (SDL_Renderer * renderer, SDL_Texture * texture); int (*QueryTexturePixels) (SDL_Renderer * renderer, SDL_Texture * texture,
int (*QueryTexturePixels) (SDL_Renderer * renderer, SDL_Texture * texture, void **pixels, int *pitch);
void **pixels, int *pitch); int (*SetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture,
int (*SetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Color * colors, int firstcolor,
const SDL_Color * colors, int firstcolor, int ncolors);
int ncolors); int (*GetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture,
int (*GetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture, SDL_Color * colors, int firstcolor,
SDL_Color * colors, int firstcolor, int ncolors);
int ncolors); int (*SetTextureColorMod) (SDL_Renderer * renderer,
int (*SetTextureColorMod) (SDL_Renderer * renderer, SDL_Texture * texture);
SDL_Texture * texture); int (*SetTextureAlphaMod) (SDL_Renderer * renderer,
int (*SetTextureAlphaMod) (SDL_Renderer * renderer, SDL_Texture * texture);
SDL_Texture * texture); int (*SetTextureBlendMode) (SDL_Renderer * renderer,
int (*SetTextureBlendMode) (SDL_Renderer * renderer, SDL_Texture * texture);
SDL_Texture * texture); int (*SetTextureScaleMode) (SDL_Renderer * renderer,
int (*SetTextureScaleMode) (SDL_Renderer * renderer, SDL_Texture * texture);
SDL_Texture * texture); int (*UpdateTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
int (*UpdateTexture) (SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * rect, const void *pixels,
const SDL_Rect * rect, const void *pixels, int pitch);
int pitch); int (*LockTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
int (*LockTexture) (SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * rect, int markDirty, void **pixels,
const SDL_Rect * rect, int markDirty, void **pixels, int *pitch);
int *pitch); void (*UnlockTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
void (*UnlockTexture) (SDL_Renderer * renderer, SDL_Texture * texture); void (*DirtyTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
void (*DirtyTexture) (SDL_Renderer * renderer, SDL_Texture * texture, int numrects, const SDL_Rect * rects);
int numrects, const SDL_Rect * rects); int (*RenderFill) (SDL_Renderer * renderer, Uint8 r, Uint8 g, Uint8 b,
int (*RenderFill) (SDL_Renderer * renderer, Uint8 r, Uint8 g, Uint8 b, Uint8 a, const SDL_Rect * rect);
Uint8 a, const SDL_Rect * rect); int (*RenderCopy) (SDL_Renderer * renderer, SDL_Texture * texture,
int (*RenderCopy) (SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * srcrect, const SDL_Rect * dstrect);
const SDL_Rect * srcrect, const SDL_Rect * dstrect); void (*RenderPresent) (SDL_Renderer * renderer);
void (*RenderPresent) (SDL_Renderer * renderer); void (*DestroyTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
void (*DestroyTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
void (*DestroyRenderer) (SDL_Renderer * renderer);
void (*DestroyRenderer) (SDL_Renderer * renderer);
/* The current renderer info */
/* The current renderer info */ SDL_RendererInfo info;
SDL_RendererInfo info;
/* The window associated with the renderer */
/* The window associated with the renderer */ SDL_WindowID window;
SDL_WindowID window;
void *driverdata;
void *driverdata;
}; };
/* Define the SDL render driver structure */ /* Define the SDL render driver structure */
struct SDL_RenderDriver struct SDL_RenderDriver {
{ SDL_Renderer *(*CreateRenderer) (SDL_Window * window, Uint32 flags);
SDL_Renderer *(*CreateRenderer) (SDL_Window * window, Uint32 flags);
/* Info about the renderer capabilities */ /* Info about the renderer capabilities */
SDL_RendererInfo info; SDL_RendererInfo info;
}; };
/* Define the SDL window structure, corresponding to toplevel windows */ /* Define the SDL window structure, corresponding to toplevel windows */
struct SDL_Window struct SDL_Window {
{ Uint32 id;
Uint32 id;
char *title; char *title;
int x, y; int x, y;
int w, h; int w, h;
Uint32 flags; Uint32 flags;
int display; int display;
SDL_Renderer *renderer; SDL_Renderer *renderer;
void *userdata; void *userdata;
void *driverdata; void *driverdata;
}; };
#define FULLSCREEN_VISIBLE(W) \ #define FULLSCREEN_VISIBLE(W) \
(((W)->flags & SDL_WINDOW_FULLSCREEN) && \ (((W)->flags & SDL_WINDOW_FULLSCREEN) && \
((W)->flags & SDL_WINDOW_SHOWN) && \ ((W)->flags & SDL_WINDOW_SHOWN) && \
!((W)->flags & SDL_WINDOW_MINIMIZED)) !((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 struct SDL_VideoDisplay {
{ int max_display_modes;
int max_display_modes; int num_display_modes;
int num_display_modes; SDL_DisplayMode *display_modes;
SDL_DisplayMode *display_modes; SDL_DisplayMode desktop_mode;
SDL_DisplayMode desktop_mode; SDL_DisplayMode current_mode;
SDL_DisplayMode current_mode; SDL_DisplayMode fullscreen_mode;
SDL_DisplayMode fullscreen_mode; SDL_Palette *palette;
SDL_Palette *palette;
Uint16 *gamma; Uint16 *gamma;
Uint16 *saved_gamma; /* (just offset into gamma) */ Uint16 *saved_gamma; /* (just offset into gamma) */
int num_render_drivers; int num_render_drivers;
SDL_RenderDriver *render_drivers; SDL_RenderDriver *render_drivers;
int num_windows; int num_windows;
SDL_Window *windows; SDL_Window *windows;
SDL_Renderer *current_renderer; SDL_Renderer *current_renderer;
/* The hash list of textures */ /* The hash list of textures */
SDL_Texture *textures[64]; SDL_Texture *textures[64];
SDL_VideoDevice *device; SDL_VideoDevice *device;
void *driverdata; void *driverdata;
}; };
/* Define the SDL video driver structure */ /* Define the SDL video driver structure */
#define _THIS SDL_VideoDevice *_this #define _THIS SDL_VideoDevice *_this
struct SDL_VideoDevice struct SDL_VideoDevice {
{ /* * * */
/* * * */ /* The name of this video driver */
/* The name of this video driver */ const char *name;
const char *name;
/* * * */
/* * * */ /* Initialization/Query functions */
/* Initialization/Query functions */
/*
/* Initialize the native video subsystem, filling in the list * Initialize the native video subsystem, filling in the list of
of displays for this driver, returning 0 or -1 if there's an error. * displays for this driver, returning 0 or -1 if there's an error.
*/ */
int (*VideoInit) (_THIS); int (*VideoInit) (_THIS);
/* Reverse the effects VideoInit() -- called if VideoInit() fails /*
or if the application is shutting down the video subsystem. * Reverse the effects VideoInit() -- called if VideoInit() fails or
*/ * if the application is shutting down the video subsystem.
void (*VideoQuit) (_THIS); */
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); * Get a list of the available display modes. e.g.
* SDL_AddDisplayMode(_this->current_display, mode)
/* Setting the display mode is independent of creating windows, */
* so when the display mode is changed, all existing windows void (*GetDisplayModes) (_THIS);
* should have their data updated accordingly, including the
* display surfaces associated with them. /*
*/ * Setting the display mode is independent of creating windows, so
int (*SetDisplayMode) (_THIS, SDL_DisplayMode * mode); * when the display mode is changed, all existing windows should have
* their data updated accordingly, including the display surfaces
/* Set the color entries of the display palette */ * associated with them.
int (*SetDisplayPalette) (_THIS, SDL_Palette * palette); */
int (*SetDisplayMode) (_THIS, SDL_DisplayMode * mode);
/* Get the color entries of the display palette */
int (*GetDisplayPalette) (_THIS, SDL_Palette * palette); /* Set the color entries of the display palette */
int (*SetDisplayPalette) (_THIS, SDL_Palette * palette);
/* Set the gamma ramp */
int (*SetDisplayGammaRamp) (_THIS, Uint16 * ramp); /* 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);
/* * * */
/* Window functions /* Get the gamma ramp */
*/ int (*GetDisplayGammaRamp) (_THIS, Uint16 * ramp);
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); * Window functions
void (*SetWindowSize) (_THIS, SDL_Window * window); */
void (*ShowWindow) (_THIS, SDL_Window * window); int (*CreateWindow) (_THIS, SDL_Window * window);
void (*HideWindow) (_THIS, SDL_Window * window); int (*CreateWindowFrom) (_THIS, SDL_Window * window, const void *data);
void (*RaiseWindow) (_THIS, SDL_Window * window); void (*SetWindowTitle) (_THIS, SDL_Window * window);
void (*MaximizeWindow) (_THIS, SDL_Window * window); void (*SetWindowPosition) (_THIS, SDL_Window * window);
void (*MinimizeWindow) (_THIS, SDL_Window * window); void (*SetWindowSize) (_THIS, SDL_Window * window);
void (*RestoreWindow) (_THIS, SDL_Window * window); void (*ShowWindow) (_THIS, SDL_Window * window);
void (*SetWindowGrab) (_THIS, SDL_Window * window); void (*HideWindow) (_THIS, SDL_Window * window);
void (*DestroyWindow) (_THIS, SDL_Window * window); void (*RaiseWindow) (_THIS, SDL_Window * window);
void (*MaximizeWindow) (_THIS, SDL_Window * window);
/* Get some platform dependent window information */ void (*MinimizeWindow) (_THIS, SDL_Window * window);
SDL_bool(*GetWindowWMInfo) (_THIS, SDL_Window * window, void (*RestoreWindow) (_THIS, SDL_Window * window);
struct SDL_SysWMinfo * info); void (*SetWindowGrab) (_THIS, SDL_Window * window);
void (*DestroyWindow) (_THIS, SDL_Window * window);
/* * * */
/* OpenGL support /* Get some platform dependent window information */
*/ SDL_bool(*GetWindowWMInfo) (_THIS, SDL_Window * window,
int (*GL_LoadLibrary) (_THIS, const char *path); struct SDL_SysWMinfo * info);
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); * OpenGL support
int (*GL_GetSwapInterval) (_THIS); */
void (*GL_SwapWindow) (_THIS, SDL_Window * window); int (*GL_LoadLibrary) (_THIS, const char *path);
void (*GL_DeleteContext) (_THIS, SDL_GLContext context); 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);
/* Event manager functions int (*GL_SetSwapInterval) (_THIS, int interval);
*/ int (*GL_GetSwapInterval) (_THIS);
void (*PumpEvents) (_THIS); void (*GL_SwapWindow) (_THIS, SDL_Window * window);
void (*GL_DeleteContext) (_THIS, SDL_GLContext context);
/* * * */
/* Data common to all drivers */ /* * * */
int num_displays; /*
SDL_VideoDisplay *displays; * Event manager functions
int current_display; */
Uint32 next_object_id; void (*PumpEvents) (_THIS);
/* * * */ /* * * */
/* Data used by the GL drivers */ /* Data common to all drivers */
struct int num_displays;
{ SDL_VideoDisplay *displays;
int red_size; int current_display;
int green_size; Uint32 next_object_id;
int blue_size;
int alpha_size; /* * * */
int depth_size; /* Data used by the GL drivers */
int buffer_size; struct {
int stencil_size; int red_size;
int double_buffer; int green_size;
int accum_red_size; int blue_size;
int accum_green_size; int alpha_size;
int accum_blue_size; int depth_size;
int accum_alpha_size; int buffer_size;
int stereo; int stencil_size;
int multisamplebuffers; int double_buffer;
int multisamplesamples; int accum_red_size;
int accelerated; int accum_green_size;
int driver_loaded; int accum_blue_size;
char driver_path[256]; int accum_alpha_size;
void *dll_handle; int stereo;
} gl_config; int multisamplebuffers;
int multisamplesamples;
/* * * */ int accelerated;
/* Data private to this driver */ int retained_backing;
void *driverdata; int driver_loaded;
struct SDL_GLDriverData *gl_data; char driver_path[256];
void *dll_handle;
/* * * */ } gl_config;
/* The function used to dispose of this structure */
void (*free) (_THIS); /* * * */
/* Data private to this driver */
void *driverdata;
struct SDL_GLDriverData *gl_data;
/* * * */
/* The function used to dispose of this structure */
void (*free) (_THIS);
}; };
typedef struct VideoBootStrap typedef struct VideoBootStrap {
{ const char *name;
const char *name; const char *desc;
const char *desc; int (*available) (void);
int (*available) (void); SDL_VideoDevice *(*create) (int devindex);
SDL_VideoDevice *(*create) (int devindex); } VideoBootStrap;
} VideoBootStrap;
#if SDL_VIDEO_DRIVER_COCOA #if SDL_VIDEO_DRIVER_COCOA
extern VideoBootStrap COCOA_bootstrap; extern VideoBootStrap COCOA_bootstrap;
...@@ -366,6 +368,9 @@ extern VideoBootStrap RISCOS_bootstrap; ...@@ -366,6 +368,9 @@ extern VideoBootStrap RISCOS_bootstrap;
#if SDL_VIDEO_DRIVER_OS2FS #if SDL_VIDEO_DRIVER_OS2FS
extern VideoBootStrap OS2FSLib_bootstrap; extern VideoBootStrap OS2FSLib_bootstrap;
#endif #endif
#if SDL_VIDEO_DRIVER_UIKIT
extern VideoBootStrap UIKIT_bootstrap;
#endif
#if SDL_VIDEO_DRIVER_DUMMY #if SDL_VIDEO_DRIVER_DUMMY
extern VideoBootStrap DUMMY_bootstrap; extern VideoBootStrap DUMMY_bootstrap;
#endif #endif
...@@ -376,24 +381,26 @@ extern VideoBootStrap NDS_bootstrap; ...@@ -376,24 +381,26 @@ extern VideoBootStrap NDS_bootstrap;
#define SDL_CurrentDisplay (_this->displays[_this->current_display]) #define SDL_CurrentDisplay (_this->displays[_this->current_display])
extern SDL_VideoDevice *SDL_GetVideoDevice(); extern SDL_VideoDevice *SDL_GetVideoDevice();
extern int SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode); extern int SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode);
extern int SDL_AddVideoDisplay(const SDL_VideoDisplay * display); extern int SDL_AddVideoDisplay(const SDL_VideoDisplay * display);
extern SDL_bool SDL_AddDisplayMode(int displayIndex, extern SDL_bool
const SDL_DisplayMode * mode); SDL_AddDisplayMode(int displayIndex,
extern void SDL_AddRenderDriver(int displayIndex, const SDL_DisplayMode * mode);
const SDL_RenderDriver * driver); extern void
SDL_AddRenderDriver(int displayIndex,
extern int SDL_RecreateWindow(SDL_Window * window, Uint32 flags); const SDL_RenderDriver * driver);
extern int SDL_RecreateWindow(SDL_Window * window, Uint32 flags);
extern SDL_Window *SDL_GetWindowFromID(SDL_WindowID windowID); extern SDL_Window *SDL_GetWindowFromID(SDL_WindowID windowID);
extern SDL_VideoDisplay *SDL_GetDisplayFromWindow(SDL_Window * window); extern SDL_VideoDisplay *SDL_GetDisplayFromWindow(SDL_Window * window);
extern void SDL_OnWindowShown(SDL_Window * window); extern void SDL_OnWindowShown(SDL_Window * window);
extern void SDL_OnWindowHidden(SDL_Window * window); extern void SDL_OnWindowHidden(SDL_Window * window);
extern void SDL_OnWindowResized(SDL_Window * window); extern void SDL_OnWindowResized(SDL_Window * window);
extern void SDL_OnWindowFocusGained(SDL_Window * window); extern void SDL_OnWindowFocusGained(SDL_Window * window);
extern void SDL_OnWindowFocusLost(SDL_Window * window); extern void SDL_OnWindowFocusLost(SDL_Window * window);
extern SDL_WindowID SDL_GetFocusWindow(void); extern SDL_WindowID SDL_GetFocusWindow(void);
#endif /* _SDL_sysvideo_h */ #endif /* _SDL_sysvideo_h */
/* vi: set ts=4 sw=4 expandtab: */ /* vi: set ts=4 sw=4 expandtab: */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment