• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2     SDL - Simple DirectMedia Layer
3     Copyright (C) 1997-2012 Sam Lantinga
4 
5     This library is free software; you can redistribute it and/or
6     modify it under the terms of the GNU Lesser General Public
7     License as published by the Free Software Foundation; either
8     version 2.1 of the License, or (at your option) any later version.
9 
10     This library is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13     Lesser General Public License for more details.
14 
15     You should have received a copy of the GNU Lesser General Public
16     License along with this library; if not, write to the Free Software
17     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18 
19     Sam Lantinga
20     slouken@libsdl.org
21 */
22 #include "SDL_config.h"
23 
24 #ifndef _SDL_lowvideo_h
25 #define _SDL_lowvideo_h
26 
27 #if defined(__APPLE__) && defined(__MACH__)
28 #include <Carbon/Carbon.h>
29 #elif TARGET_API_MAC_CARBON && (UNIVERSAL_INTERFACES_VERSION > 0x0335)
30 #include <Carbon.h>
31 #else
32 #include <Quickdraw.h>
33 #include <Palettes.h>
34 #include <Menus.h>
35 #include <DrawSprocket.h>
36 #endif
37 
38 #if SDL_VIDEO_OPENGL
39 typedef struct __AGLContextRec *AGLContext;
40 #endif
41 
42 #include "SDL_video.h"
43 #include "../SDL_sysvideo.h"
44 
45 /* Hidden "this" pointer for the video functions */
46 #define _THIS	SDL_VideoDevice *this
47 
48 #if !TARGET_API_MAC_CARBON  /* not available in OS X (or more accurately, Carbon) */
49 /* Global QuickDraw data */
50 extern QDGlobals *theQD;
51 #endif
52 
53 /* Private display data */
54 struct SDL_PrivateVideoData {
55 	GDevice **SDL_Display;
56 	WindowRef SDL_Window;
57 	SDL_Rect **SDL_modelist;
58 	CTabHandle SDL_CTab;
59 	PaletteHandle SDL_CPal;
60 
61 #if TARGET_API_MAC_CARBON
62 	/* For entering and leaving fullscreen mode */
63 	Ptr fullscreen_ctx;
64 #endif
65 
66 	/* The current window document style */
67 	int current_style;
68 
69 	/* Information about the last cursor position */
70 	Point last_where;
71 
72 	/* Information about the last keys down */
73 	EventModifiers last_mods;
74 	KeyMap last_keys;
75 
76 	/* A handle to the Apple Menu */
77 	MenuRef apple_menu;
78 
79 	/* Information used by DrawSprocket driver */
80 	struct DSpInfo *dspinfo;
81 
82 #if SDL_VIDEO_OPENGL
83 	AGLContext appleGLContext;
84 
85 	void *libraryHandle;
86 #endif
87 };
88 /* Old variable names */
89 #define SDL_Display		(this->hidden->SDL_Display)
90 #define SDL_Window		(this->hidden->SDL_Window)
91 #define SDL_modelist		(this->hidden->SDL_modelist)
92 #define SDL_CTab		(this->hidden->SDL_CTab)
93 #define SDL_CPal		(this->hidden->SDL_CPal)
94 #define fullscreen_ctx		(this->hidden->fullscreen_ctx)
95 #define current_style		(this->hidden->current_style)
96 #define last_where		(this->hidden->last_where)
97 #define last_mods		(this->hidden->last_mods)
98 #define last_keys		(this->hidden->last_keys)
99 #define apple_menu		(this->hidden->apple_menu)
100 #define glContext		(this->hidden->appleGLContext)
101 
102 #endif /* _SDL_lowvideo_h */
103