mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
Create d3d_free_vertex_shader/d3d_free_pixel_shader
This commit is contained in:
parent
e03e578212
commit
d7df6b3729
@ -1023,6 +1023,34 @@ void d3d_set_texture(LPDIRECT3DDEVICE dev, unsigned sampler,
|
||||
#endif
|
||||
}
|
||||
|
||||
void d3d_free_vertex_shader(LPDIRECT3DDEVICE dev, void *data)
|
||||
{
|
||||
#ifdef HAVE_D3D9
|
||||
IDirect3DVertexShader9 *vs = (IDirect3DVertexShader9*)data;
|
||||
if (!dev || !vs)
|
||||
return;
|
||||
#ifdef __cplusplus
|
||||
vs->Release();
|
||||
#else
|
||||
IDirect3DVertexShader9_Release(vs);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
void d3d_free_pixel_shader(LPDIRECT3DDEVICE dev, void *data)
|
||||
{
|
||||
#ifdef HAVE_D3D9
|
||||
IDirect3DPixelShader9 *ps = (IDirect3DPixelShader9*)data;
|
||||
if (!dev || !ps)
|
||||
return;
|
||||
#ifdef __cplusplus
|
||||
ps->Release();
|
||||
#else
|
||||
IDirect3DPixelShader9_Release(ps);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
bool d3d_set_pixel_shader(LPDIRECT3DDEVICE dev, void *data)
|
||||
{
|
||||
#ifdef HAVE_D3D9
|
||||
|
@ -93,6 +93,10 @@ void d3d_unlock_rectangle(LPDIRECT3DTEXTURE tex);
|
||||
void d3d_set_texture(LPDIRECT3DDEVICE dev, unsigned sampler,
|
||||
void *tex_data);
|
||||
|
||||
void d3d_free_pixel_shader(LPDIRECT3DDEVICE dev, void *data);
|
||||
|
||||
void d3d_free_vertex_shader(LPDIRECT3DDEVICE dev, void *data);
|
||||
|
||||
bool d3d_set_pixel_shader(LPDIRECT3DDEVICE dev, void *data);
|
||||
|
||||
bool d3d_set_vertex_shader(LPDIRECT3DDEVICE dev, unsigned index,
|
||||
|
@ -505,7 +505,8 @@ static HRESULT xdk360_video_font_create_shaders(xdk360_video_font_t * font)
|
||||
break;
|
||||
}
|
||||
}
|
||||
font->s_FontLocals.m_pFontVertexShader->Release();
|
||||
|
||||
d3d_free_vertex_shader(font->s_FontLocals.m_pFontVertexShader);
|
||||
}
|
||||
|
||||
font->s_FontLocals.m_pFontVertexShader = NULL;
|
||||
@ -608,9 +609,9 @@ static void xdk360_free_font(void *data, bool is_threaded)
|
||||
font->m_TranslatorTable = NULL;
|
||||
|
||||
if (font->s_FontLocals.m_pFontPixelShader)
|
||||
font->s_FontLocals.m_pFontPixelShader->Release();
|
||||
d3d_free_pixel_shader(font->s_FontLocals.m_pFontPixelShader);
|
||||
if (font->s_FontLocals.m_pFontVertexShader)
|
||||
font->s_FontLocals.m_pFontVertexShader->Release();
|
||||
d3d_free_vertex_shader(font->s_FontLocals.m_pFontVertexShader);
|
||||
if (font->s_FontLocals.m_pFontVertexDecl)
|
||||
d3d_vertex_declaration_free(font->s_FontLocals.m_pFontVertexDecl);
|
||||
|
||||
|
@ -89,14 +89,6 @@ typedef struct hlsl_shader_data hlsl_shader_data_t;
|
||||
#define IDirect3DDevice9_CreateVertexShader(p, a, b) ((p)->CreateVertexShader(a, b))
|
||||
#endif
|
||||
|
||||
#ifndef IDirect3DPixelShader9_Release
|
||||
#define IDirect3DPixelShader9_Release(p) ((p)->Release())
|
||||
#endif
|
||||
|
||||
#ifndef IDirect3DVertexShader9_Release
|
||||
#define IDirect3DVertexShader9_Release(p) ((p)->Release())
|
||||
#endif
|
||||
|
||||
#ifndef ID3DXConstantTable_SetMatrix
|
||||
#define ID3DXConstantTable_SetMatrix(p,a,b,c) ((p)->SetMatrix(a,b,c))
|
||||
#endif
|
||||
@ -405,18 +397,18 @@ static void hlsl_deinit_progs(hlsl_shader_data_t *hlsl)
|
||||
for (i = 1; i < RARCH_HLSL_MAX_SHADERS; i++)
|
||||
{
|
||||
if (hlsl->prg[i].fprg && hlsl->prg[i].fprg != hlsl->prg[0].fprg)
|
||||
IDirect3DPixelShader9_Release(hlsl->prg[i].fprg);
|
||||
d3d_free_pixel_shader(hlsl->prg[i].fprg);
|
||||
if (hlsl->prg[i].vprg && hlsl->prg[i].vprg != hlsl->prg[0].vprg)
|
||||
IDirect3DVertexShader9_Release(hlsl->prg[i].vprg);
|
||||
d3d_free_vertex_shader(hlsl->prg[i].vprg);
|
||||
|
||||
hlsl->prg[i].fprg = NULL;
|
||||
hlsl->prg[i].vprg = NULL;
|
||||
}
|
||||
|
||||
if (hlsl->prg[0].fprg)
|
||||
IDirect3DPixelShader9_Release(hlsl->prg[0].fprg);
|
||||
d3d_free_pixel_shader(hlsl->prg[0].fprg);
|
||||
if (hlsl->prg[0].vprg)
|
||||
IDirect3DVertexShader9_Release(hlsl->prg[0].vprg);
|
||||
d3d_free_vertex_shader(hlsl->prg[0].vprg);
|
||||
|
||||
hlsl->prg[0].fprg = NULL;
|
||||
hlsl->prg[0].vprg = NULL;
|
||||
|
Loading…
x
Reference in New Issue
Block a user