Report the correct desktop video mode on the iMX6
parent
50cc4efec8
commit
0e65e62367
|
@ -150,8 +150,6 @@ MX6_GLES_LoadLibrary(_THIS, const char *egl_path) {
|
||||||
LOAD_VIV_FUNC(fbDestroyPixmap);
|
LOAD_VIV_FUNC(fbDestroyPixmap);
|
||||||
|
|
||||||
displaydata = SDL_GetDisplayDriverData(0);
|
displaydata = SDL_GetDisplayDriverData(0);
|
||||||
displaydata->native_display = egl_viv_data->fbGetDisplayByIndex(0);
|
|
||||||
egl_viv_data->fbGetDisplayGeometry(displaydata->native_display, &displaydata->width, &displaydata->height);
|
|
||||||
|
|
||||||
_this->egl_data->egl_display = _this->egl_data->eglGetDisplay(displaydata->native_display);
|
_this->egl_data->egl_display = _this->egl_data->eglGetDisplay(displaydata->native_display);
|
||||||
if (!_this->egl_data->egl_display) {
|
if (!_this->egl_data->egl_display) {
|
||||||
|
|
|
@ -124,6 +124,36 @@ VideoBootStrap MX6_bootstrap = {
|
||||||
MX6_Create
|
MX6_Create
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void
|
||||||
|
MX6_UpdateDisplay(_THIS)
|
||||||
|
{
|
||||||
|
SDL_VideoDisplay *display = &_this->displays[0];
|
||||||
|
SDL_DisplayData *data = (SDL_DisplayData*)display->driverdata;
|
||||||
|
EGLNativeDisplayType native_display = egl_viv_data->fbGetDisplayByIndex(0);
|
||||||
|
SDL_DisplayMode current_mode;
|
||||||
|
int pitch, bpp;
|
||||||
|
unsigned long pixels;
|
||||||
|
|
||||||
|
/* Store the native EGL display */
|
||||||
|
data->native_display = native_display;
|
||||||
|
|
||||||
|
SDL_zero(current_mode);
|
||||||
|
egl_viv_data->fbGetDisplayInfo(native_display, ¤t_mode.w, ¤t_mode.h, &pixels, &pitch, &bpp);
|
||||||
|
/* FIXME: How do we query refresh rate? */
|
||||||
|
current_mode.refresh_rate = 60;
|
||||||
|
|
||||||
|
switch (bpp)
|
||||||
|
{
|
||||||
|
default: /* Is another format used? */
|
||||||
|
case 16:
|
||||||
|
current_mode.format = SDL_PIXELFORMAT_RGB565;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
display->desktop_mode = current_mode;
|
||||||
|
display->current_mode = current_mode;
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* SDL Video and Display initialization/handling functions */
|
/* SDL Video and Display initialization/handling functions */
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -139,15 +169,8 @@ MX6_VideoInit(_THIS)
|
||||||
return SDL_OutOfMemory();
|
return SDL_OutOfMemory();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Actual data will be set in SDL_GL_LoadLibrary call below */
|
|
||||||
SDL_zero(current_mode);
|
|
||||||
current_mode.w = 0;
|
|
||||||
current_mode.h = 0;
|
|
||||||
current_mode.refresh_rate = 60;
|
|
||||||
current_mode.format = SDL_PIXELFORMAT_RGB565;
|
|
||||||
current_mode.driverdata = NULL;
|
|
||||||
|
|
||||||
SDL_zero(display);
|
SDL_zero(display);
|
||||||
|
SDL_zero(current_mode);
|
||||||
display.desktop_mode = current_mode;
|
display.desktop_mode = current_mode;
|
||||||
display.current_mode = current_mode;
|
display.current_mode = current_mode;
|
||||||
display.driverdata = data;
|
display.driverdata = data;
|
||||||
|
@ -156,6 +179,7 @@ MX6_VideoInit(_THIS)
|
||||||
if (SDL_GL_LoadLibrary(NULL) < 0) {
|
if (SDL_GL_LoadLibrary(NULL) < 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
MX6_UpdateDisplay(_this);
|
||||||
|
|
||||||
#ifdef SDL_INPUT_LINUXEV
|
#ifdef SDL_INPUT_LINUXEV
|
||||||
SDL_EVDEV_Init();
|
SDL_EVDEV_Init();
|
||||||
|
|
|
@ -35,8 +35,6 @@ typedef struct SDL_DisplayData
|
||||||
{
|
{
|
||||||
EGLNativeDisplayType native_display;
|
EGLNativeDisplayType native_display;
|
||||||
EGLDisplay egl_display;
|
EGLDisplay egl_display;
|
||||||
int width;
|
|
||||||
int height;
|
|
||||||
} SDL_DisplayData;
|
} SDL_DisplayData;
|
||||||
|
|
||||||
typedef struct SDL_WindowData
|
typedef struct SDL_WindowData
|
||||||
|
|
Loading…
Reference in New Issue