diff --git a/gfx/d3d/d3d.cpp b/gfx/d3d/d3d.cpp index 392f18c174..164ae32565 100644 --- a/gfx/d3d/d3d.cpp +++ b/gfx/d3d/d3d.cpp @@ -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; diff --git a/gfx/d3d/render_chain.cpp b/gfx/d3d/render_chain.cpp index 68d1779d30..effbd78f37 100644 --- a/gfx/d3d/render_chain.cpp +++ b/gfx/d3d/render_chain.cpp @@ -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, diff --git a/gfx/d3d/render_chain.h b/gfx/d3d/render_chain.h index 99b290cd04..26eadf8cae 100644 --- a/gfx/d3d/render_chain.h +++ b/gfx/d3d/render_chain.h @@ -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);