From f906e828ba3655479f5c480ff8623755072a6c5f Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 14 Feb 2016 18:14:51 +0100 Subject: [PATCH] Add SHADER_CTL_SET_PARAMS --- gfx/d3d/render_chain_xdk.cpp | 2 +- gfx/drivers/gl.c | 6 ++--- gfx/video_shader_driver.c | 45 ++++++++++++++++++------------------ gfx/video_shader_driver.h | 5 ++-- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/gfx/d3d/render_chain_xdk.cpp b/gfx/d3d/render_chain_xdk.cpp index 1b4ca6bc35..c830769e73 100644 --- a/gfx/d3d/render_chain_xdk.cpp +++ b/gfx/d3d/render_chain_xdk.cpp @@ -229,7 +229,7 @@ static void renderchain_set_vertices(void *data, unsigned pass, params.fbo_info = NULL; params.fbo_info_cnt = 0; - video_shader_driver_set_params(¶ms); + video_shader_driver_ctl(SHADER_CTL_SET_PARAMS, ¶ms); #endif #endif } diff --git a/gfx/drivers/gl.c b/gfx/drivers/gl.c index 039a57559a..53af1b64ff 100644 --- a/gfx/drivers/gl.c +++ b/gfx/drivers/gl.c @@ -1177,7 +1177,7 @@ static void gl_frame_fbo(gl_t *gl, uint64_t frame_count, params.fbo_info = fbo_tex_info; params.fbo_info_cnt = fbo_tex_info_cnt; - video_shader_driver_set_params(¶ms); + video_shader_driver_ctl(SHADER_CTL_SET_PARAMS, ¶ms); gl->coords.vertices = 4; video_shader_driver_set_coords(NULL, &gl->coords); @@ -1234,7 +1234,7 @@ static void gl_frame_fbo(gl_t *gl, uint64_t frame_count, params.fbo_info = fbo_tex_info; params.fbo_info_cnt = fbo_tex_info_cnt; - video_shader_driver_set_params(¶ms); + video_shader_driver_ctl(SHADER_CTL_SET_PARAMS, ¶ms); gl->coords.vertex = gl->vertex_ptr; @@ -1872,7 +1872,7 @@ static bool gl_frame(void *data, const void *frame, params.fbo_info = NULL; params.fbo_info_cnt = 0; - video_shader_driver_set_params(¶ms); + video_shader_driver_ctl(SHADER_CTL_SET_PARAMS, ¶ms); gl->coords.vertices = 4; video_shader_driver_set_coords(NULL, &gl->coords); diff --git a/gfx/video_shader_driver.c b/gfx/video_shader_driver.c index d8a8ddad7a..de624b2e3f 100644 --- a/gfx/video_shader_driver.c +++ b/gfx/video_shader_driver.c @@ -206,32 +206,33 @@ struct video_shader *video_shader_driver_direct_get_current_shader(void) return current_shader->get_current_shader(shader_data); } -void video_shader_driver_set_params(video_shader_ctx_params_t *params) -{ - if (!current_shader || !current_shader->set_params) - return; - - current_shader->set_params( - params->data, - shader_data, - params->width, - params->height, - params->tex_width, - params->tex_height, - params->out_width, - params->out_height, - params->frame_counter, - params->info, - params->prev_info, - params->feedback_info, - params->fbo_info, - params->fbo_info_cnt); -} - bool video_shader_driver_ctl(enum video_shader_driver_ctl_state state, void *data) { switch (state) { + case SHADER_CTL_SET_PARAMS: + { + video_shader_ctx_params_t *params = (video_shader_ctx_params_t*)data; + + if (!current_shader || !current_shader->set_params) + return false; + current_shader->set_params( + params->data, + shader_data, + params->width, + params->height, + params->tex_width, + params->tex_height, + params->out_width, + params->out_height, + params->frame_counter, + params->info, + params->prev_info, + params->feedback_info, + params->fbo_info, + params->fbo_info_cnt); + } + break; case SHADER_CTL_NONE: default: break; diff --git a/gfx/video_shader_driver.h b/gfx/video_shader_driver.h index de5fa4c304..bcd24915d5 100644 --- a/gfx/video_shader_driver.h +++ b/gfx/video_shader_driver.h @@ -32,7 +32,8 @@ extern "C" { enum video_shader_driver_ctl_state { - SHADER_CTL_NONE = 0 + SHADER_CTL_NONE = 0, + SHADER_CTL_SET_PARAMS }; typedef struct shader_backend @@ -167,8 +168,6 @@ bool video_shader_driver_get_feedback_pass(unsigned *pass); struct video_shader *video_shader_driver_direct_get_current_shader(void); -void video_shader_driver_set_params(video_shader_ctx_params_t *params); - bool video_shader_driver_ctl(enum video_shader_driver_ctl_state state, void *data); #ifdef __cplusplus