From 48bbe31bc63de67ef118f3d9f40b710178cb78b9 Mon Sep 17 00:00:00 2001 From: Jaylon Gowie Date: Tue, 20 Jul 2021 21:45:21 -0500 Subject: [PATCH] Add PreSwapCallback for updating SceCommonDialog --- src/video/vita/SDL_vitagl.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/video/vita/SDL_vitagl.c b/src/video/vita/SDL_vitagl.c index ae6087bda..c3fc5d918 100644 --- a/src/video/vita/SDL_vitagl.c +++ b/src/video/vita/SDL_vitagl.c @@ -44,6 +44,23 @@ } \ } while (0) +void +VITA_GL_KeyboardCallback(ScePigletPreSwapData *data) +{ + SceCommonDialogUpdateParam commonDialogParam; + SDL_zero(commonDialogParam); + commonDialogParam.renderTarget.colorFormat = data->colorFormat; + commonDialogParam.renderTarget.surfaceType = data->surfaceType; + commonDialogParam.renderTarget.colorSurfaceData = data->colorSurfaceData; + commonDialogParam.renderTarget.depthSurfaceData = data->depthSurfaceData; + commonDialogParam.renderTarget.width = data->width; + commonDialogParam.renderTarget.height = data->height; + commonDialogParam.renderTarget.strideInPixels = data->strideInPixels; + commonDialogParam.displaySyncObject = data->displaySyncObject; + + sceCommonDialogUpdate(&commonDialogParam); +} + int VITA_GL_LoadLibrary(_THIS, const char *path) { @@ -78,6 +95,7 @@ VITA_GL_CreateContext(_THIS, SDL_Window * window) EGLSurface surface; EGLConfig config; EGLint num_configs; + PFNEGLPIGLETVITASETPRESWAPCALLBACKSCEPROC preSwapCallback; int i; const EGLint contextAttribs[] = { @@ -140,6 +158,9 @@ VITA_GL_CreateContext(_THIS, SDL_Window * window) _this->gl_data->context = context; _this->gl_data->surface = surface; + preSwapCallback = (PFNEGLPIGLETVITASETPRESWAPCALLBACKSCEPROC) eglGetProcAddress("eglPigletVitaSetPreSwapCallbackSCE"); + preSwapCallback(VITA_GL_KeyboardCallback); + return context; }