Simplify gfx_display_check_compatibility

This commit is contained in:
libretroadmin 2022-06-20 20:19:16 +02:00
parent 44a52b4617
commit 0356c563b8
3 changed files with 37 additions and 73 deletions

View File

@ -49,12 +49,10 @@ static bool gfx_display_null_font_init_first(
bool is_threaded) bool is_threaded)
{ {
font_data_t **handle = (font_data_t**)font_handle; font_data_t **handle = (font_data_t**)font_handle;
if ((*handle = font_driver_init_first(video_data, return ((*handle = font_driver_init_first(video_data,
font_path, font_size, true, font_path, font_size, true,
is_threaded, is_threaded,
FONT_DRIVER_RENDER_DONT_CARE))) FONT_DRIVER_RENDER_DONT_CARE)));
return true;
return false;
} }
static const float *null_get_default_matrix(void) static const float *null_get_default_matrix(void)
@ -153,93 +151,57 @@ float gfx_display_get_adjusted_scale(
adjusted_scale = (new_width / (float)OZONE_SIDEBAR_WIDTH); adjusted_scale = (new_width / (float)OZONE_SIDEBAR_WIDTH);
} }
#endif #endif
/* Ensure final scale is 'sane' */ /* Ensure final scale is 'sane' */
if (adjusted_scale <= 0.0001f) if (adjusted_scale > 0.0001f)
return 1.0f; return adjusted_scale;
return adjusted_scale; return 1.0f;
} }
/* Check if the current menu driver is compatible /* Check if the current menu driver is compatible
* with your video driver. */ * with your video driver. */
static bool gfx_display_check_compatibility( static bool gfx_display_check_compatibility(
const char *video_driver,
enum gfx_display_driver_type type, enum gfx_display_driver_type type,
bool video_is_threaded) bool video_is_threaded)
{ {
const char *video_driver = video_driver_get_ident();
switch (type) switch (type)
{ {
case GFX_VIDEO_DRIVER_GENERIC: case GFX_VIDEO_DRIVER_GENERIC:
return true; return true;
case GFX_VIDEO_DRIVER_OPENGL: case GFX_VIDEO_DRIVER_OPENGL:
if (string_is_equal(video_driver, "gl")) return string_is_equal(video_driver, "gl");
return true;
break;
case GFX_VIDEO_DRIVER_OPENGL1: case GFX_VIDEO_DRIVER_OPENGL1:
if (string_is_equal(video_driver, "gl1")) return string_is_equal(video_driver, "gl1");
return true;
break;
case GFX_VIDEO_DRIVER_OPENGL_CORE: case GFX_VIDEO_DRIVER_OPENGL_CORE:
if (string_is_equal(video_driver, "glcore")) return string_is_equal(video_driver, "glcore");
return true;
break;
case GFX_VIDEO_DRIVER_VULKAN: case GFX_VIDEO_DRIVER_VULKAN:
if (string_is_equal(video_driver, "vulkan")) return string_is_equal(video_driver, "vulkan");
return true;
break;
case GFX_VIDEO_DRIVER_METAL: case GFX_VIDEO_DRIVER_METAL:
if (string_is_equal(video_driver, "metal")) return string_is_equal(video_driver, "metal");
return true;
break;
case GFX_VIDEO_DRIVER_DIRECT3D8: case GFX_VIDEO_DRIVER_DIRECT3D8:
if (string_is_equal(video_driver, "d3d8")) return string_is_equal(video_driver, "d3d8");
return true;
break;
case GFX_VIDEO_DRIVER_DIRECT3D9_HLSL: case GFX_VIDEO_DRIVER_DIRECT3D9_HLSL:
if (string_is_equal(video_driver, "d3d9_hlsl")) return string_is_equal(video_driver, "d3d9_hlsl");
return true;
break;
case GFX_VIDEO_DRIVER_DIRECT3D9_CG: case GFX_VIDEO_DRIVER_DIRECT3D9_CG:
if (string_is_equal(video_driver, "d3d9_cg")) return string_is_equal(video_driver, "d3d9_cg");
return true;
break;
case GFX_VIDEO_DRIVER_DIRECT3D10: case GFX_VIDEO_DRIVER_DIRECT3D10:
if (string_is_equal(video_driver, "d3d10")) return string_is_equal(video_driver, "d3d10");
return true;
break;
case GFX_VIDEO_DRIVER_DIRECT3D11: case GFX_VIDEO_DRIVER_DIRECT3D11:
if (string_is_equal(video_driver, "d3d11")) return string_is_equal(video_driver, "d3d11");
return true;
break;
case GFX_VIDEO_DRIVER_DIRECT3D12: case GFX_VIDEO_DRIVER_DIRECT3D12:
if (string_is_equal(video_driver, "d3d12")) return string_is_equal(video_driver, "d3d12");
return true;
break;
case GFX_VIDEO_DRIVER_VITA2D: case GFX_VIDEO_DRIVER_VITA2D:
if (string_is_equal(video_driver, "vita2d")) return string_is_equal(video_driver, "vita2d");
return true;
break;
case GFX_VIDEO_DRIVER_CTR: case GFX_VIDEO_DRIVER_CTR:
if (string_is_equal(video_driver, "ctr")) return string_is_equal(video_driver, "ctr");
return true;
break;
case GFX_VIDEO_DRIVER_WIIU: case GFX_VIDEO_DRIVER_WIIU:
if (string_is_equal(video_driver, "gx2")) return string_is_equal(video_driver, "gx2");
return true;
break;
case GFX_VIDEO_DRIVER_GDI: case GFX_VIDEO_DRIVER_GDI:
if (string_is_equal(video_driver, "gdi")) return string_is_equal(video_driver, "gdi");
return true;
break;
case GFX_VIDEO_DRIVER_SWITCH: case GFX_VIDEO_DRIVER_SWITCH:
if (string_is_equal(video_driver, "switch")) return string_is_equal(video_driver, "switch");
return true;
break;
case GFX_VIDEO_DRIVER_RSX: case GFX_VIDEO_DRIVER_RSX:
if (string_is_equal(video_driver, "rsx")) return string_is_equal(video_driver, "rsx");
return true;
break;
} }
return false; return false;
@ -1026,9 +988,7 @@ void gfx_display_rotate_z(gfx_display_t *p_disp,
) )
return; return;
b = (math_matrix_4x4*)dispctx->get_default_mvp(data); if (!(b = (math_matrix_4x4*)dispctx->get_default_mvp(data)))
if (!b)
return; return;
matrix_4x4_rotate_z(matrix_rotated, draw->rotation); matrix_4x4_rotate_z(matrix_rotated, draw->rotation);
@ -1188,6 +1148,12 @@ void gfx_display_draw_keyboard(
}; };
math_matrix_4x4 mymat; math_matrix_4x4 mymat;
gfx_display_ctx_rotate_draw_t rotate_draw; gfx_display_ctx_rotate_draw_t rotate_draw;
#ifdef HAVE_MIST
if(steam_has_osk_open())
return;
#endif
rotate_draw.matrix = &mymat; rotate_draw.matrix = &mymat;
rotate_draw.rotation = 0.0; rotate_draw.rotation = 0.0;
rotate_draw.scale_x = 1.0; rotate_draw.scale_x = 1.0;
@ -1195,10 +1161,6 @@ void gfx_display_draw_keyboard(
rotate_draw.scale_z = 1; rotate_draw.scale_z = 1;
rotate_draw.scale_enable = true; rotate_draw.scale_enable = true;
#ifdef HAVE_MIST
if(steam_has_osk_open()) return;
#endif
gfx_display_draw_quad( gfx_display_draw_quad(
p_disp, p_disp,
userdata, userdata,
@ -1366,10 +1328,11 @@ bool gfx_display_init_first_driver(gfx_display_t *p_disp,
bool video_is_threaded) bool video_is_threaded)
{ {
unsigned i; unsigned i;
const char *video_driver = video_driver_get_ident();
for (i = 0; gfx_display_ctx_drivers[i]; i++) for (i = 0; gfx_display_ctx_drivers[i]; i++)
{ {
if (!gfx_display_check_compatibility( if (!gfx_display_check_compatibility(video_driver,
gfx_display_ctx_drivers[i]->type, gfx_display_ctx_drivers[i]->type,
video_is_threaded)) video_is_threaded))
continue; continue;

View File

@ -5863,7 +5863,8 @@ static bool rgui_set_aspect_ratio(rgui_t *rgui,
} }
#ifdef DJGPP #ifdef DJGPP
if (string_is_equal(driver_ident, "vga")) { if (string_is_equal(driver_ident, "vga"))
{
rgui->frame_buf.width = 320; rgui->frame_buf.width = 320;
rgui->frame_buf.height = 200; rgui->frame_buf.height = 200;
} }

View File

@ -3970,9 +3970,9 @@ const struct retro_subsystem_info *libretro_find_subsystem_info(
unsigned i; unsigned i;
for (i = 0; i < num_info; i++) for (i = 0; i < num_info; i++)
{ {
if (string_is_equal(info[i].ident, ident)) if ( string_is_equal(info[i].ident, ident)
return &info[i]; || string_is_equal(info[i].desc, ident)
else if (string_is_equal(info[i].desc, ident)) )
return &info[i]; return &info[i];
} }