Mercurial > sdl-ios-xcode
annotate src/video/pandora/SDL_pandora.c @ 3457:06e948183b59
Found a way to implement mask semantics in OpenGL
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Thu, 19 Nov 2009 05:33:41 +0000 |
parents | ca5663493497 |
children | 4b594623401b |
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 /* SDL internals */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
28 #include "SDL_config.h" |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
29 #include "../SDL_sysvideo.h" |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
30 #include "SDL_version.h" |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
31 #include "SDL_syswm.h" |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
32 #include "SDL_loadso.h" |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
33 #include "SDL_events.h" |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
34 #include "../../events/SDL_mouse_c.h" |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
35 #include "../../events/SDL_keyboard_c.h" |
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 /* PND declarations */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
38 #include "SDL_pandora.h" |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
39 #include "SDL_pandora_events.h" |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
40 |
3438 | 41 /* WIZ declarations */ |
42 #include "GLES/gl.h" | |
43 #ifdef WIZ_GLES_LITE | |
44 static NativeWindowType hNativeWnd = 0; // A handle to the window we will create. | |
45 #endif | |
46 | |
3161
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
47 static SDL_bool PND_initialized = SDL_FALSE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
48 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
49 static int |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
50 PND_available(void) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
51 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
52 return 1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
53 } |
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 static void |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
56 PND_destroy(SDL_VideoDevice * device) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
57 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
58 SDL_VideoData *phdata = (SDL_VideoData *) device->driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
59 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
60 if (device->driverdata != NULL) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
61 device->driverdata = NULL; |
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 static SDL_VideoDevice * |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
66 PND_create() |
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 SDL_VideoDevice *device; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
69 SDL_VideoData *phdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
70 int status; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
71 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
72 /* Check if pandora could be initialized */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
73 status = PND_available(); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
74 if (status == 0) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
75 /* PND could not be used */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
76 return NULL; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
77 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
78 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
79 /* Initialize SDL_VideoDevice structure */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
80 device = (SDL_VideoDevice *) SDL_calloc(1, sizeof(SDL_VideoDevice)); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
81 if (device == NULL) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
82 SDL_OutOfMemory(); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
83 return NULL; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
84 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
85 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
86 /* Initialize internal Pandora specific data */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
87 phdata = (SDL_VideoData *) SDL_calloc(1, sizeof(SDL_VideoData)); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
88 if (phdata == NULL) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
89 SDL_OutOfMemory(); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
90 SDL_free(device); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
91 return NULL; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
92 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
93 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
94 device->driverdata = phdata; |
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 phdata->egl_initialized = SDL_TRUE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
97 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
98 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
99 /* Setup amount of available displays and current display */ |
3238 | 100 device->num_displays = 0; |
101 device->current_display = 0; | |
3161
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
102 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
103 /* Set device free function */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
104 device->free = PND_destroy; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
105 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
106 /* Setup all functions which we can handle */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
107 device->VideoInit = PND_videoinit; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
108 device->VideoQuit = PND_videoquit; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
109 device->GetDisplayModes = PND_getdisplaymodes; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
110 device->SetDisplayMode = PND_setdisplaymode; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
111 device->SetDisplayPalette = PND_setdisplaypalette; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
112 device->GetDisplayPalette = PND_getdisplaypalette; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
113 device->SetDisplayGammaRamp = PND_setdisplaygammaramp; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
114 device->GetDisplayGammaRamp = PND_getdisplaygammaramp; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
115 device->CreateWindow = PND_createwindow; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
116 device->CreateWindowFrom = PND_createwindowfrom; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
117 device->SetWindowTitle = PND_setwindowtitle; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
118 device->SetWindowIcon = PND_setwindowicon; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
119 device->SetWindowPosition = PND_setwindowposition; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
120 device->SetWindowSize = PND_setwindowsize; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
121 device->ShowWindow = PND_showwindow; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
122 device->HideWindow = PND_hidewindow; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
123 device->RaiseWindow = PND_raisewindow; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
124 device->MaximizeWindow = PND_maximizewindow; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
125 device->MinimizeWindow = PND_minimizewindow; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
126 device->RestoreWindow = PND_restorewindow; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
127 device->SetWindowGrab = PND_setwindowgrab; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
128 device->DestroyWindow = PND_destroywindow; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
129 device->GetWindowWMInfo = PND_getwindowwminfo; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
130 device->GL_LoadLibrary = PND_gl_loadlibrary; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
131 device->GL_GetProcAddress = PND_gl_getprocaddres; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
132 device->GL_UnloadLibrary = PND_gl_unloadlibrary; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
133 device->GL_CreateContext = PND_gl_createcontext; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
134 device->GL_MakeCurrent = PND_gl_makecurrent; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
135 device->GL_SetSwapInterval = PND_gl_setswapinterval; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
136 device->GL_GetSwapInterval = PND_gl_getswapinterval; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
137 device->GL_SwapWindow = PND_gl_swapwindow; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
138 device->GL_DeleteContext = PND_gl_deletecontext; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
139 device->PumpEvents = PND_PumpEvents; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
140 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
141 return device; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
142 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
143 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
144 VideoBootStrap PND_bootstrap = { |
3438 | 145 #ifdef WIZ_GLES_LITE |
146 "wiz", | |
147 "SDL Wiz Video Driver", | |
148 #else | |
3161
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
149 "pandora", |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
150 "SDL Pandora Video Driver", |
3438 | 151 #endif |
3161
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
152 PND_available, |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
153 PND_create |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
154 }; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
155 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
156 /*****************************************************************************/ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
157 /* SDL Video and Display initialization/handling functions */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
158 /*****************************************************************************/ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
159 int |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
160 PND_videoinit(_THIS) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
161 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
162 SDL_VideoDisplay display; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
163 SDL_DisplayMode current_mode; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
164 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
165 SDL_zero(current_mode); |
3438 | 166 #ifdef WIZ_GLES_LITE |
167 current_mode.w = 320; | |
168 current_mode.h = 240; | |
169 #else | |
3161
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
170 current_mode.w = 800; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
171 current_mode.h = 480; |
3438 | 172 #endif |
3161
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
173 current_mode.refresh_rate = 60; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
174 current_mode.format = SDL_PIXELFORMAT_RGB565; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
175 current_mode.driverdata = NULL; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
176 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
177 SDL_zero(display); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
178 display.desktop_mode = current_mode; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
179 display.current_mode = current_mode; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
180 display.driverdata = NULL; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
181 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
182 SDL_AddVideoDisplay(&display); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
183 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
184 return 1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
185 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
186 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
187 void |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
188 PND_videoquit(_THIS) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
189 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
190 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
191 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
192 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
193 void |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
194 PND_getdisplaymodes(_THIS) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
195 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
196 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
197 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
198 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
199 int |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
200 PND_setdisplaymode(_THIS, SDL_DisplayMode * mode) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
201 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
202 return 0; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
203 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
204 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
205 int |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
206 PND_setdisplaypalette(_THIS, SDL_Palette * palette) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
207 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
208 SDL_DisplayData *didata = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
209 (SDL_DisplayData *) SDL_CurrentDisplay.driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
210 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
211 /* Setting display palette operation has been failed */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
212 return -1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
213 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
214 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
215 int |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
216 PND_getdisplaypalette(_THIS, SDL_Palette * palette) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
217 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
218 SDL_DisplayData *didata = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
219 (SDL_DisplayData *) SDL_CurrentDisplay.driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
220 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
221 /* Getting display palette operation has been failed */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
222 return -1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
223 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
224 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
225 int |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
226 PND_setdisplaygammaramp(_THIS, Uint16 * ramp) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
227 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
228 SDL_DisplayData *didata = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
229 (SDL_DisplayData *) SDL_CurrentDisplay.driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
230 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
231 /* Setting display gamma ramp operation has been failed */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
232 return -1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
233 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
234 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
235 int |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
236 PND_getdisplaygammaramp(_THIS, Uint16 * ramp) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
237 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
238 /* Getting display gamma ramp operation has been failed */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
239 return -1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
240 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
241 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
242 int |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
243 PND_createwindow(_THIS, SDL_Window * window) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
244 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
245 SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
246 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
247 SDL_WindowData *wdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
248 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
249 uint32_t winargc = 0; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
250 int32_t status; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
251 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
252 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
253 /* Allocate window internal data */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
254 wdata = (SDL_WindowData *) SDL_calloc(1, sizeof(SDL_WindowData)); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
255 if (wdata == NULL) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
256 SDL_OutOfMemory(); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
257 return -1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
258 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
259 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
260 /* Setup driver data for this window */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
261 window->driverdata = wdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
262 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
263 /* Check if window must support OpenGL ES rendering */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
264 if ((window->flags & SDL_WINDOW_OPENGL) == SDL_WINDOW_OPENGL) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
265 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
266 EGLBoolean initstatus; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
267 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
268 /* Mark this window as OpenGL ES compatible */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
269 wdata->uses_gles = SDL_TRUE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
270 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
271 /* Create connection to OpenGL ES */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
272 if (phdata->egl_display == EGL_NO_DISPLAY) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
273 phdata->egl_display = eglGetDisplay((NativeDisplayType) 0); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
274 if (phdata->egl_display == EGL_NO_DISPLAY) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
275 SDL_SetError("PND: Can't get connection to OpenGL ES"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
276 return -1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
277 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
278 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
279 initstatus = eglInitialize(phdata->egl_display, NULL, NULL); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
280 if (initstatus != EGL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
281 SDL_SetError("PND: Can't init OpenGL ES library"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
282 return -1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
283 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
284 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
285 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
286 phdata->egl_refcount++; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
287 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
288 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
289 /* Window has been successfully created */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
290 return 0; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
291 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
292 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
293 int |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
294 PND_createwindowfrom(_THIS, SDL_Window * window, const void *data) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
295 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
296 return -1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
297 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
298 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
299 void |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
300 PND_setwindowtitle(_THIS, SDL_Window * window) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
301 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
302 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
303 void |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
304 PND_setwindowicon(_THIS, SDL_Window * window, SDL_Surface * icon) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
305 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
306 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
307 void |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
308 PND_setwindowposition(_THIS, SDL_Window * window) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
309 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
310 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
311 void |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
312 PND_setwindowsize(_THIS, SDL_Window * window) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
313 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
314 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
315 void |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
316 PND_showwindow(_THIS, SDL_Window * window) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
317 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
318 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
319 void |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
320 PND_hidewindow(_THIS, SDL_Window * window) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
321 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
322 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
323 void |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
324 PND_raisewindow(_THIS, SDL_Window * window) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
325 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
326 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
327 void |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
328 PND_maximizewindow(_THIS, SDL_Window * window) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
329 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
330 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
331 void |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
332 PND_minimizewindow(_THIS, SDL_Window * window) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
333 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
334 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
335 void |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
336 PND_restorewindow(_THIS, SDL_Window * window) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
337 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
338 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
339 void |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
340 PND_setwindowgrab(_THIS, SDL_Window * window) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
341 { |
3238 | 342 SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata; |
343 eglTerminate(phdata->egl_display); | |
3161
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
344 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
345 void |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
346 PND_destroywindow(_THIS, SDL_Window * window) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
347 { |
3235 | 348 SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata; |
349 eglTerminate(phdata->egl_display); | |
3161
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
350 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
351 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
352 /*****************************************************************************/ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
353 /* SDL Window Manager function */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
354 /*****************************************************************************/ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
355 SDL_bool |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
356 PND_getwindowwminfo(_THIS, SDL_Window * window, struct SDL_SysWMinfo *info) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
357 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
358 if (info->version.major <= SDL_MAJOR_VERSION) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
359 return SDL_TRUE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
360 } else { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
361 SDL_SetError("application not compiled with SDL %d.%d\n", |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
362 SDL_MAJOR_VERSION, SDL_MINOR_VERSION); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
363 return SDL_FALSE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
364 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
365 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
366 /* Failed to get window manager information */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
367 return SDL_FALSE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
368 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
369 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
370 /*****************************************************************************/ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
371 /* SDL OpenGL/OpenGL ES functions */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
372 /*****************************************************************************/ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
373 int |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
374 PND_gl_loadlibrary(_THIS, const char *path) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
375 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
376 SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
377 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
378 /* Check if OpenGL ES library is specified for GF driver */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
379 if (path == NULL) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
380 path = SDL_getenv("SDL_OPENGL_LIBRARY"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
381 if (path == NULL) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
382 path = SDL_getenv("SDL_OPENGLES_LIBRARY"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
383 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
384 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
385 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
386 /* Check if default library loading requested */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
387 if (path == NULL) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
388 /* Already linked with GF library which provides egl* subset of */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
389 /* functions, use Common profile of OpenGL ES library by default */ |
3438 | 390 #ifdef WIZ_GLES_LITE |
391 path = "/lib/libopengles_lite.so"; | |
392 #else | |
3161
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
393 path = "/usr/lib/libGLES_CM.so"; |
3438 | 394 #endif |
3161
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
395 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
396 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
397 /* Load dynamic library */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
398 _this->gl_config.dll_handle = SDL_LoadObject(path); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
399 if (!_this->gl_config.dll_handle) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
400 /* Failed to load new GL ES library */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
401 SDL_SetError("PND: Failed to locate OpenGL ES library"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
402 return -1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
403 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
404 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
405 /* Store OpenGL ES library path and name */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
406 SDL_strlcpy(_this->gl_config.driver_path, path, |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
407 SDL_arraysize(_this->gl_config.driver_path)); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
408 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
409 /* New OpenGL ES library is loaded */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
410 return 0; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
411 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
412 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
413 void * |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
414 PND_gl_getprocaddres(_THIS, const char *proc) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
415 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
416 SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
417 void *function_address; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
418 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
419 /* Try to get function address through the egl interface */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
420 function_address = eglGetProcAddress(proc); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
421 if (function_address != NULL) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
422 return function_address; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
423 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
424 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
425 /* Then try to get function in the OpenGL ES library */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
426 if (_this->gl_config.dll_handle) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
427 function_address = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
428 SDL_LoadFunction(_this->gl_config.dll_handle, proc); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
429 if (function_address != NULL) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
430 return function_address; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
431 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
432 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
433 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
434 /* Failed to get GL ES function address pointer */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
435 SDL_SetError("PND: Cannot locate OpenGL ES function name"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
436 return NULL; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
437 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
438 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
439 void |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
440 PND_gl_unloadlibrary(_THIS) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
441 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
442 SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
443 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
444 if (phdata->egl_initialized == SDL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
445 /* Unload OpenGL ES library */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
446 if (_this->gl_config.dll_handle) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
447 SDL_UnloadObject(_this->gl_config.dll_handle); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
448 _this->gl_config.dll_handle = NULL; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
449 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
450 } else { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
451 SDL_SetError("PND: GF initialization failed, no OpenGL ES support"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
452 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
453 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
454 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
455 SDL_GLContext |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
456 PND_gl_createcontext(_THIS, SDL_Window * window) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
457 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
458 SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
459 SDL_WindowData *wdata = (SDL_WindowData *) window->driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
460 SDL_DisplayData *didata = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
461 (SDL_DisplayData *) SDL_CurrentDisplay.driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
462 EGLBoolean status; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
463 int32_t gfstatus; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
464 EGLint configs; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
465 uint32_t attr_pos; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
466 EGLint attr_value; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
467 EGLint cit; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
468 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
469 /* Check if EGL was initialized */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
470 if (phdata->egl_initialized != SDL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
471 SDL_SetError("PND: EGL initialization failed, no OpenGL ES support"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
472 return NULL; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
473 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
474 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
475 /* Prepare attributes list to pass them to OpenGL ES */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
476 attr_pos = 0; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
477 wdata->gles_attributes[attr_pos++] = EGL_SURFACE_TYPE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
478 wdata->gles_attributes[attr_pos++] = EGL_WINDOW_BIT; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
479 wdata->gles_attributes[attr_pos++] = EGL_RED_SIZE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
480 wdata->gles_attributes[attr_pos++] = _this->gl_config.red_size; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
481 wdata->gles_attributes[attr_pos++] = EGL_GREEN_SIZE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
482 wdata->gles_attributes[attr_pos++] = _this->gl_config.green_size; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
483 wdata->gles_attributes[attr_pos++] = EGL_BLUE_SIZE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
484 wdata->gles_attributes[attr_pos++] = _this->gl_config.blue_size; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
485 wdata->gles_attributes[attr_pos++] = EGL_ALPHA_SIZE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
486 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
487 /* Setup alpha size in bits */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
488 if (_this->gl_config.alpha_size) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
489 wdata->gles_attributes[attr_pos++] = _this->gl_config.alpha_size; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
490 } else { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
491 wdata->gles_attributes[attr_pos++] = EGL_DONT_CARE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
492 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
493 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
494 /* Setup color buffer size */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
495 if (_this->gl_config.buffer_size) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
496 wdata->gles_attributes[attr_pos++] = EGL_BUFFER_SIZE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
497 wdata->gles_attributes[attr_pos++] = _this->gl_config.buffer_size; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
498 } else { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
499 wdata->gles_attributes[attr_pos++] = EGL_BUFFER_SIZE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
500 wdata->gles_attributes[attr_pos++] = EGL_DONT_CARE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
501 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
502 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
503 /* Setup depth buffer bits */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
504 wdata->gles_attributes[attr_pos++] = EGL_DEPTH_SIZE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
505 wdata->gles_attributes[attr_pos++] = _this->gl_config.depth_size; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
506 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
507 /* Setup stencil bits */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
508 if (_this->gl_config.stencil_size) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
509 wdata->gles_attributes[attr_pos++] = EGL_STENCIL_SIZE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
510 wdata->gles_attributes[attr_pos++] = _this->gl_config.buffer_size; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
511 } else { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
512 wdata->gles_attributes[attr_pos++] = EGL_STENCIL_SIZE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
513 wdata->gles_attributes[attr_pos++] = EGL_DONT_CARE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
514 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
515 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
516 /* Set number of samples in multisampling */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
517 if (_this->gl_config.multisamplesamples) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
518 wdata->gles_attributes[attr_pos++] = EGL_SAMPLES; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
519 wdata->gles_attributes[attr_pos++] = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
520 _this->gl_config.multisamplesamples; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
521 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
522 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
523 /* Multisample buffers, OpenGL ES 1.0 spec defines 0 or 1 buffer */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
524 if (_this->gl_config.multisamplebuffers) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
525 wdata->gles_attributes[attr_pos++] = EGL_SAMPLE_BUFFERS; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
526 wdata->gles_attributes[attr_pos++] = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
527 _this->gl_config.multisamplebuffers; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
528 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
529 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
530 /* Finish attributes list */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
531 wdata->gles_attributes[attr_pos] = EGL_NONE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
532 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
533 /* Request first suitable framebuffer configuration */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
534 status = eglChooseConfig(phdata->egl_display, wdata->gles_attributes, |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
535 wdata->gles_configs, 1, &configs); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
536 if (status != EGL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
537 SDL_SetError("PND: Can't find closest configuration for OpenGL ES"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
538 return NULL; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
539 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
540 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
541 /* Check if nothing has been found, try "don't care" settings */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
542 if (configs == 0) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
543 int32_t it; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
544 int32_t jt; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
545 GLint depthbits[4] = { 32, 24, 16, EGL_DONT_CARE }; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
546 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
547 for (it = 0; it < 4; it++) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
548 for (jt = 16; jt >= 0; jt--) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
549 /* Don't care about color buffer bits, use what exist */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
550 /* Replace previous set data with EGL_DONT_CARE */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
551 attr_pos = 0; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
552 wdata->gles_attributes[attr_pos++] = EGL_SURFACE_TYPE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
553 wdata->gles_attributes[attr_pos++] = EGL_WINDOW_BIT; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
554 wdata->gles_attributes[attr_pos++] = EGL_RED_SIZE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
555 wdata->gles_attributes[attr_pos++] = EGL_DONT_CARE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
556 wdata->gles_attributes[attr_pos++] = EGL_GREEN_SIZE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
557 wdata->gles_attributes[attr_pos++] = EGL_DONT_CARE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
558 wdata->gles_attributes[attr_pos++] = EGL_BLUE_SIZE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
559 wdata->gles_attributes[attr_pos++] = EGL_DONT_CARE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
560 wdata->gles_attributes[attr_pos++] = EGL_ALPHA_SIZE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
561 wdata->gles_attributes[attr_pos++] = EGL_DONT_CARE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
562 wdata->gles_attributes[attr_pos++] = EGL_BUFFER_SIZE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
563 wdata->gles_attributes[attr_pos++] = EGL_DONT_CARE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
564 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
565 /* Try to find requested or smallest depth */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
566 if (_this->gl_config.depth_size) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
567 wdata->gles_attributes[attr_pos++] = EGL_DEPTH_SIZE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
568 wdata->gles_attributes[attr_pos++] = depthbits[it]; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
569 } else { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
570 wdata->gles_attributes[attr_pos++] = EGL_DEPTH_SIZE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
571 wdata->gles_attributes[attr_pos++] = EGL_DONT_CARE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
572 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
573 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
574 if (_this->gl_config.stencil_size) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
575 wdata->gles_attributes[attr_pos++] = EGL_STENCIL_SIZE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
576 wdata->gles_attributes[attr_pos++] = jt; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
577 } else { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
578 wdata->gles_attributes[attr_pos++] = EGL_STENCIL_SIZE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
579 wdata->gles_attributes[attr_pos++] = EGL_DONT_CARE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
580 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
581 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
582 wdata->gles_attributes[attr_pos++] = EGL_SAMPLES; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
583 wdata->gles_attributes[attr_pos++] = EGL_DONT_CARE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
584 wdata->gles_attributes[attr_pos++] = EGL_SAMPLE_BUFFERS; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
585 wdata->gles_attributes[attr_pos++] = EGL_DONT_CARE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
586 wdata->gles_attributes[attr_pos] = EGL_NONE; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
587 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
588 /* Request first suitable framebuffer configuration */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
589 status = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
590 eglChooseConfig(phdata->egl_display, |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
591 wdata->gles_attributes, |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
592 wdata->gles_configs, 1, &configs); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
593 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
594 if (status != EGL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
595 SDL_SetError |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
596 ("PND: Can't find closest configuration for OpenGL ES"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
597 return NULL; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
598 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
599 if (configs != 0) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
600 break; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
601 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
602 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
603 if (configs != 0) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
604 break; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
605 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
606 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
607 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
608 /* No available configs */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
609 if (configs == 0) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
610 SDL_SetError("PND: Can't find any configuration for OpenGL ES"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
611 return NULL; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
612 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
613 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
614 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
615 /* Initialize config index */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
616 wdata->gles_config = 0; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
617 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
618 /* Now check each configuration to find out the best */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
619 for (cit = 0; cit < configs; cit++) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
620 uint32_t stencil_found; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
621 uint32_t depth_found; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
622 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
623 stencil_found = 0; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
624 depth_found = 0; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
625 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
626 if (_this->gl_config.stencil_size) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
627 status = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
628 eglGetConfigAttrib(phdata->egl_display, |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
629 wdata->gles_configs[cit], EGL_STENCIL_SIZE, |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
630 &attr_value); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
631 if (status == EGL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
632 if (attr_value != 0) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
633 stencil_found = 1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
634 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
635 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
636 } else { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
637 stencil_found = 1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
638 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
639 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
640 if (_this->gl_config.depth_size) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
641 status = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
642 eglGetConfigAttrib(phdata->egl_display, |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
643 wdata->gles_configs[cit], EGL_DEPTH_SIZE, |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
644 &attr_value); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
645 if (status == EGL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
646 if (attr_value != 0) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
647 depth_found = 1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
648 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
649 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
650 } else { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
651 depth_found = 1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
652 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
653 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
654 /* Exit from loop if found appropriate configuration */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
655 if ((depth_found != 0) && (stencil_found != 0)) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
656 break; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
657 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
658 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
659 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
660 /* If best could not be found, use first */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
661 if (cit == configs) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
662 cit = 0; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
663 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
664 wdata->gles_config = cit; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
665 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
666 /* Create OpenGL ES context */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
667 wdata->gles_context = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
668 eglCreateContext(phdata->egl_display, |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
669 wdata->gles_configs[wdata->gles_config], NULL, NULL); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
670 if (wdata->gles_context == EGL_NO_CONTEXT) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
671 SDL_SetError("PND: OpenGL ES context creation has been failed"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
672 return NULL; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
673 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
674 |
3438 | 675 #ifdef WIZ_GLES_LITE |
676 if( !hNativeWnd ) { | |
677 hNativeWnd = (NativeWindowType)malloc(16*1024); | |
678 | |
679 if(!hNativeWnd) | |
680 printf( "Error : Wiz framebuffer allocatation failed\n" ); | |
681 else | |
682 printf( "SDL13: Wiz framebuffer allocated: %X\n", hNativeWnd ); | |
683 } | |
684 else { | |
685 printf( "SDL13: Wiz framebuffer already allocated: %X\n", hNativeWnd ); | |
686 } | |
687 | |
688 wdata->gles_surface = | |
689 eglCreateWindowSurface(phdata->egl_display, | |
690 wdata->gles_configs[wdata->gles_config], | |
691 hNativeWnd, NULL ); | |
692 #else | |
3161
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
693 wdata->gles_surface = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
694 eglCreateWindowSurface(phdata->egl_display, |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
695 wdata->gles_configs[wdata->gles_config], |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
696 (NativeWindowType) 0, NULL); |
3438 | 697 #endif |
698 | |
699 | |
3161
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
700 if (wdata->gles_surface == 0) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
701 SDL_SetError("Error : eglCreateWindowSurface failed;\n"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
702 return NULL; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
703 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
704 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
705 /* Make just created context current */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
706 status = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
707 eglMakeCurrent(phdata->egl_display, wdata->gles_surface, |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
708 wdata->gles_surface, wdata->gles_context); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
709 if (status != EGL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
710 /* Destroy OpenGL ES surface */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
711 eglDestroySurface(phdata->egl_display, wdata->gles_surface); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
712 eglDestroyContext(phdata->egl_display, wdata->gles_context); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
713 wdata->gles_context = EGL_NO_CONTEXT; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
714 SDL_SetError("PND: Can't set OpenGL ES context on creation"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
715 return NULL; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
716 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
717 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
718 _this->gl_config.accelerated = 1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
719 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
720 /* Always clear stereo enable, since OpenGL ES do not supports stereo */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
721 _this->gl_config.stereo = 0; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
722 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
723 /* Get back samples and samplebuffers configurations. Rest framebuffer */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
724 /* parameters could be obtained through the OpenGL ES API */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
725 status = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
726 eglGetConfigAttrib(phdata->egl_display, |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
727 wdata->gles_configs[wdata->gles_config], |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
728 EGL_SAMPLES, &attr_value); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
729 if (status == EGL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
730 _this->gl_config.multisamplesamples = attr_value; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
731 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
732 status = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
733 eglGetConfigAttrib(phdata->egl_display, |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
734 wdata->gles_configs[wdata->gles_config], |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
735 EGL_SAMPLE_BUFFERS, &attr_value); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
736 if (status == EGL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
737 _this->gl_config.multisamplebuffers = attr_value; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
738 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
739 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
740 /* Get back stencil and depth buffer sizes */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
741 status = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
742 eglGetConfigAttrib(phdata->egl_display, |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
743 wdata->gles_configs[wdata->gles_config], |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
744 EGL_DEPTH_SIZE, &attr_value); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
745 if (status == EGL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
746 _this->gl_config.depth_size = attr_value; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
747 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
748 status = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
749 eglGetConfigAttrib(phdata->egl_display, |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
750 wdata->gles_configs[wdata->gles_config], |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
751 EGL_STENCIL_SIZE, &attr_value); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
752 if (status == EGL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
753 _this->gl_config.stencil_size = attr_value; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
754 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
755 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
756 /* Under PND OpenGL ES output can't be double buffered */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
757 _this->gl_config.double_buffer = 0; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
758 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
759 /* GL ES context was successfully created */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
760 return wdata->gles_context; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
761 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
762 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
763 int |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
764 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
|
765 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
766 SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
767 SDL_WindowData *wdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
768 EGLBoolean status; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
769 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
770 if (phdata->egl_initialized != SDL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
771 SDL_SetError("PND: GF initialization failed, no OpenGL ES support"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
772 return -1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
773 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
774 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
775 if ((window == NULL) && (context == NULL)) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
776 status = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
777 eglMakeCurrent(phdata->egl_display, EGL_NO_SURFACE, |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
778 EGL_NO_SURFACE, EGL_NO_CONTEXT); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
779 if (status != EGL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
780 /* Failed to set current GL ES context */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
781 SDL_SetError("PND: Can't set OpenGL ES context"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
782 return -1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
783 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
784 } else { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
785 wdata = (SDL_WindowData *) window->driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
786 if (wdata->gles_surface == EGL_NO_SURFACE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
787 SDL_SetError |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
788 ("PND: OpenGL ES surface is not initialized for this window"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
789 return -1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
790 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
791 if (wdata->gles_context == EGL_NO_CONTEXT) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
792 SDL_SetError |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
793 ("PND: OpenGL ES context is not initialized for this window"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
794 return -1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
795 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
796 if (wdata->gles_context != context) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
797 SDL_SetError |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
798 ("PND: OpenGL ES context is not belong to this window"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
799 return -1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
800 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
801 status = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
802 eglMakeCurrent(phdata->egl_display, wdata->gles_surface, |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
803 wdata->gles_surface, wdata->gles_context); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
804 if (status != EGL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
805 /* Failed to set current GL ES context */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
806 SDL_SetError("PND: Can't set OpenGL ES context"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
807 return -1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
808 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
809 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
810 return 0; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
811 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
812 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
813 int |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
814 PND_gl_setswapinterval(_THIS, int interval) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
815 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
816 SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
817 EGLBoolean status; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
818 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
819 if (phdata->egl_initialized != SDL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
820 SDL_SetError("PND: EGL initialization failed, no OpenGL ES support"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
821 return -1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
822 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
823 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
824 /* Check if OpenGL ES connection has been initialized */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
825 if (phdata->egl_display != EGL_NO_DISPLAY) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
826 /* Set swap OpenGL ES interval */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
827 status = eglSwapInterval(phdata->egl_display, interval); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
828 if (status == EGL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
829 /* Return success to upper level */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
830 phdata->swapinterval = interval; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
831 return 0; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
832 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
833 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
834 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
835 /* Failed to set swap interval */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
836 SDL_SetError("PND: Cannot set swap interval"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
837 return -1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
838 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
839 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
840 int |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
841 PND_gl_getswapinterval(_THIS) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
842 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
843 SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
844 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
845 if (phdata->egl_initialized != SDL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
846 SDL_SetError("PND: GLES initialization failed, no OpenGL ES support"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
847 return -1; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
848 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
849 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
850 /* Return default swap interval value */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
851 return phdata->swapinterval; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
852 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
853 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
854 void |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
855 PND_gl_swapwindow(_THIS, SDL_Window * window) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
856 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
857 SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
858 SDL_WindowData *wdata = (SDL_WindowData *) window->driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
859 SDL_DisplayData *didata = |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
860 (SDL_DisplayData *) SDL_CurrentDisplay.driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
861 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
862 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
863 if (phdata->egl_initialized != SDL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
864 SDL_SetError("PND: GLES initialization failed, no OpenGL ES support"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
865 return; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
866 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
867 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
868 /* Many applications do not uses glFinish(), so we call it for them */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
869 glFinish(); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
870 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
871 /* Wait until OpenGL ES rendering is completed */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
872 eglWaitGL(); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
873 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
874 eglSwapBuffers(phdata->egl_display, wdata->gles_surface); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
875 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
876 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
877 void |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
878 PND_gl_deletecontext(_THIS, SDL_GLContext context) |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
879 { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
880 SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
881 EGLBoolean status; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
882 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
883 if (phdata->egl_initialized != SDL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
884 SDL_SetError("PND: GLES initialization failed, no OpenGL ES support"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
885 return; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
886 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
887 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
888 /* Check if OpenGL ES connection has been initialized */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
889 if (phdata->egl_display != EGL_NO_DISPLAY) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
890 if (context != EGL_NO_CONTEXT) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
891 status = eglDestroyContext(phdata->egl_display, context); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
892 if (status != EGL_TRUE) { |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
893 /* Error during OpenGL ES context destroying */ |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
894 SDL_SetError("PND: OpenGL ES context destroy error"); |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
895 return; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
896 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
897 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
898 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
899 |
3438 | 900 #ifdef WIZ_GLES_LITE |
901 if( hNativeWnd != 0 ) | |
902 { | |
903 free(hNativeWnd); | |
904 hNativeWnd = 0; | |
905 printf( "SDL13: Wiz framebuffer released\n" ); | |
906 } | |
907 #endif | |
908 | |
3161
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
909 return; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
910 } |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
911 |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
912 /* vi: set ts=4 sw=4 expandtab: */ |