SDL
2.0
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
SDL_pspvideo.c
Go to the documentation of this file.
1
/*
2
Simple DirectMedia Layer
3
Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
4
5
This software is provided 'as-is', without any express or implied
6
warranty. In no event will the authors be held liable for any damages
7
arising from the use of this software.
8
9
Permission is granted to anyone to use this software for any purpose,
10
including commercial applications, and to alter it and redistribute it
11
freely, subject to the following restrictions:
12
13
1. The origin of this software must not be misrepresented; you must not
14
claim that you wrote the original software. If you use this software
15
in a product, an acknowledgment in the product documentation would be
16
appreciated but is not required.
17
2. Altered source versions must be plainly marked as such, and must not be
18
misrepresented as being the original software.
19
3. This notice may not be removed or altered from any source distribution.
20
*/
21
22
#include "../../SDL_internal.h"
23
24
#if SDL_VIDEO_DRIVER_PSP
25
26
/* SDL internals */
27
#include "../SDL_sysvideo.h"
28
#include "
SDL_version.h
"
29
#include "
SDL_syswm.h
"
30
#include "
SDL_loadso.h
"
31
#include "
SDL_events.h
"
32
#include "../../events/SDL_mouse_c.h"
33
#include "../../events/SDL_keyboard_c.h"
34
35
36
37
/* PSP declarations */
38
#include "
SDL_pspvideo.h
"
39
#include "
SDL_pspevents_c.h
"
40
#include "
SDL_pspgl_c.h
"
41
42
/* unused
43
static SDL_bool PSP_initialized = SDL_FALSE;
44
*/
45
static
int
46
PSP_Available(
void
)
47
{
48
return
1;
49
}
50
51
static
void
52
PSP_Destroy(
SDL_VideoDevice
*
device
)
53
{
54
/* SDL_VideoData *phdata = (SDL_VideoData *) device->driverdata; */
55
56
if
(device->
driverdata
!=
NULL
) {
57
device->
driverdata
=
NULL
;
58
}
59
}
60
61
static
SDL_VideoDevice
*
62
PSP_Create()
63
{
64
SDL_VideoDevice
*
device
;
65
SDL_VideoData
*phdata;
66
SDL_GLDriverData
*gldata;
67
int
status;
68
69
/* Check if PSP could be initialized */
70
status = PSP_Available();
71
if
(status == 0) {
72
/* PSP could not be used */
73
return
NULL
;
74
}
75
76
/* Initialize SDL_VideoDevice structure */
77
device = (
SDL_VideoDevice
*)
SDL_calloc
(1,
sizeof
(
SDL_VideoDevice
));
78
if
(device ==
NULL
) {
79
SDL_OutOfMemory
();
80
return
NULL
;
81
}
82
83
/* Initialize internal PSP specific data */
84
phdata = (
SDL_VideoData
*)
SDL_calloc
(1,
sizeof
(
SDL_VideoData
));
85
if
(phdata ==
NULL
) {
86
SDL_OutOfMemory
();
87
SDL_free
(device);
88
return
NULL
;
89
}
90
91
gldata = (
SDL_GLDriverData
*)
SDL_calloc
(1,
sizeof
(
SDL_GLDriverData
));
92
if
(gldata ==
NULL
) {
93
SDL_OutOfMemory
();
94
SDL_free
(device);
95
SDL_free
(phdata);
96
return
NULL
;
97
}
98
device->
gl_data
= gldata;
99
100
device->
driverdata
= phdata;
101
102
phdata->
egl_initialized
=
SDL_TRUE
;
103
104
105
/* Setup amount of available displays */
106
device->
num_displays
= 0;
107
108
/* Set device free function */
109
device->
free
= PSP_Destroy;
110
111
/* Setup all functions which we can handle */
112
device->
VideoInit
=
PSP_VideoInit
;
113
device->
VideoQuit
=
PSP_VideoQuit
;
114
device->
GetDisplayModes
=
PSP_GetDisplayModes
;
115
device->
SetDisplayMode
=
PSP_SetDisplayMode
;
116
device->
CreateSDLWindow
=
PSP_CreateWindow
;
117
device->
CreateSDLWindowFrom
=
PSP_CreateWindowFrom
;
118
device->
SetWindowTitle
=
PSP_SetWindowTitle
;
119
device->
SetWindowIcon
=
PSP_SetWindowIcon
;
120
device->
SetWindowPosition
=
PSP_SetWindowPosition
;
121
device->
SetWindowSize
=
PSP_SetWindowSize
;
122
device->
ShowWindow
=
PSP_ShowWindow
;
123
device->
HideWindow
=
PSP_HideWindow
;
124
device->
RaiseWindow
=
PSP_RaiseWindow
;
125
device->
MaximizeWindow
=
PSP_MaximizeWindow
;
126
device->
MinimizeWindow
=
PSP_MinimizeWindow
;
127
device->
RestoreWindow
=
PSP_RestoreWindow
;
128
device->
SetWindowGrab
=
PSP_SetWindowGrab
;
129
device->
DestroyWindow
=
PSP_DestroyWindow
;
130
#if 0
131
device->
GetWindowWMInfo
=
PSP_GetWindowWMInfo
;
132
#endif
133
device->
GL_LoadLibrary
=
PSP_GL_LoadLibrary
;
134
device->
GL_GetProcAddress
=
PSP_GL_GetProcAddress
;
135
device->
GL_UnloadLibrary
=
PSP_GL_UnloadLibrary
;
136
device->
GL_CreateContext
=
PSP_GL_CreateContext
;
137
device->
GL_MakeCurrent
=
PSP_GL_MakeCurrent
;
138
device->
GL_SetSwapInterval
=
PSP_GL_SetSwapInterval
;
139
device->
GL_GetSwapInterval
=
PSP_GL_GetSwapInterval
;
140
device->
GL_SwapWindow
=
PSP_GL_SwapWindow
;
141
device->
GL_DeleteContext
=
PSP_GL_DeleteContext
;
142
device->
HasScreenKeyboardSupport
=
PSP_HasScreenKeyboardSupport
;
143
device->
ShowScreenKeyboard
=
PSP_ShowScreenKeyboard
;
144
device->
HideScreenKeyboard
=
PSP_HideScreenKeyboard
;
145
device->
IsScreenKeyboardShown
=
PSP_IsScreenKeyboardShown
;
146
147
device->
PumpEvents
=
PSP_PumpEvents
;
148
149
return
device
;
150
}
151
152
VideoBootStrap
PSP_bootstrap
= {
153
"PSP"
,
154
"PSP Video Driver"
,
155
PSP_Available,
156
PSP_Create
157
};
158
159
/*****************************************************************************/
160
/* SDL Video and Display initialization/handling functions */
161
/*****************************************************************************/
162
int
163
PSP_VideoInit
(
_THIS
)
164
{
165
SDL_VideoDisplay
display;
166
SDL_DisplayMode
current_mode;
167
168
SDL_zero
(current_mode);
169
170
current_mode.
w
= 480;
171
current_mode.
h
= 272;
172
173
current_mode.
refresh_rate
= 60;
174
/* 32 bpp for default */
175
current_mode.
format
=
SDL_PIXELFORMAT_ABGR8888
;
176
177
current_mode.
driverdata
=
NULL
;
178
179
SDL_zero
(display);
180
display.
desktop_mode
= current_mode;
181
display.
current_mode
= current_mode;
182
display.
driverdata
=
NULL
;
183
184
SDL_AddVideoDisplay
(&display);
185
186
return
1;
187
}
188
189
void
190
PSP_VideoQuit
(
_THIS
)
191
{
192
193
}
194
195
void
196
PSP_GetDisplayModes
(
_THIS
,
SDL_VideoDisplay
* display)
197
{
198
199
}
200
201
int
202
PSP_SetDisplayMode
(
_THIS
,
SDL_VideoDisplay
* display,
SDL_DisplayMode
*
mode
)
203
{
204
return
0;
205
}
206
#define EGLCHK(stmt) \
207
do { \
208
EGLint err; \
209
\
210
stmt; \
211
err = eglGetError(); \
212
if (err != EGL_SUCCESS) { \
213
SDL_SetError("EGL error %d", err); \
214
return 0; \
215
} \
216
} while (0)
217
218
int
219
PSP_CreateWindow
(
_THIS
,
SDL_Window
*
window
)
220
{
221
SDL_WindowData
*wdata;
222
223
/* Allocate window internal data */
224
wdata = (
SDL_WindowData
*)
SDL_calloc
(1,
sizeof
(
SDL_WindowData
));
225
if
(wdata ==
NULL
) {
226
return
SDL_OutOfMemory
();
227
}
228
229
/* Setup driver data for this window */
230
window->
driverdata
= wdata;
231
232
233
/* Window has been successfully created */
234
return
0;
235
}
236
237
int
238
PSP_CreateWindowFrom
(
_THIS
,
SDL_Window
* window,
const
void
*
data
)
239
{
240
return
SDL_Unsupported
();
241
}
242
243
void
244
PSP_SetWindowTitle
(
_THIS
,
SDL_Window
* window)
245
{
246
}
247
void
248
PSP_SetWindowIcon
(
_THIS
,
SDL_Window
* window,
SDL_Surface
* icon)
249
{
250
}
251
void
252
PSP_SetWindowPosition
(
_THIS
,
SDL_Window
* window)
253
{
254
}
255
void
256
PSP_SetWindowSize
(
_THIS
,
SDL_Window
* window)
257
{
258
}
259
void
260
PSP_ShowWindow
(
_THIS
,
SDL_Window
* window)
261
{
262
}
263
void
264
PSP_HideWindow
(
_THIS
,
SDL_Window
* window)
265
{
266
}
267
void
268
PSP_RaiseWindow
(
_THIS
,
SDL_Window
* window)
269
{
270
}
271
void
272
PSP_MaximizeWindow
(
_THIS
,
SDL_Window
* window)
273
{
274
}
275
void
276
PSP_MinimizeWindow
(
_THIS
,
SDL_Window
* window)
277
{
278
}
279
void
280
PSP_RestoreWindow
(
_THIS
,
SDL_Window
* window)
281
{
282
}
283
void
284
PSP_SetWindowGrab
(
_THIS
,
SDL_Window
* window,
SDL_bool
grabbed)
285
{
286
287
}
288
void
289
PSP_DestroyWindow
(
_THIS
,
SDL_Window
* window)
290
{
291
}
292
293
/*****************************************************************************/
294
/* SDL Window Manager function */
295
/*****************************************************************************/
296
#if 0
297
SDL_bool
298
PSP_GetWindowWMInfo
(
_THIS
,
SDL_Window
* window,
struct
SDL_SysWMinfo
*info)
299
{
300
if
(info->
version
.
major
<=
SDL_MAJOR_VERSION
) {
301
return
SDL_TRUE
;
302
}
else
{
303
SDL_SetError
(
"Application not compiled with SDL %d.%d"
,
304
SDL_MAJOR_VERSION
,
SDL_MINOR_VERSION
);
305
return
SDL_FALSE
;
306
}
307
308
/* Failed to get window manager information */
309
return
SDL_FALSE
;
310
}
311
#endif
312
313
314
/* TO Write Me */
315
SDL_bool
PSP_HasScreenKeyboardSupport
(
_THIS
)
316
{
317
return
SDL_FALSE
;
318
}
319
void
PSP_ShowScreenKeyboard
(
_THIS
,
SDL_Window
*window)
320
{
321
}
322
void
PSP_HideScreenKeyboard
(
_THIS
,
SDL_Window
*window)
323
{
324
}
325
SDL_bool
PSP_IsScreenKeyboardShown
(
_THIS
,
SDL_Window
*window)
326
{
327
return
SDL_FALSE
;
328
}
329
330
331
#endif
/* SDL_VIDEO_DRIVER_PSP */
332
333
/* vi: set ts=4 sw=4 expandtab: */
src
video
psp
SDL_pspvideo.c
Generated on Sun Jun 26 2022 23:07:16 for SDL by
1.8.1.2