mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
Added fbdev resolution detection and term cursor blinking disabling to mali_fbdev driver
This commit is contained in:
parent
4d6c241c0c
commit
ac0cfc8b0f
@ -19,8 +19,16 @@
|
||||
#include "../gl_common.h"
|
||||
|
||||
#include <EGL/egl.h>
|
||||
#include <EGL/fbdev_window.h>
|
||||
#include <signal.h>
|
||||
|
||||
//Includes and defines for framebuffer size retrieval
|
||||
#include <sys/ioctl.h>
|
||||
#include <linux/fb.h>
|
||||
#include <linux/vt.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
static EGLContext g_egl_ctx;
|
||||
static EGLSurface g_egl_surf;
|
||||
static EGLDisplay g_egl_dpy;
|
||||
@ -69,6 +77,14 @@ static void gfx_ctx_mali_fbdev_destroy(void *data)
|
||||
g_config = 0;
|
||||
g_quit = 0;
|
||||
g_resize = false;
|
||||
|
||||
//Clear framebuffer and set cursor on again
|
||||
int fd = open("/dev/tty", O_RDWR);
|
||||
ioctl(fd,VT_ACTIVATE,5);
|
||||
ioctl(fd,VT_ACTIVATE,1);
|
||||
close (fd);
|
||||
system("setterm -cursor on");
|
||||
|
||||
}
|
||||
|
||||
static void gfx_ctx_mali_fbdev_get_video_size(void *data,
|
||||
@ -110,7 +126,11 @@ static bool gfx_ctx_mali_fbdev_init(void *data)
|
||||
EGLint num_config;
|
||||
EGLint egl_version_major, egl_version_minor;
|
||||
EGLint format;
|
||||
|
||||
|
||||
//Disable cursor blinking so it's not visible in RetroArch
|
||||
system("setterm -cursor off");
|
||||
|
||||
RARCH_LOG("[Mali fbdev]: Initializing context\n");
|
||||
|
||||
if ((g_egl_dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY)) == EGL_NO_DISPLAY)
|
||||
@ -188,11 +208,17 @@ static bool gfx_ctx_mali_fbdev_set_video_mode(void *data,
|
||||
unsigned width, unsigned height,
|
||||
bool fullscreen)
|
||||
{
|
||||
/* Pick some arbitrary default. */
|
||||
if (!width || !fullscreen)
|
||||
width = 1280;
|
||||
if (!height || !fullscreen)
|
||||
height = 720;
|
||||
struct fb_var_screeninfo vinfo;
|
||||
int fb = open("/dev/fb0", O_RDWR, 0);
|
||||
if (ioctl(fb, FBIOGET_VSCREENINFO, &vinfo) < 0)
|
||||
{
|
||||
RARCH_ERR("Error obtainig framebuffer info.\n");
|
||||
goto error;
|
||||
}
|
||||
close (fb);
|
||||
|
||||
width = vinfo.xres;
|
||||
height = vinfo.yres;
|
||||
|
||||
g_width = width;
|
||||
g_height = height;
|
||||
|
Loading…
x
Reference in New Issue
Block a user