diff --git a/gfx/d3d/d3d.cpp b/gfx/d3d/d3d.cpp index 8a691b4c14..e66370c1cd 100644 --- a/gfx/d3d/d3d.cpp +++ b/gfx/d3d/d3d.cpp @@ -80,7 +80,6 @@ static void d3d_free_overlay(d3d_video_t *d3d, overlay_t *overlay); #ifdef _XBOX static void d3d_reinit_renderchain(void *data, const video_info_t *video); -static void renderchain_free(void *data); #endif void d3d_make_d3dpp(void *data, const video_info_t *info, diff --git a/gfx/d3d/render_chain.cpp b/gfx/d3d/render_chain.cpp index 7ff8e60cf8..2bfac81ffe 100644 --- a/gfx/d3d/render_chain.cpp +++ b/gfx/d3d/render_chain.cpp @@ -755,7 +755,7 @@ void renderchain_free(void *data) void *renderchain_new(void) { - renderchain_t *renderchain = new renderchain_t(); + renderchain_t *renderchain = (renderchain_t*)calloc(1, sizeof(*renderchain)); if (!renderchain) return NULL; @@ -796,10 +796,8 @@ void renderchain_deinit(void *data) { renderchain_t *renderchain = (renderchain_t*)data; - if (!renderchain) - return; - - delete (renderchain_t *)renderchain; + if (renderchain) + free(renderchain); } static void renderchain_log_info(void *data, const void *info_data) diff --git a/gfx/d3d/render_chain_xdk.h b/gfx/d3d/render_chain_xdk.h index 4f50e0cf6b..a8f3f596e6 100644 --- a/gfx/d3d/render_chain_xdk.h +++ b/gfx/d3d/render_chain_xdk.h @@ -18,6 +18,11 @@ #include #include +typdef struct xdk_renderchain +{ + void *empty; +} xdk_renderchain_t; + static void renderchain_set_mvp(void *data, unsigned vp_width, unsigned vp_height, unsigned rotation) { @@ -217,6 +222,19 @@ void renderchain_free(void *data) void renderchain_deinit(void *data) { + xdk_renderchain_t *renderchain = (xdk_renderchain_t*)data; + + if (renderchain) + free(renderchain); +} + +void *renderchain_new(void) +{ + xdk_renderchain_t *renderchain = (xdk_renderchain_t*)calloc(1, sizeof(*renderchain)); + if (!renderchain) + return NULL; + + return renderchain; } void renderchain_deinit_shader(void)