diff 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
line wrap: on
line diff
--- a/src/video/SDL_sysvideo.h	Tue Feb 01 19:15:42 2011 -0800
+++ b/src/video/SDL_sysvideo.h	Tue Feb 01 19:19:43 2011 -0800
@@ -24,6 +24,7 @@
 #ifndef _SDL_sysvideo_h
 #define _SDL_sysvideo_h
 
+#include "SDL_events.h"
 #include "SDL_mouse.h"
 #include "SDL_keysym.h"
 #include "SDL_render.h"
@@ -31,7 +32,6 @@
 
 /* The SDL video driver */
 
-typedef struct SDL_Renderer SDL_Renderer;
 typedef struct SDL_RenderDriver SDL_RenderDriver;
 typedef struct SDL_WindowShaper SDL_WindowShaper;
 typedef struct SDL_ShapeDriver SDL_ShapeDriver;
@@ -61,8 +61,9 @@
 /* Define the SDL renderer structure */
 struct SDL_Renderer
 {
-    int (*ActivateRenderer) (SDL_Renderer * renderer);
-    int (*DisplayModeChanged) (SDL_Renderer * renderer);
+    const void *magic;
+
+    void (*WindowEvent) (SDL_Renderer * renderer, const SDL_WindowEvent *event);
     int (*CreateTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
     int (*QueryTexturePixels) (SDL_Renderer * renderer, SDL_Texture * texture,
                                void **pixels, int *pitch);
@@ -168,7 +169,6 @@
     Uint32 flags;
 
     SDL_VideoDisplay *display;
-    SDL_Renderer *renderer;
 
     SDL_DisplayMode fullscreen_mode;
     
@@ -208,8 +208,6 @@
     SDL_Window *windows;
     SDL_Window *fullscreen_window;
 
-    SDL_Renderer *current_renderer;
-
     SDL_VideoDevice *device;
 
     void *driverdata;
@@ -344,6 +342,7 @@
     SDL_VideoDisplay *displays;
     int current_display;
     Uint8 window_magic;
+    Uint8 renderer_magic;
     Uint8 texture_magic;
     Uint32 next_object_id;
     char * clipboard_text;
@@ -439,7 +438,6 @@
 #endif
 
 #define SDL_CurrentDisplay	(&_this->displays[_this->current_display])
-#define SDL_CurrentRenderer	(SDL_CurrentDisplay->current_renderer)
 
 extern SDL_VideoDevice *SDL_GetVideoDevice(void);
 extern int SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode);
@@ -461,7 +459,6 @@
 
 extern void SDL_OnWindowShown(SDL_Window * window);
 extern void SDL_OnWindowHidden(SDL_Window * window);
-extern void SDL_OnWindowResized(SDL_Window * window);
 extern void SDL_OnWindowMinimized(SDL_Window * window);
 extern void SDL_OnWindowRestored(SDL_Window * window);
 extern void SDL_OnWindowFocusGained(SDL_Window * window);