diff options
Diffstat (limited to 'source/3rd-party/SDL2/src/video/psp/SDL_pspvideo.c')
-rw-r--r-- | source/3rd-party/SDL2/src/video/psp/SDL_pspvideo.c | 333 |
1 files changed, 333 insertions, 0 deletions
diff --git a/source/3rd-party/SDL2/src/video/psp/SDL_pspvideo.c b/source/3rd-party/SDL2/src/video/psp/SDL_pspvideo.c new file mode 100644 index 0000000..8231779 --- /dev/null +++ b/source/3rd-party/SDL2/src/video/psp/SDL_pspvideo.c @@ -0,0 +1,333 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org> + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#include "../../SDL_internal.h" + +#if SDL_VIDEO_DRIVER_PSP + +/* SDL internals */ +#include "../SDL_sysvideo.h" +#include "SDL_version.h" +#include "SDL_syswm.h" +#include "SDL_loadso.h" +#include "SDL_events.h" +#include "../../events/SDL_mouse_c.h" +#include "../../events/SDL_keyboard_c.h" + + + +/* PSP declarations */ +#include "SDL_pspvideo.h" +#include "SDL_pspevents_c.h" +#include "SDL_pspgl_c.h" + +/* unused +static SDL_bool PSP_initialized = SDL_FALSE; +*/ +static int +PSP_Available(void) +{ + return 1; +} + +static void +PSP_Destroy(SDL_VideoDevice * device) +{ +/* SDL_VideoData *phdata = (SDL_VideoData *) device->driverdata; */ + + if (device->driverdata != NULL) { + device->driverdata = NULL; + } +} + +static SDL_VideoDevice * +PSP_Create() +{ + SDL_VideoDevice *device; + SDL_VideoData *phdata; + SDL_GLDriverData *gldata; + int status; + + /* Check if PSP could be initialized */ + status = PSP_Available(); + if (status == 0) { + /* PSP could not be used */ + return NULL; + } + + /* Initialize SDL_VideoDevice structure */ + device = (SDL_VideoDevice *) SDL_calloc(1, sizeof(SDL_VideoDevice)); + if (device == NULL) { + SDL_OutOfMemory(); + return NULL; + } + + /* Initialize internal PSP specific data */ + phdata = (SDL_VideoData *) SDL_calloc(1, sizeof(SDL_VideoData)); + if (phdata == NULL) { + SDL_OutOfMemory(); + SDL_free(device); + return NULL; + } + + gldata = (SDL_GLDriverData *) SDL_calloc(1, sizeof(SDL_GLDriverData)); + if (gldata == NULL) { + SDL_OutOfMemory(); + SDL_free(device); + SDL_free(phdata); + return NULL; + } + device->gl_data = gldata; + + device->driverdata = phdata; + + phdata->egl_initialized = SDL_TRUE; + + + /* Setup amount of available displays */ + device->num_displays = 0; + + /* Set device free function */ + device->free = PSP_Destroy; + + /* Setup all functions which we can handle */ + device->VideoInit = PSP_VideoInit; + device->VideoQuit = PSP_VideoQuit; + device->GetDisplayModes = PSP_GetDisplayModes; + device->SetDisplayMode = PSP_SetDisplayMode; + device->CreateSDLWindow = PSP_CreateWindow; + device->CreateSDLWindowFrom = PSP_CreateWindowFrom; + device->SetWindowTitle = PSP_SetWindowTitle; + device->SetWindowIcon = PSP_SetWindowIcon; + device->SetWindowPosition = PSP_SetWindowPosition; + device->SetWindowSize = PSP_SetWindowSize; + device->ShowWindow = PSP_ShowWindow; + device->HideWindow = PSP_HideWindow; + device->RaiseWindow = PSP_RaiseWindow; + device->MaximizeWindow = PSP_MaximizeWindow; + device->MinimizeWindow = PSP_MinimizeWindow; + device->RestoreWindow = PSP_RestoreWindow; + device->SetWindowGrab = PSP_SetWindowGrab; + device->DestroyWindow = PSP_DestroyWindow; +#if 0 + device->GetWindowWMInfo = PSP_GetWindowWMInfo; +#endif + device->GL_LoadLibrary = PSP_GL_LoadLibrary; + device->GL_GetProcAddress = PSP_GL_GetProcAddress; + device->GL_UnloadLibrary = PSP_GL_UnloadLibrary; + device->GL_CreateContext = PSP_GL_CreateContext; + device->GL_MakeCurrent = PSP_GL_MakeCurrent; + device->GL_SetSwapInterval = PSP_GL_SetSwapInterval; + device->GL_GetSwapInterval = PSP_GL_GetSwapInterval; + device->GL_SwapWindow = PSP_GL_SwapWindow; + device->GL_DeleteContext = PSP_GL_DeleteContext; + device->HasScreenKeyboardSupport = PSP_HasScreenKeyboardSupport; + device->ShowScreenKeyboard = PSP_ShowScreenKeyboard; + device->HideScreenKeyboard = PSP_HideScreenKeyboard; + device->IsScreenKeyboardShown = PSP_IsScreenKeyboardShown; + + device->PumpEvents = PSP_PumpEvents; + + return device; +} + +VideoBootStrap PSP_bootstrap = { + "PSP", + "PSP Video Driver", + PSP_Available, + PSP_Create +}; + +/*****************************************************************************/ +/* SDL Video and Display initialization/handling functions */ +/*****************************************************************************/ +int +PSP_VideoInit(_THIS) +{ + SDL_VideoDisplay display; + SDL_DisplayMode current_mode; + + SDL_zero(current_mode); + + current_mode.w = 480; + current_mode.h = 272; + + current_mode.refresh_rate = 60; + /* 32 bpp for default */ + current_mode.format = SDL_PIXELFORMAT_ABGR8888; + + current_mode.driverdata = NULL; + + SDL_zero(display); + display.desktop_mode = current_mode; + display.current_mode = current_mode; + display.driverdata = NULL; + + SDL_AddVideoDisplay(&display); + + return 1; +} + +void +PSP_VideoQuit(_THIS) +{ + +} + +void +PSP_GetDisplayModes(_THIS, SDL_VideoDisplay * display) +{ + +} + +int +PSP_SetDisplayMode(_THIS, SDL_VideoDisplay * display, SDL_DisplayMode * mode) +{ + return 0; +} +#define EGLCHK(stmt) \ + do { \ + EGLint err; \ + \ + stmt; \ + err = eglGetError(); \ + if (err != EGL_SUCCESS) { \ + SDL_SetError("EGL error %d", err); \ + return 0; \ + } \ + } while (0) + +int +PSP_CreateWindow(_THIS, SDL_Window * window) +{ + SDL_WindowData *wdata; + + /* Allocate window internal data */ + wdata = (SDL_WindowData *) SDL_calloc(1, sizeof(SDL_WindowData)); + if (wdata == NULL) { + return SDL_OutOfMemory(); + } + + /* Setup driver data for this window */ + window->driverdata = wdata; + + + /* Window has been successfully created */ + return 0; +} + +int +PSP_CreateWindowFrom(_THIS, SDL_Window * window, const void *data) +{ + return SDL_Unsupported(); +} + +void +PSP_SetWindowTitle(_THIS, SDL_Window * window) +{ +} +void +PSP_SetWindowIcon(_THIS, SDL_Window * window, SDL_Surface * icon) +{ +} +void +PSP_SetWindowPosition(_THIS, SDL_Window * window) +{ +} +void +PSP_SetWindowSize(_THIS, SDL_Window * window) +{ +} +void +PSP_ShowWindow(_THIS, SDL_Window * window) +{ +} +void +PSP_HideWindow(_THIS, SDL_Window * window) +{ +} +void +PSP_RaiseWindow(_THIS, SDL_Window * window) +{ +} +void +PSP_MaximizeWindow(_THIS, SDL_Window * window) +{ +} +void +PSP_MinimizeWindow(_THIS, SDL_Window * window) +{ +} +void +PSP_RestoreWindow(_THIS, SDL_Window * window) +{ +} +void +PSP_SetWindowGrab(_THIS, SDL_Window * window, SDL_bool grabbed) +{ + +} +void +PSP_DestroyWindow(_THIS, SDL_Window * window) +{ +} + +/*****************************************************************************/ +/* SDL Window Manager function */ +/*****************************************************************************/ +#if 0 +SDL_bool +PSP_GetWindowWMInfo(_THIS, SDL_Window * window, struct SDL_SysWMinfo *info) +{ + if (info->version.major <= SDL_MAJOR_VERSION) { + return SDL_TRUE; + } else { + SDL_SetError("Application not compiled with SDL %d.%d", + SDL_MAJOR_VERSION, SDL_MINOR_VERSION); + return SDL_FALSE; + } + + /* Failed to get window manager information */ + return SDL_FALSE; +} +#endif + + +/* TO Write Me */ +SDL_bool PSP_HasScreenKeyboardSupport(_THIS) +{ + return SDL_FALSE; +} +void PSP_ShowScreenKeyboard(_THIS, SDL_Window *window) +{ +} +void PSP_HideScreenKeyboard(_THIS, SDL_Window *window) +{ +} +SDL_bool PSP_IsScreenKeyboardShown(_THIS, SDL_Window *window) +{ + return SDL_FALSE; +} + + +#endif /* SDL_VIDEO_DRIVER_PSP */ + +/* vi: set ts=4 sw=4 expandtab: */ |