diff options
Diffstat (limited to '3rdparty/SDL2/src/video/psp/SDL_pspgl.c')
-rw-r--r-- | 3rdparty/SDL2/src/video/psp/SDL_pspgl.c | 211 |
1 files changed, 0 insertions, 211 deletions
diff --git a/3rdparty/SDL2/src/video/psp/SDL_pspgl.c b/3rdparty/SDL2/src/video/psp/SDL_pspgl.c deleted file mode 100644 index e4f81e9ee47..00000000000 --- a/3rdparty/SDL2/src/video/psp/SDL_pspgl.c +++ /dev/null @@ -1,211 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 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 - -#include <stdlib.h> -#include <string.h> - -#include "SDL_error.h" -#include "SDL_pspvideo.h" -#include "SDL_pspgl_c.h" - -/*****************************************************************************/ -/* SDL OpenGL/OpenGL ES functions */ -/*****************************************************************************/ -#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_GL_LoadLibrary(_THIS, const char *path) -{ - if (!_this->gl_config.driver_loaded) { - _this->gl_config.driver_loaded = 1; - } - - return 0; -} - -/* pspgl doesn't provide this call, so stub it out since SDL requires it. -#define GLSTUB(func,params) void func params {} - -GLSTUB(glOrtho,(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, - GLdouble zNear, GLdouble zFar)) -*/ -void * -PSP_GL_GetProcAddress(_THIS, const char *proc) -{ - return eglGetProcAddress(proc); -} - -void -PSP_GL_UnloadLibrary(_THIS) -{ - eglTerminate(_this->gl_data->display); -} - -static EGLint width = 480; -static EGLint height = 272; - -SDL_GLContext -PSP_GL_CreateContext(_THIS, SDL_Window * window) -{ - - SDL_WindowData *wdata = (SDL_WindowData *) window->driverdata; - - EGLint attribs[32]; - EGLDisplay display; - EGLContext context; - EGLSurface surface; - EGLConfig config; - EGLint num_configs; - int i; - - - /* EGL init taken from glutCreateWindow() in PSPGL's glut.c. */ - EGLCHK(display = eglGetDisplay(0)); - EGLCHK(eglInitialize(display, NULL, NULL)); - wdata->uses_gles = SDL_TRUE; - window->flags |= SDL_WINDOW_FULLSCREEN; - - /* Setup the config based on SDL's current values. */ - i = 0; - attribs[i++] = EGL_RED_SIZE; - attribs[i++] = _this->gl_config.red_size; - attribs[i++] = EGL_GREEN_SIZE; - attribs[i++] = _this->gl_config.green_size; - attribs[i++] = EGL_BLUE_SIZE; - attribs[i++] = _this->gl_config.blue_size; - attribs[i++] = EGL_DEPTH_SIZE; - attribs[i++] = _this->gl_config.depth_size; - - if (_this->gl_config.alpha_size) - { - attribs[i++] = EGL_ALPHA_SIZE; - attribs[i++] = _this->gl_config.alpha_size; - } - if (_this->gl_config.stencil_size) - { - attribs[i++] = EGL_STENCIL_SIZE; - attribs[i++] = _this->gl_config.stencil_size; - } - - attribs[i++] = EGL_NONE; - - EGLCHK(eglChooseConfig(display, attribs, &config, 1, &num_configs)); - - if (num_configs == 0) - { - SDL_SetError("No valid EGL configs for requested mode"); - return 0; - } - - EGLCHK(eglGetConfigAttrib(display, config, EGL_WIDTH, &width)); - EGLCHK(eglGetConfigAttrib(display, config, EGL_HEIGHT, &height)); - - EGLCHK(context = eglCreateContext(display, config, NULL, NULL)); - EGLCHK(surface = eglCreateWindowSurface(display, config, 0, NULL)); - EGLCHK(eglMakeCurrent(display, surface, surface, context)); - - _this->gl_data->display = display; - _this->gl_data->context = context; - _this->gl_data->surface = surface; - - - return context; -} - -int -PSP_GL_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context) -{ - if (!eglMakeCurrent(_this->gl_data->display, _this->gl_data->surface, - _this->gl_data->surface, _this->gl_data->context)) - { - return SDL_SetError("Unable to make EGL context current"); - } - return 0; -} - -int -PSP_GL_SetSwapInterval(_THIS, int interval) -{ - EGLBoolean status; - status = eglSwapInterval(_this->gl_data->display, interval); - if (status == EGL_TRUE) { - /* Return success to upper level */ - _this->gl_data->swapinterval = interval; - return 0; - } - /* Failed to set swap interval */ - return SDL_SetError("Unable to set the EGL swap interval"); -} - -int -PSP_GL_GetSwapInterval(_THIS) -{ - return _this->gl_data->swapinterval; -} - -void -PSP_GL_SwapWindow(_THIS, SDL_Window * window) -{ - eglSwapBuffers(_this->gl_data->display, _this->gl_data->surface); -} - -void -PSP_GL_DeleteContext(_THIS, SDL_GLContext context) -{ - SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata; - EGLBoolean status; - - if (phdata->egl_initialized != SDL_TRUE) { - SDL_SetError("PSP: GLES initialization failed, no OpenGL ES support"); - return; - } - - /* Check if OpenGL ES connection has been initialized */ - if (_this->gl_data->display != EGL_NO_DISPLAY) { - if (context != EGL_NO_CONTEXT) { - status = eglDestroyContext(_this->gl_data->display, context); - if (status != EGL_TRUE) { - /* Error during OpenGL ES context destroying */ - SDL_SetError("PSP: OpenGL ES context destroy error"); - return; - } - } - } - - return; -} - -#endif /* SDL_VIDEO_DRIVER_PSP */ - -/* vi: set ts=4 sw=4 expandtab: */ |