annotate src/video/pandora/SDL_pandora.h @ 3473:7bdc10624cba

This is terrible, but the OpenGL standard says that lines are half open, which means that one endpoint is not covered so adjoining lines don't overlap. It also doesn't define which end is open, and indeed Mac OS X and Linux differ. Mac OS X seems to leave the second endpoint open, but Linux uses the right-most endpoint for x major lines and the bottom-most endpoint for y major lines.
author Sam Lantinga <slouken@libsdl.org>
date Sat, 21 Nov 2009 07:14:21 +0000
parents 494559cc723b
children f7b03b6838cb
rev   line source
3161
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
1 /*
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
2 SDL - Simple DirectMedia Layer
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
3 Copyright (C) 1997-2009 Sam Lantinga
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
4
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
5 This library is free software; you can redistribute it and/or
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
6 modify it under the terms of the GNU Lesser General Public
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
7 License as published by the Free Software Foundation; either
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
8 version 2.1 of the License, or (at your option) any later version.
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
9
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
10 This library is distributed in the hope that it will be useful,
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
13 Lesser General Public License for more details.
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
14
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
15 You should have received a copy of the GNU Lesser General Public
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
16 License along with this library; if not, write to the Free Software
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
18
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
19 Sam Lantinga
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
20 slouken@libsdl.org
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
21
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
22 Open Pandora SDL driver
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
23 Copyright (C) 2009 David Carré
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
24 (cpasjuste@gmail.com)
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
25 */
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
26
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
27 #ifndef __SDL_PANDORA_H__
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
28 #define __SDL_PANDORA_H__
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
29
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
30 #include <GLES/egl.h>
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
31
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
32 #include "SDL_config.h"
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
33 #include "../SDL_sysvideo.h"
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
34
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
35 typedef struct SDL_VideoData
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
36 {
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
37 SDL_bool egl_initialized; /* OpenGL ES device initialization status */
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
38 EGLDisplay egl_display; /* OpenGL ES display connection */
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
39 uint32_t egl_refcount; /* OpenGL ES reference count */
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
40 uint32_t swapinterval; /* OpenGL ES default swap interval */
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
41
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
42 } SDL_VideoData;
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
43
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
44
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
45 typedef struct SDL_DisplayData
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
46 {
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
47
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
48 } SDL_DisplayData;
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
49
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
50
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
51 typedef struct SDL_WindowData
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
52 {
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
53 SDL_bool uses_gles; /* if true window must support OpenGL ES */
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
54
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
55 EGLConfig gles_configs[32];
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
56 EGLint gles_config; /* OpenGL ES configuration index */
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
57 EGLContext gles_context; /* OpenGL ES context */
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
58 EGLint gles_attributes[256]; /* OpenGL ES attributes for context */
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
59 EGLSurface gles_surface; /* OpenGL ES target rendering surface */
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
60
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
61 } SDL_WindowData;
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
62
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
63
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
64 /****************************************************************************/
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
65 /* SDL_VideoDevice functions declaration */
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
66 /****************************************************************************/
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
67
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
68 /* Display and window functions */
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
69 int PND_videoinit(_THIS);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
70 void PND_videoquit(_THIS);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
71 void PND_getdisplaymodes(_THIS);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
72 int PND_setdisplaymode(_THIS, SDL_DisplayMode * mode);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
73 int PND_setdisplaypalette(_THIS, SDL_Palette * palette);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
74 int PND_getdisplaypalette(_THIS, SDL_Palette * palette);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
75 int PND_setdisplaygammaramp(_THIS, Uint16 * ramp);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
76 int PND_getdisplaygammaramp(_THIS, Uint16 * ramp);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
77 int PND_createwindow(_THIS, SDL_Window * window);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
78 int PND_createwindowfrom(_THIS, SDL_Window * window, const void *data);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
79 void PND_setwindowtitle(_THIS, SDL_Window * window);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
80 void PND_setwindowicon(_THIS, SDL_Window * window, SDL_Surface * icon);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
81 void PND_setwindowposition(_THIS, SDL_Window * window);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
82 void PND_setwindowsize(_THIS, SDL_Window * window);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
83 void PND_showwindow(_THIS, SDL_Window * window);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
84 void PND_hidewindow(_THIS, SDL_Window * window);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
85 void PND_raisewindow(_THIS, SDL_Window * window);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
86 void PND_maximizewindow(_THIS, SDL_Window * window);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
87 void PND_minimizewindow(_THIS, SDL_Window * window);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
88 void PND_restorewindow(_THIS, SDL_Window * window);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
89 void PND_setwindowgrab(_THIS, SDL_Window * window);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
90 void PND_destroywindow(_THIS, SDL_Window * window);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
91
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
92 /* Window manager function */
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
93 SDL_bool PND_getwindowwminfo(_THIS, SDL_Window * window,
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
94 struct SDL_SysWMinfo *info);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
95
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
96 /* OpenGL/OpenGL ES functions */
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
97 int PND_gl_loadlibrary(_THIS, const char *path);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
98 void *PND_gl_getprocaddres(_THIS, const char *proc);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
99 void PND_gl_unloadlibrary(_THIS);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
100 SDL_GLContext PND_gl_createcontext(_THIS, SDL_Window * window);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
101 int PND_gl_makecurrent(_THIS, SDL_Window * window, SDL_GLContext context);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
102 int PND_gl_setswapinterval(_THIS, int interval);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
103 int PND_gl_getswapinterval(_THIS);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
104 void PND_gl_swapwindow(_THIS, SDL_Window * window);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
105 void PND_gl_deletecontext(_THIS, SDL_GLContext context);
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
106
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
107
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
108 #endif /* __SDL_PANDORA_H__ */
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
109
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
110 /* vi: set ts=4 sw=4 expandtab: */