mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-16 11:06:49 +01:00
Report the correct desktop video mode on the iMX6
This commit is contained in:
parent
50cc4efec8
commit
0e65e62367
@ -150,8 +150,6 @@ MX6_GLES_LoadLibrary(_THIS, const char *egl_path) {
|
||||
LOAD_VIV_FUNC(fbDestroyPixmap);
|
||||
|
||||
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);
|
||||
if (!_this->egl_data->egl_display) {
|
||||
|
@ -124,6 +124,36 @@ VideoBootStrap MX6_bootstrap = {
|
||||
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 */
|
||||
/*****************************************************************************/
|
||||
@ -138,16 +168,9 @@ MX6_VideoInit(_THIS)
|
||||
if (data == NULL) {
|
||||
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(current_mode);
|
||||
display.desktop_mode = current_mode;
|
||||
display.current_mode = current_mode;
|
||||
display.driverdata = data;
|
||||
@ -156,6 +179,7 @@ MX6_VideoInit(_THIS)
|
||||
if (SDL_GL_LoadLibrary(NULL) < 0) {
|
||||
return -1;
|
||||
}
|
||||
MX6_UpdateDisplay(_this);
|
||||
|
||||
#ifdef SDL_INPUT_LINUXEV
|
||||
SDL_EVDEV_Init();
|
||||
|
@ -35,8 +35,6 @@ typedef struct SDL_DisplayData
|
||||
{
|
||||
EGLNativeDisplayType native_display;
|
||||
EGLDisplay egl_display;
|
||||
int width;
|
||||
int height;
|
||||
} SDL_DisplayData;
|
||||
|
||||
typedef struct SDL_WindowData
|
||||
|
Loading…
Reference in New Issue
Block a user