(D3D) Refactor renderchain code some more

This commit is contained in:
twinaphex 2015-04-05 04:54:50 +02:00
parent 4ba073424c
commit bf196212f3
3 changed files with 26 additions and 7 deletions

View File

@ -165,8 +165,7 @@ static void d3d_deinit_chain(d3d_video_t *d3d)
#ifdef _XBOX #ifdef _XBOX
renderchain_free(d3d); renderchain_free(d3d);
#else #else
if (d3d->chain) renderchain_deinit(d3d->chain);
delete (renderchain_t *)d3d->chain;
d3d->chain = NULL; d3d->chain = NULL;
#endif #endif
} }
@ -1010,7 +1009,8 @@ static bool d3d_init_chain(d3d_video_t *d3d, const video_info_t *video_info)
return false; return false;
} }
#else #else
d3d->chain = new renderchain_t(); d3d->chain = renderchain_new();
if (!d3d->chain) if (!d3d->chain)
return false; return false;

View File

@ -59,6 +59,25 @@ void renderchain_free(void *data)
state_tracker_free(chain->tracker); state_tracker_free(chain->tracker);
} }
void *renderchain_new(void)
{
renderchain_t *renderchain = new renderchain_t();
if (!renderchain)
return NULL;
return renderchain;
}
void renderchain_deinit(void *data)
{
renderchain_t *renderchain = (renderchain_t*)data;
if (!renderchain)
return;
delete (renderchain_t *)renderchain;
}
bool renderchain_init(void *data, const video_info_t *video_info, bool renderchain_init(void *data, const video_info_t *video_info,
void *dev_, void *dev_,
void *shader_context, void *shader_context,

View File

@ -104,6 +104,10 @@ typedef struct renderchain
void renderchain_free(void *data); void renderchain_free(void *data);
void *renderchain_new(void);
void renderchain_deinit(void *data);
bool renderchain_init(void *data, const video_info_t *video_info, bool renderchain_init(void *data, const video_info_t *video_info,
void *dev_, void *dev_,
void *shader_data, void *shader_data,
@ -133,10 +137,6 @@ void renderchain_end_render(void *data);
bool renderchain_render(void *chain_data, const void *data, bool renderchain_render(void *chain_data, const void *data,
unsigned width, unsigned height, unsigned pitch, unsigned rotation); unsigned width, unsigned height, unsigned pitch, unsigned rotation);
D3DTEXTUREFILTERTYPE renderchain_translate_filter(unsigned type);
D3DTEXTUREFILTERTYPE renderchain_translate_filter(bool smooth);
bool renderchain_create_first_pass(void *data, bool renderchain_create_first_pass(void *data,
const void *info_data, PixelFormat fmt); const void *info_data, PixelFormat fmt);