Add SHADER_CTL_SET_PARAMS

This commit is contained in:
twinaphex 2016-02-14 18:14:51 +01:00
parent 8b714895a8
commit f906e828ba
4 changed files with 29 additions and 29 deletions

View File

@ -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(&params);
video_shader_driver_ctl(SHADER_CTL_SET_PARAMS, &params);
#endif
#endif
}

View File

@ -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(&params);
video_shader_driver_ctl(SHADER_CTL_SET_PARAMS, &params);
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(&params);
video_shader_driver_ctl(SHADER_CTL_SET_PARAMS, &params);
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(&params);
video_shader_driver_ctl(SHADER_CTL_SET_PARAMS, &params);
gl->coords.vertices = 4;
video_shader_driver_set_coords(NULL, &gl->coords);

View File

@ -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;

View File

@ -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