Add SHADER_CTL_GET_IDENT

This commit is contained in:
twinaphex 2016-02-14 22:17:00 +01:00
parent debb5dd0ce
commit e790b503d9
3 changed files with 19 additions and 12 deletions

View File

@ -2654,6 +2654,7 @@ static void *gl_init(const video_info_t *video, const input_driver_t **input, vo
video_shader_ctx_wrap_t wrap_info;
video_shader_ctx_filter_t shader_filter;
video_shader_ctx_info_t shader_info;
video_shader_ctx_ident_t ident_info;
unsigned win_width, win_height, temp_width = 0, temp_height = 0;
bool force_smooth = false;
const char *vendor = NULL;
@ -2792,8 +2793,9 @@ static void *gl_init(const video_info_t *video, const input_driver_t **input, vo
if (!video_shader_driver_ctl(SHADER_CTL_INIT_FIRST, NULL))
goto error;
RARCH_LOG("[GL]: Default shader backend found: %s.\n",
video_shader_driver_get_ident());
video_shader_driver_ctl(SHADER_CTL_GET_IDENT, &ident_info);
RARCH_LOG("[GL]: Default shader backend found: %s.\n", ident_info.ident);
if (!gl_shader_init(gl))
{

View File

@ -58,13 +58,6 @@ const shader_backend_t *shader_ctx_find_driver(const char *ident)
return NULL;
}
const char *video_shader_driver_get_ident(void)
{
if (!current_shader)
return NULL;
return current_shader->ident;
}
unsigned video_shader_driver_get_prev_textures(void)
{
if (!current_shader)
@ -76,6 +69,14 @@ bool video_shader_driver_ctl(enum video_shader_driver_ctl_state state, void *dat
{
switch (state)
{
case SHADER_CTL_GET_IDENT:
{
video_shader_ctx_ident_t *ident = (video_shader_ctx_ident_t*)data;
if (!current_shader || !ident)
return false;
ident->ident = current_shader->ident;
}
break;
case SHADER_CTL_GET_CURRENT_SHADER:
{
video_shader_ctx_t *shader = (video_shader_ctx_t*)data;

View File

@ -71,7 +71,8 @@ enum video_shader_driver_ctl_state
SHADER_CTL_USE,
SHADER_CTL_WRAP_TYPE,
SHADER_CTL_GET_CURRENT_SHADER,
SHADER_CTL_DIRECT_GET_CURRENT_SHADER
SHADER_CTL_DIRECT_GET_CURRENT_SHADER,
SHADER_CTL_GET_IDENT
};
typedef struct shader_backend
@ -176,6 +177,11 @@ typedef struct video_shader_ctx
struct video_shader *data;
} video_shader_ctx_t;
typedef struct video_shader_ctx_ident
{
const char *ident;
} video_shader_ctx_ident_t;
extern const shader_backend_t gl_glsl_backend;
extern const shader_backend_t hlsl_backend;
extern const shader_backend_t gl_cg_backend;
@ -191,8 +197,6 @@ extern const shader_backend_t shader_null_backend;
**/
const shader_backend_t *shader_ctx_find_driver(const char *ident);
const char *video_shader_driver_get_ident(void);
unsigned video_shader_driver_get_prev_textures(void);
bool video_shader_driver_ctl(enum video_shader_driver_ctl_state state, void *data);