mirror of https://github.com/encounter/SDL.git
Fixed using uninitialized display data in iMX6 initialization
This commit is contained in:
parent
24c86b5501
commit
2bfb3c3e82
|
@ -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) {
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue