mirror of
https://github.com/libretro/RetroArch
synced 2025-04-10 15:45:19 +00:00
(D3D) Free vertex declaration in d3d_vertex_buffer_free
This commit is contained in:
parent
d1af8742f6
commit
74a1920fda
@ -147,11 +147,26 @@ void *d3d_vertex_buffer_lock(LPDIRECT3DVERTEXBUFFER vertbuf)
|
|||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
void d3d_vertex_buffer_free(LPDIRECT3DVERTEXBUFFER buf)
|
void d3d_vertex_buffer_free(void *vertex_data, void *vertex_declaration)
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_D3D9
|
||||||
|
LPDIRECT3DVERTEXDECLARATION vertex_decl = (LPDIRECT3DVERTEXDECLARATION)vertex_declaration;
|
||||||
|
#endif
|
||||||
|
LPDIRECT3DVERTEXBUFFER buf = (LPDIRECT3DVERTEXBUFFER)vertex_data;
|
||||||
|
|
||||||
if (buf)
|
if (buf)
|
||||||
|
{
|
||||||
buf->Release();
|
buf->Release();
|
||||||
buf = NULL;
|
buf = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_D3D9
|
||||||
|
if (vertex_decl)
|
||||||
|
{
|
||||||
|
vertex_decl->Release();
|
||||||
|
vertex_decl = NULL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void d3d_set_stream_source(LPDIRECT3DDEVICE dev, unsigned stream_no,
|
void d3d_set_stream_source(LPDIRECT3DDEVICE dev, unsigned stream_no,
|
||||||
|
@ -29,7 +29,7 @@ LPDIRECT3DVERTEXBUFFER d3d_vertex_buffer_new(LPDIRECT3DDEVICE dev,
|
|||||||
void *d3d_vertex_buffer_lock(LPDIRECT3DVERTEXBUFFER vertbuf);
|
void *d3d_vertex_buffer_lock(LPDIRECT3DVERTEXBUFFER vertbuf);
|
||||||
void d3d_vertex_buffer_unlock(LPDIRECT3DVERTEXBUFFER vertbuf);
|
void d3d_vertex_buffer_unlock(LPDIRECT3DVERTEXBUFFER vertbuf);
|
||||||
|
|
||||||
void d3d_vertex_buffer_free(LPDIRECT3DVERTEXBUFFER buf);
|
void d3d_vertex_buffer_free(void *vertex_data, void *vertex_declaration);
|
||||||
|
|
||||||
LPDIRECT3DTEXTURE d3d_texture_new(LPDIRECT3DDEVICE dev,
|
LPDIRECT3DTEXTURE d3d_texture_new(LPDIRECT3DDEVICE dev,
|
||||||
const char *path, unsigned width, unsigned height,
|
const char *path, unsigned width, unsigned height,
|
||||||
|
@ -773,7 +773,7 @@ void renderchain_clear(void *data)
|
|||||||
if (chain->prev.tex[i])
|
if (chain->prev.tex[i])
|
||||||
d3d_texture_free(chain->prev.tex[i]);
|
d3d_texture_free(chain->prev.tex[i]);
|
||||||
if (chain->prev.vertex_buf[i])
|
if (chain->prev.vertex_buf[i])
|
||||||
d3d_vertex_buffer_free(chain->prev.vertex_buf[i]);
|
d3d_vertex_buffer_free(chain->prev.vertex_buf[i], NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (chain->passes[0].vertex_decl)
|
if (chain->passes[0].vertex_decl)
|
||||||
@ -783,10 +783,8 @@ void renderchain_clear(void *data)
|
|||||||
{
|
{
|
||||||
if (chain->passes[i].tex)
|
if (chain->passes[i].tex)
|
||||||
d3d_texture_free(chain->passes[i].tex);
|
d3d_texture_free(chain->passes[i].tex);
|
||||||
if (chain->passes[i].vertex_buf)
|
if (chain->passes[i].vertex_buf || chain->passes[i].vertex_decl)
|
||||||
d3d_vertex_buffer_free(chain->passes[i].vertex_buf);
|
d3d_vertex_buffer_free(chain->passes[i].vertex_buf, chain->passes[i].vertex_decl);
|
||||||
if (chain->passes[i].vertex_decl)
|
|
||||||
chain->passes[i].vertex_decl->Release();
|
|
||||||
renderchain_destroy_shader(chain, i);
|
renderchain_destroy_shader(chain, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,13 +25,7 @@ static void renderchain_clear(void *data)
|
|||||||
d3d_video_t *d3d = (d3d_video_t*)data;
|
d3d_video_t *d3d = (d3d_video_t*)data;
|
||||||
|
|
||||||
d3d_texture_free(d3d->tex);
|
d3d_texture_free(d3d->tex);
|
||||||
d3d_vertex_buffer_free(d3d->vertex_buf);
|
d3d_vertex_buffer_free(d3d->vertex_buf, d3d->vertex_decl);
|
||||||
|
|
||||||
#ifdef _XBOX360
|
|
||||||
if (d3d->vertex_decl)
|
|
||||||
d3d->vertex_decl->Release();
|
|
||||||
d3d->vertex_decl = NULL;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void renderchain_free(void *data)
|
static void renderchain_free(void *data)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user