From a024da61f4642e21be9486f9442e2dfccb8fa52a Mon Sep 17 00:00:00 2001 From: twinaphex Date: Thu, 17 May 2018 17:27:56 +0200 Subject: [PATCH] More code de-duplication --- gfx/drivers_renderchain/d3d9_cg_renderchain.c | 36 +------------------ .../d3d9_hlsl_renderchain.c | 35 +----------------- gfx/drivers_renderchain/d3d9_renderchain.h | 34 ++++++++++++++++++ 3 files changed, 36 insertions(+), 69 deletions(-) diff --git a/gfx/drivers_renderchain/d3d9_cg_renderchain.c b/gfx/drivers_renderchain/d3d9_cg_renderchain.c index 8b17ee79bc..58aa0db903 100644 --- a/gfx/drivers_renderchain/d3d9_cg_renderchain.c +++ b/gfx/drivers_renderchain/d3d9_cg_renderchain.c @@ -1097,40 +1097,6 @@ static void cg_d3d9_renderchain_set_vertices( vp_width, vp_height); } -static void cg_d3d9_renderchain_unbind_all(cg_renderchain_t *chain) -{ - unsigned i; - - /* Have to be a bit anal about it. - * Render targets hate it when they have filters apparently. - */ - for (i = 0; i < chain->chain.bound_tex->count; i++) - { - d3d9_set_sampler_minfilter(chain->chain.dev, - chain->chain.bound_tex->data[i], D3DTEXF_POINT); - d3d9_set_sampler_magfilter(chain->chain.dev, - chain->chain.bound_tex->data[i], D3DTEXF_POINT); - d3d9_set_texture(chain->chain.dev, - chain->chain.bound_tex->data[i], NULL); - } - - for (i = 0; i < chain->chain.bound_vert->count; i++) - d3d9_set_stream_source(chain->chain.dev, - chain->chain.bound_vert->data[i], 0, 0, 0); - - if (chain->chain.bound_tex) - { - unsigned_vector_list_free(chain->chain.bound_tex); - chain->chain.bound_tex = unsigned_vector_list_new(); - } - - if (chain->chain.bound_vert) - { - unsigned_vector_list_free(chain->chain.bound_vert); - chain->chain.bound_vert = unsigned_vector_list_new(); - } -} - static void cg_d3d9_renderchain_set_params( cg_renderchain_t *chain, struct shader_pass *pass, @@ -1228,7 +1194,7 @@ static void cg_d3d9_renderchain_render_pass( d3d9_set_sampler_minfilter(chain->chain.dev, 0, D3DTEXF_POINT); d3d9_set_sampler_magfilter(chain->chain.dev, 0, D3DTEXF_POINT); - cg_d3d9_renderchain_unbind_all(chain); + d3d9_renderchain_unbind_all(&chain->chain); } static bool d3d9_cg_renderchain_render( diff --git a/gfx/drivers_renderchain/d3d9_hlsl_renderchain.c b/gfx/drivers_renderchain/d3d9_hlsl_renderchain.c index fa7ac0465a..436baf07f8 100644 --- a/gfx/drivers_renderchain/d3d9_hlsl_renderchain.c +++ b/gfx/drivers_renderchain/d3d9_hlsl_renderchain.c @@ -954,39 +954,6 @@ static void hlsl_d3d9_renderchain_set_final_viewport( d3d9_hlsl_recompute_pass_sizes(chain->chain.dev, chain, d3d); } -static void hlsl_d3d9_renderchain_unbind_all(hlsl_d3d9_renderchain_t *chain) -{ - unsigned i; - - /* Have to be a bit anal about it. - * Render targets hate it when they have filters apparently. - */ - for (i = 0; i < chain->chain.bound_tex->count; i++) - { - d3d9_set_sampler_minfilter(chain->chain.dev, - chain->chain.bound_tex->data[i], D3DTEXF_POINT); - d3d9_set_sampler_magfilter(chain->chain.dev, - chain->chain.bound_tex->data[i], D3DTEXF_POINT); - d3d9_set_texture(chain->chain.dev, chain->chain.bound_tex->data[i], NULL); - } - - for (i = 0; i < chain->chain.bound_vert->count; i++) - d3d9_set_stream_source(chain->chain.dev, - chain->chain.bound_vert->data[i], 0, 0, 0); - - if (chain->chain.bound_tex) - { - unsigned_vector_list_free(chain->chain.bound_tex); - chain->chain.bound_tex = unsigned_vector_list_new(); - } - - if (chain->chain.bound_vert) - { - unsigned_vector_list_free(chain->chain.bound_vert); - chain->chain.bound_vert = unsigned_vector_list_new(); - } -} - static void hlsl_d3d9_renderchain_render_pass( hlsl_d3d9_renderchain_t *chain, struct shader_pass *pass, @@ -1059,7 +1026,7 @@ static void hlsl_d3d9_renderchain_render_pass( d3d9_set_sampler_minfilter(chain->chain.dev, 0, D3DTEXF_POINT); d3d9_set_sampler_magfilter(chain->chain.dev, 0, D3DTEXF_POINT); - hlsl_d3d9_renderchain_unbind_all(chain); + d3d9_renderchain_unbind_all(&chain->chain); } static void d3d9_hlsl_renderchain_start_render(hlsl_d3d9_renderchain_t *chain) diff --git a/gfx/drivers_renderchain/d3d9_renderchain.h b/gfx/drivers_renderchain/d3d9_renderchain.h index b245a438b8..39bc4125de 100644 --- a/gfx/drivers_renderchain/d3d9_renderchain.h +++ b/gfx/drivers_renderchain/d3d9_renderchain.h @@ -154,6 +154,40 @@ static INLINE void d3d9_cg_renderchain_add_lut_internal( unsigned_vector_list_append(chain->bound_tex, index); } +static INLINE void d3d9_renderchain_unbind_all(d3d9_renderchain_t *chain) +{ + unsigned i; + + /* Have to be a bit anal about it. + * Render targets hate it when they have filters apparently. + */ + for (i = 0; i < chain->bound_tex->count; i++) + { + d3d9_set_sampler_minfilter(chain->dev, + chain->bound_tex->data[i], D3DTEXF_POINT); + d3d9_set_sampler_magfilter(chain->dev, + chain->bound_tex->data[i], D3DTEXF_POINT); + d3d9_set_texture(chain->dev, + chain->bound_tex->data[i], NULL); + } + + for (i = 0; i < chain->bound_vert->count; i++) + d3d9_set_stream_source(chain->dev, + chain->bound_vert->data[i], 0, 0, 0); + + if (chain->bound_tex) + { + unsigned_vector_list_free(chain->bound_tex); + chain->bound_tex = unsigned_vector_list_new(); + } + + if (chain->bound_vert) + { + unsigned_vector_list_free(chain->bound_vert); + chain->bound_vert = unsigned_vector_list_new(); + } +} + static INLINE void d3d9_init_renderchain(d3d9_renderchain_t *chain) { chain->passes = shader_pass_vector_list_new();