Expose the EGL display and window for Vivante SDL windows

This commit is contained in:
Sam Lantinga 2016-01-16 21:58:49 -08:00
parent 0a1999dfd2
commit e5d575b933
3 changed files with 23 additions and 5 deletions

0
CMakeLists.txt Executable file → Normal file
View file

View file

@ -106,6 +106,10 @@ typedef struct ANativeWindow ANativeWindow;
typedef void *EGLSurface;
#endif
#if defined(SDL_VIDEO_DRIVER_VIVANTE)
#include "SDL_egl.h"
#endif
/**
* These are the various supported windowing subsystems
*/
@ -120,7 +124,8 @@ typedef enum
SDL_SYSWM_WAYLAND,
SDL_SYSWM_MIR,
SDL_SYSWM_WINRT,
SDL_SYSWM_ANDROID
SDL_SYSWM_ANDROID,
SDL_SYSWM_VIVANTE
} SDL_SYSWM_TYPE;
/**
@ -166,6 +171,13 @@ struct SDL_SysWMmsg
int dummy;
/* No UIKit window events yet */
} uikit;
#endif
#if defined(SDL_VIDEO_DRIVER_VIVANTE)
struct
{
int dummy;
/* No Vivante window events yet */
} vivante;
#endif
/* Can't have an empty union */
int dummy;
@ -259,6 +271,14 @@ struct SDL_SysWMinfo
} android;
#endif
#if defined(SDL_VIDEO_DRIVER_VIVANTE)
struct
{
EGLNativeDisplayType display;
EGLNativeWindowType window;
} vivante;
#endif
/* Can't have an empty union */
int dummy;
} info;

View file

@ -366,12 +366,13 @@ VIVANTE_HideWindow(_THIS, SDL_Window * window)
SDL_bool
VIVANTE_GetWindowWMInfo(_THIS, SDL_Window * window, struct SDL_SysWMinfo *info)
{
/*
SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
SDL_DisplayData *displaydata = SDL_GetDisplayDriverData(0);
if (info->version.major == SDL_MAJOR_VERSION &&
info->version.minor == SDL_MINOR_VERSION) {
info->subsystem = SDL_SYSWM_VIVANTE;
info->info.vivante.display = displaydata->native_display;
info->info.vivante.window = data->native_window;
return SDL_TRUE;
} else {
@ -379,9 +380,6 @@ VIVANTE_GetWindowWMInfo(_THIS, SDL_Window * window, struct SDL_SysWMinfo *info)
SDL_MAJOR_VERSION, SDL_MINOR_VERSION);
return SDL_FALSE;
}
*/
SDL_Unsupported();
return SDL_FALSE;
}
/*****************************************************************************/