From 5c0cb15856209e501c227e9ca3eb6a6e1c6cf168 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 17 Nov 2015 23:24:56 +0100 Subject: [PATCH] Create d3d_vertex_declaration_free --- gfx/d3d/d3d.cpp | 8 +++++--- gfx/d3d/d3d_wrapper.cpp | 10 ++++++++++ gfx/d3d/d3d_wrapper.h | 2 ++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/gfx/d3d/d3d.cpp b/gfx/d3d/d3d.cpp index 2c71240de0..112dc5ef06 100644 --- a/gfx/d3d/d3d.cpp +++ b/gfx/d3d/d3d.cpp @@ -1249,9 +1249,11 @@ static void d3d_overlay_render(d3d_video_t *d3d, overlay_t *overlay) d3d_enable_blend_func(d3d->dev); #ifndef _XBOX1 - d3d->dev->CreateVertexDeclaration(vElems, &vertex_decl); - d3d_set_vertex_declaration(d3d->dev, vertex_decl); - vertex_decl->Release(); + if (d3d_vertex_declaration_new(d3d->dev, vElems, &vertex_decl)) + { + d3d_set_vertex_declaration(d3d->dev, vertex_decl); + d3d_vertex_declaration_free(vertex_decl); + } #endif d3d_set_stream_source(d3d->dev, 0, overlay->vert_buf, diff --git a/gfx/d3d/d3d_wrapper.cpp b/gfx/d3d/d3d_wrapper.cpp index 9088cff6dc..750c21c74d 100644 --- a/gfx/d3d/d3d_wrapper.cpp +++ b/gfx/d3d/d3d_wrapper.cpp @@ -105,6 +105,16 @@ void d3d_texture_free(LPDIRECT3DTEXTURE tex) tex = NULL; } +void d3d_vertex_declaration_free(void *data) +{ + LPDIRECT3DVERTEXDECLARATION *vertex_decl = (LPDIRECT3DVERTEXDECLARATION*)data; + + if (!vertex_decl) + return; + + vertex_decl->Release(); +} + bool d3d_vertex_declaration_new(LPDIRECT3DDEVICE dev, const void *vertex_data, void **decl_data) { diff --git a/gfx/d3d/d3d_wrapper.h b/gfx/d3d/d3d_wrapper.h index f0e3188ef8..db3ef21132 100644 --- a/gfx/d3d/d3d_wrapper.h +++ b/gfx/d3d/d3d_wrapper.h @@ -104,6 +104,8 @@ void d3d_disable_blend_func(void *data); void d3d_set_vertex_declaration(void *data, void *vertex_data); +void d3d_vertex_declaration_free(void *data); + void d3d_enable_alpha_blend_texture_func(void *data); void d3d_frame_postprocess(void *data);