Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Expose the EGL display and window for Vivante SDL windows
- Loading branch information
Showing
with
23 additions
and
5 deletions.
-
0
CMakeLists.txt
-
+21
−1
include/SDL_syswm.h
-
+2
−4
src/video/vivante/SDL_vivantevideo.c
|
@@ -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; |
|
|
|
@@ -366,22 +366,20 @@ 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 { |
|
|
SDL_SetError("Application not compiled with SDL %d.%d\n", |
|
|
SDL_MAJOR_VERSION, SDL_MINOR_VERSION); |
|
|
return SDL_FALSE; |
|
|
} |
|
|
*/ |
|
|
SDL_Unsupported(); |
|
|
return SDL_FALSE; |
|
|
} |
|
|
|
|
|
/*****************************************************************************/ |
|
|