From 2630727daa3f0b15e4ba9164e31258a866141416 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 17 Jul 2020 00:44:30 +0200 Subject: [PATCH] Start preparing groundwork for separate context_drivers --- retroarch.c | 41 ++++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/retroarch.c b/retroarch.c index 102e5d18b9..091e3a41de 100644 --- a/retroarch.c +++ b/retroarch.c @@ -575,7 +575,7 @@ static const video_driver_t *video_drivers[] = { NULL, }; -static const gfx_ctx_driver_t *gfx_ctx_drivers[] = { +static const gfx_ctx_driver_t *gfx_ctx_gl_drivers[] = { #if defined(ORBIS) &orbis_ctx, #endif @@ -32983,24 +32983,6 @@ void video_driver_get_window_title(char *buf, unsigned len) } } -/** - * find_video_context_driver_driver_index: - * @ident : Identifier of resampler driver to find. - * - * Finds graphics context driver index by @ident name. - * - * Returns: graphics context driver index if driver was found, otherwise - * -1. - **/ -static int find_video_context_driver_index(const char *ident) -{ - unsigned i; - for (i = 0; gfx_ctx_drivers[i]; i++) - if (string_is_equal_noncase(ident, gfx_ctx_drivers[i]->ident)) - return i; - return -1; -} - /** * video_context_driver_init: * @data : Input data. @@ -33052,12 +33034,23 @@ static const gfx_ctx_driver_t *gl_context_driver_init_first(void *data, const char *ident, enum gfx_ctx_api api, unsigned major, unsigned minor, bool hw_render_ctx, void **ctx_data) { + unsigned j; struct rarch_state *p_rarch = &rarch_st; - int i = find_video_context_driver_index(ident); + int i = -1; + + for (j = 0; gfx_ctx_gl_drivers[j]; j++) + { + if (string_is_equal_noncase(ident, gfx_ctx_gl_drivers[j]->ident)) + { + i = j; + break; + } + } if (i >= 0) { - const gfx_ctx_driver_t *ctx = video_context_driver_init(data, gfx_ctx_drivers[i], ident, + const gfx_ctx_driver_t *ctx = video_context_driver_init(data, + gfx_ctx_gl_drivers[i], ident, api, major, minor, hw_render_ctx, ctx_data); if (ctx) { @@ -33066,10 +33059,10 @@ static const gfx_ctx_driver_t *gl_context_driver_init_first(void *data, } } - for (i = 0; gfx_ctx_drivers[i]; i++) + for (i = 0; gfx_ctx_gl_drivers[i]; i++) { const gfx_ctx_driver_t *ctx = - video_context_driver_init(data, gfx_ctx_drivers[i], ident, + video_context_driver_init(data, gfx_ctx_gl_drivers[i], ident, api, major, minor, hw_render_ctx, ctx_data); if (ctx) @@ -33106,8 +33099,10 @@ const gfx_ctx_driver_t *video_context_driver_init_first(void *data, case GFX_CTX_OPENGL_ES_API: case GFX_CTX_OPENVG_API: case GFX_CTX_VULKAN_API: + case GFX_CTX_METAL_API: return gl_context_driver_init_first(data, ident, api, major, minor, hw_render_ctx, ctx_data); + case GFX_CTX_NONE: default: break; }