Mercurial > sdl-ios-xcode
annotate src/video/pandora/SDL_pandora.c @ 3473:7bdc10624cba
This is terrible, but the OpenGL standard says that lines are half open, which means that one endpoint is not covered so adjoining lines don't overlap. It also doesn't define which end is open, and indeed Mac OS X and Linux differ. Mac OS X seems to leave the second endpoint open, but Linux uses the right-most endpoint for x major lines and the bottom-most endpoint for y major lines.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sat, 21 Nov 2009 07:14:21 +0000 |
parents | 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: */ |