Fixed using uninitialized display data in iMX6 initialization

This commit is contained in:
Sam Lantinga 2014-09-12 15:09:33 -07:00
parent 24c86b5501
commit 2bfb3c3e82
3 changed files with 21 additions and 26 deletions

View File

@ -48,12 +48,12 @@ if (!egl_viv_data->NAME) \
/* EGL implementation of SDL OpenGL support */ /* EGL implementation of SDL OpenGL support */
int int
MX6_GLES_LoadLibrary(_THIS, const char *egl_path) { MX6_GLES_LoadLibrary(_THIS, const char *egl_path)
{
/* The definitions of egl_dll_handle and dll_handle were interchanged for some reason. /* The definitions of egl_dll_handle and dll_handle were interchanged for some reason.
Just left them as is for compatibility */ Just left them as is for compatibility */
void *dll_handle = NULL, *egl_dll_handle = NULL; void *dll_handle = NULL, *egl_dll_handle = NULL;
char *path = NULL; char *path = NULL;
SDL_DisplayData *displaydata;
if (_this->egl_data) { if (_this->egl_data) {
return SDL_SetError("OpenGL ES context already created"); return SDL_SetError("OpenGL ES context already created");
@ -75,7 +75,7 @@ MX6_GLES_LoadLibrary(_THIS, const char *egl_path) {
} }
if (egl_dll_handle == NULL) { if (egl_dll_handle == NULL) {
if(_this->gl_config.profile_mask == SDL_GL_CONTEXT_PROFILE_ES) { if (_this->gl_config.profile_mask == SDL_GL_CONTEXT_PROFILE_ES) {
if (_this->gl_config.major_version > 1) { if (_this->gl_config.major_version > 1) {
path = DEFAULT_OGL_ES2; path = DEFAULT_OGL_ES2;
egl_dll_handle = SDL_LoadObject(path); egl_dll_handle = SDL_LoadObject(path);
@ -149,9 +149,7 @@ MX6_GLES_LoadLibrary(_THIS, const char *egl_path) {
LOAD_VIV_FUNC(fbGetPixmapInfo); LOAD_VIV_FUNC(fbGetPixmapInfo);
LOAD_VIV_FUNC(fbDestroyPixmap); LOAD_VIV_FUNC(fbDestroyPixmap);
displaydata = SDL_GetDisplayDriverData(0); _this->egl_data->egl_display = _this->egl_data->eglGetDisplay(egl_viv_data->fbGetDisplayByIndex(0));
_this->egl_data->egl_display = _this->egl_data->eglGetDisplay(displaydata->native_display);
if (!_this->egl_data->egl_display) { if (!_this->egl_data->egl_display) {
return SDL_SetError("Could not get EGL display"); return SDL_SetError("Could not get EGL display");
} }
@ -160,8 +158,6 @@ MX6_GLES_LoadLibrary(_THIS, const char *egl_path) {
return SDL_SetError("Could not initialize EGL"); return SDL_SetError("Could not initialize EGL");
} }
displaydata->egl_display = _this->egl_data->egl_display;
_this->gl_config.driver_loaded = 1; _this->gl_config.driver_loaded = 1;
if (path) { if (path) {

View File

@ -34,7 +34,6 @@ typedef struct SDL_VideoData
typedef struct SDL_DisplayData typedef struct SDL_DisplayData
{ {
EGLNativeDisplayType native_display; EGLNativeDisplayType native_display;
EGLDisplay egl_display;
} SDL_DisplayData; } SDL_DisplayData;
typedef struct SDL_WindowData typedef struct SDL_WindowData