(HLSL) Cleanups

This commit is contained in:
twinaphex 2018-04-23 15:51:24 +02:00
parent 282b4ba21b
commit d03ff06cf3

View File

@ -69,7 +69,7 @@
#endif
#define set_param_2f(param, xy, constanttable) if (param) { ID3DXConstantTable_SetFloatArray(constanttable, d3dr, param, xy, 2); }
#define set_param_2f(param, xy, constanttable) ID3DXConstantTable_SetFloatArray(constanttable, d3dr, param, xy, 2)
struct shader_program_hlsl_data
{
@ -178,10 +178,16 @@ static void hlsl_set_params(void *dat, void *shader_data)
const struct video_tex_info *fbo_info = (const struct video_tex_info*)_fbo_info;
hlsl_shader_data_t *hlsl = (hlsl_shader_data_t*)shader_data;
LPDIRECT3DDEVICE9 d3dr = (LPDIRECT3DDEVICE9)hlsl->dev;
struct shader_program_hlsl_data *program = NULL;
if (!hlsl || !d3dr)
return;
program = &hlsl->prg[hlsl->active_idx];
if (!program)
return;
ori_size[0] = (float)width;
ori_size[1] = (float)height;
tex_size[0] = (float)tex_width;
@ -189,34 +195,40 @@ static void hlsl_set_params(void *dat, void *shader_data)
out_size[0] = (float)out_width;
out_size[1] = (float)out_height;
ID3DXConstantTable_SetDefaults(
hlsl->prg[hlsl->active_idx].f_ctable, d3dr);
ID3DXConstantTable_SetDefaults(
hlsl->prg[hlsl->active_idx].v_ctable, d3dr);
ID3DXConstantTable_SetDefaults(program->f_ctable, d3dr);
ID3DXConstantTable_SetDefaults(program->v_ctable, d3dr);
set_param_2f(hlsl->prg[hlsl->active_idx].vid_size_f, ori_size, hlsl->prg[hlsl->active_idx].f_ctable);
set_param_2f(hlsl->prg[hlsl->active_idx].tex_size_f, tex_size, hlsl->prg[hlsl->active_idx].f_ctable);
set_param_2f(hlsl->prg[hlsl->active_idx].out_size_f, out_size, hlsl->prg[hlsl->active_idx].f_ctable);
if (program->vid_size_f)
set_param_2f(program->vid_size_f, ori_size, program->f_ctable);
if (program->tex_size_f)
set_param_2f(program->tex_size_f, tex_size, program->f_ctable);
if (program->out_size_f)
set_param_2f(program->out_size_f, out_size, program->f_ctable);
if (hlsl->prg[hlsl->active_idx].frame_cnt_f)
d3d9x_constant_table_set_float(hlsl->prg[hlsl->active_idx].f_ctable,
d3dr,hlsl->prg[hlsl->active_idx].frame_cnt_f, frame_cnt);
if (program->frame_cnt_f)
d3d9x_constant_table_set_float(program->f_ctable,
d3dr, program->frame_cnt_f, frame_cnt);
if (hlsl->prg[hlsl->active_idx].frame_dir_f)
d3d9x_constant_table_set_float(hlsl->prg[hlsl->active_idx].f_ctable,
d3dr, hlsl->prg[hlsl->active_idx].frame_dir_f, state_manager_frame_is_reversed() ? -1.0 : 1.0);
if (program->frame_dir_f)
d3d9x_constant_table_set_float(program->f_ctable,
d3dr, program->frame_dir_f,
state_manager_frame_is_reversed() ? -1.0 : 1.0);
set_param_2f(hlsl->prg[hlsl->active_idx].vid_size_v, ori_size, hlsl->prg[hlsl->active_idx].v_ctable);
set_param_2f(hlsl->prg[hlsl->active_idx].tex_size_v, tex_size, hlsl->prg[hlsl->active_idx].v_ctable);
set_param_2f(hlsl->prg[hlsl->active_idx].out_size_v, out_size, hlsl->prg[hlsl->active_idx].v_ctable);
if (program->vid_size_v)
set_param_2f(program->vid_size_v, ori_size, program->v_ctable);
if (program->tex_size_v)
set_param_2f(program->tex_size_v, tex_size, program->v_ctable);
if (program->out_size_v)
set_param_2f(program->out_size_v, out_size, program->v_ctable);
if (hlsl->prg[hlsl->active_idx].frame_cnt_v)
d3d9x_constant_table_set_float(hlsl->prg[hlsl->active_idx].v_ctable,
d3dr, hlsl->prg[hlsl->active_idx].frame_cnt_v, frame_cnt);
if (program->frame_cnt_v)
d3d9x_constant_table_set_float(program->v_ctable,
d3dr, program->frame_cnt_v, frame_cnt);
if (hlsl->prg[hlsl->active_idx].frame_dir_v)
d3d9x_constant_table_set_float(hlsl->prg[hlsl->active_idx].v_ctable,
d3dr, hlsl->prg[hlsl->active_idx].frame_dir_v, state_manager_frame_is_reversed() ? -1.0 : 1.0);
if (program->frame_dir_v)
d3d9x_constant_table_set_float(program->v_ctable,
d3dr, program->frame_dir_v,
state_manager_frame_is_reversed() ? -1.0 : 1.0);
/* TODO - set lookup textures/FBO textures/state parameters/etc */
}