(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
renderchain_free(d3d);
#else
if (d3d->chain)
delete (renderchain_t *)d3d->chain;
renderchain_deinit(d3d->chain);
d3d->chain = NULL;
#endif
}
@ -1010,7 +1009,8 @@ static bool d3d_init_chain(d3d_video_t *d3d, const video_info_t *video_info)
return false;
}
#else
d3d->chain = new renderchain_t();
d3d->chain = renderchain_new();
if (!d3d->chain)
return false;

View File

@ -59,6 +59,25 @@ void renderchain_free(void *data)
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,
void *dev_,
void *shader_context,

View File

@ -104,6 +104,10 @@ typedef struct renderchain
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,
void *dev_,
void *shader_data,
@ -133,10 +137,6 @@ void renderchain_end_render(void *data);
bool renderchain_render(void *chain_data, const void *data,
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,
const void *info_data, PixelFormat fmt);