Create d3d9_renderchain_destroy_passes_and_luts

This commit is contained in:
twinaphex 2018-05-17 17:59:42 +02:00
parent c022190895
commit 08425d978c
3 changed files with 29 additions and 48 deletions

View File

@ -644,30 +644,7 @@ void d3d9_cg_renderchain_free(void *data)
return;
d3d9_cg_destroy_resources(chain);
if (chain->chain.passes)
{
unsigned i;
for (i = 0; i < chain->chain.passes->count; i++)
{
if (chain->chain.passes->data[i].attrib_map)
free(chain->chain.passes->data[i].attrib_map);
}
shader_pass_vector_list_free(chain->chain.passes);
chain->chain.passes = NULL;
}
lut_info_vector_list_free(chain->chain.luts);
unsigned_vector_list_free(chain->chain.bound_tex);
unsigned_vector_list_free(chain->chain.bound_vert);
chain->chain.luts = NULL;
chain->chain.bound_tex = NULL;
chain->chain.bound_vert = NULL;
d3d9_renderchain_destroy_passes_and_luts(&chain->chain);
d3d9_cg_deinit_context_state(chain);
free(chain);

View File

@ -765,30 +765,7 @@ static void hlsl_d3d9_renderchain_free(void *data)
hlsl_deinit(chain->shader_pipeline);
d3d9_hlsl_destroy_resources(chain);
if (chain->chain.passes)
{
unsigned i;
for (i = 0; i < chain->chain.passes->count; i++)
{
if (chain->chain.passes->data[i].attrib_map)
free(chain->chain.passes->data[i].attrib_map);
}
shader_pass_vector_list_free(chain->chain.passes);
chain->chain.passes = NULL;
}
lut_info_vector_list_free(chain->chain.luts);
unsigned_vector_list_free(chain->chain.bound_tex);
unsigned_vector_list_free(chain->chain.bound_vert);
chain->chain.luts = NULL;
chain->chain.bound_tex = NULL;
chain->chain.bound_vert = NULL;
d3d9_renderchain_destroy_passes_and_luts(&chain->chain);
free(chain);
}

View File

@ -140,6 +140,33 @@ static INLINE bool d3d9_renderchain_add_lut(d3d9_renderchain_t *chain,
return true;
}
static INLINE void d3d9_renderchain_destroy_passes_and_luts(
d3d9_renderchain_t *chain)
{
if (chain->passes)
{
unsigned i;
for (i = 0; i < chain->passes->count; i++)
{
if (chain->passes->data[i].attrib_map)
free(chain->passes->data[i].attrib_map);
}
shader_pass_vector_list_free(chain->passes);
chain->passes = NULL;
}
lut_info_vector_list_free(chain->luts);
unsigned_vector_list_free(chain->bound_tex);
unsigned_vector_list_free(chain->bound_vert);
chain->luts = NULL;
chain->bound_tex = NULL;
chain->bound_vert = NULL;
}
static INLINE void d3d9_renderchain_add_lut_internal(
d3d9_renderchain_t *chain,
unsigned index, unsigned i)