Mercurial > sdl-ios-xcode
comparison src/video/SDL_sysvideo.h @ 5150:ad50b3db78bd
The rendering functions take a context so it's clear what window they're drawing to. This also potentially opens to the door to multi-threaded rendering in the future.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 01 Feb 2011 19:19:43 -0800 |
parents | 2f44e6969a59 |
children | 5429daf5e3f9 |
comparison
equal
deleted
inserted
replaced
5149:3052772b59db | 5150:ad50b3db78bd |
---|---|
22 #include "SDL_config.h" | 22 #include "SDL_config.h" |
23 | 23 |
24 #ifndef _SDL_sysvideo_h | 24 #ifndef _SDL_sysvideo_h |
25 #define _SDL_sysvideo_h | 25 #define _SDL_sysvideo_h |
26 | 26 |
27 #include "SDL_events.h" | |
27 #include "SDL_mouse.h" | 28 #include "SDL_mouse.h" |
28 #include "SDL_keysym.h" | 29 #include "SDL_keysym.h" |
29 #include "SDL_render.h" | 30 #include "SDL_render.h" |
30 #include "SDL_shape.h" | 31 #include "SDL_shape.h" |
31 | 32 |
32 /* The SDL video driver */ | 33 /* The SDL video driver */ |
33 | 34 |
34 typedef struct SDL_Renderer SDL_Renderer; | |
35 typedef struct SDL_RenderDriver SDL_RenderDriver; | 35 typedef struct SDL_RenderDriver SDL_RenderDriver; |
36 typedef struct SDL_WindowShaper SDL_WindowShaper; | 36 typedef struct SDL_WindowShaper SDL_WindowShaper; |
37 typedef struct SDL_ShapeDriver SDL_ShapeDriver; | 37 typedef struct SDL_ShapeDriver SDL_ShapeDriver; |
38 typedef struct SDL_VideoDisplay SDL_VideoDisplay; | 38 typedef struct SDL_VideoDisplay SDL_VideoDisplay; |
39 typedef struct SDL_VideoDevice SDL_VideoDevice; | 39 typedef struct SDL_VideoDevice SDL_VideoDevice; |
59 }; | 59 }; |
60 | 60 |
61 /* Define the SDL renderer structure */ | 61 /* Define the SDL renderer structure */ |
62 struct SDL_Renderer | 62 struct SDL_Renderer |
63 { | 63 { |
64 int (*ActivateRenderer) (SDL_Renderer * renderer); | 64 const void *magic; |
65 int (*DisplayModeChanged) (SDL_Renderer * renderer); | 65 |
66 void (*WindowEvent) (SDL_Renderer * renderer, const SDL_WindowEvent *event); | |
66 int (*CreateTexture) (SDL_Renderer * renderer, SDL_Texture * texture); | 67 int (*CreateTexture) (SDL_Renderer * renderer, SDL_Texture * texture); |
67 int (*QueryTexturePixels) (SDL_Renderer * renderer, SDL_Texture * texture, | 68 int (*QueryTexturePixels) (SDL_Renderer * renderer, SDL_Texture * texture, |
68 void **pixels, int *pitch); | 69 void **pixels, int *pitch); |
69 int (*SetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture, | 70 int (*SetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture, |
70 const SDL_Color * colors, int firstcolor, | 71 const SDL_Color * colors, int firstcolor, |
166 int x, y; | 167 int x, y; |
167 int w, h; | 168 int w, h; |
168 Uint32 flags; | 169 Uint32 flags; |
169 | 170 |
170 SDL_VideoDisplay *display; | 171 SDL_VideoDisplay *display; |
171 SDL_Renderer *renderer; | |
172 | 172 |
173 SDL_DisplayMode fullscreen_mode; | 173 SDL_DisplayMode fullscreen_mode; |
174 | 174 |
175 SDL_WindowShaper *shaper; | 175 SDL_WindowShaper *shaper; |
176 | 176 |
205 int num_render_drivers; | 205 int num_render_drivers; |
206 SDL_RenderDriver *render_drivers; | 206 SDL_RenderDriver *render_drivers; |
207 | 207 |
208 SDL_Window *windows; | 208 SDL_Window *windows; |
209 SDL_Window *fullscreen_window; | 209 SDL_Window *fullscreen_window; |
210 | |
211 SDL_Renderer *current_renderer; | |
212 | 210 |
213 SDL_VideoDevice *device; | 211 SDL_VideoDevice *device; |
214 | 212 |
215 void *driverdata; | 213 void *driverdata; |
216 }; | 214 }; |
342 SDL_bool suspend_screensaver; | 340 SDL_bool suspend_screensaver; |
343 int num_displays; | 341 int num_displays; |
344 SDL_VideoDisplay *displays; | 342 SDL_VideoDisplay *displays; |
345 int current_display; | 343 int current_display; |
346 Uint8 window_magic; | 344 Uint8 window_magic; |
345 Uint8 renderer_magic; | |
347 Uint8 texture_magic; | 346 Uint8 texture_magic; |
348 Uint32 next_object_id; | 347 Uint32 next_object_id; |
349 char * clipboard_text; | 348 char * clipboard_text; |
350 | 349 |
351 /* * * */ | 350 /* * * */ |
437 #if SDL_VIDEO_DRIVER_ANDROID | 436 #if SDL_VIDEO_DRIVER_ANDROID |
438 extern VideoBootStrap Android_bootstrap; | 437 extern VideoBootStrap Android_bootstrap; |
439 #endif | 438 #endif |
440 | 439 |
441 #define SDL_CurrentDisplay (&_this->displays[_this->current_display]) | 440 #define SDL_CurrentDisplay (&_this->displays[_this->current_display]) |
442 #define SDL_CurrentRenderer (SDL_CurrentDisplay->current_renderer) | |
443 | 441 |
444 extern SDL_VideoDevice *SDL_GetVideoDevice(void); | 442 extern SDL_VideoDevice *SDL_GetVideoDevice(void); |
445 extern int SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode); | 443 extern int SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode); |
446 extern int SDL_AddVideoDisplay(const SDL_VideoDisplay * display); | 444 extern int SDL_AddVideoDisplay(const SDL_VideoDisplay * display); |
447 extern SDL_bool SDL_AddDisplayMode(SDL_VideoDisplay *display, const SDL_DisplayMode * mode); | 445 extern SDL_bool SDL_AddDisplayMode(SDL_VideoDisplay *display, const SDL_DisplayMode * mode); |
459 | 457 |
460 extern int SDL_RecreateWindow(SDL_Window * window, Uint32 flags); | 458 extern int SDL_RecreateWindow(SDL_Window * window, Uint32 flags); |
461 | 459 |
462 extern void SDL_OnWindowShown(SDL_Window * window); | 460 extern void SDL_OnWindowShown(SDL_Window * window); |
463 extern void SDL_OnWindowHidden(SDL_Window * window); | 461 extern void SDL_OnWindowHidden(SDL_Window * window); |
464 extern void SDL_OnWindowResized(SDL_Window * window); | |
465 extern void SDL_OnWindowMinimized(SDL_Window * window); | 462 extern void SDL_OnWindowMinimized(SDL_Window * window); |
466 extern void SDL_OnWindowRestored(SDL_Window * window); | 463 extern void SDL_OnWindowRestored(SDL_Window * window); |
467 extern void SDL_OnWindowFocusGained(SDL_Window * window); | 464 extern void SDL_OnWindowFocusGained(SDL_Window * window); |
468 extern void SDL_OnWindowFocusLost(SDL_Window * window); | 465 extern void SDL_OnWindowFocusLost(SDL_Window * window); |
469 extern SDL_Window * SDL_GetFocusWindow(void); | 466 extern SDL_Window * SDL_GetFocusWindow(void); |