wined3d: Move destroying the glsl vshader into a separate function.
This commit is contained in:
parent
bf03075b5e
commit
af4edef5e1
|
@ -445,13 +445,7 @@ static ULONG WINAPI IWineD3DVertexShaderImpl_AddRef(IWineD3DVertexShader *iface
|
|||
return IWineD3DBaseShaderImpl_AddRef((IWineD3DBaseShader *) iface);
|
||||
}
|
||||
|
||||
static ULONG WINAPI IWineD3DVertexShaderImpl_Release(IWineD3DVertexShader *iface) {
|
||||
IWineD3DVertexShaderImpl *This = (IWineD3DVertexShaderImpl *)iface;
|
||||
ULONG ref;
|
||||
ref = IWineD3DBaseShaderImpl_Release((IWineD3DBaseShader *) iface);
|
||||
|
||||
if (ref == 0) {
|
||||
if (This->baseShader.shader_mode == SHADER_GLSL && This->baseShader.prgId != 0) {
|
||||
static void destroy_glsl_vshader(IWineD3DVertexShaderImpl *This) {
|
||||
struct list *linked_programs = &This->baseShader.linked_programs;
|
||||
|
||||
TRACE("Deleting linked programs\n");
|
||||
|
@ -466,6 +460,15 @@ static ULONG WINAPI IWineD3DVertexShaderImpl_Release(IWineD3DVertexShader *iface
|
|||
GL_EXTCALL(glDeleteObjectARB(This->baseShader.prgId));
|
||||
checkGLcall("glDeleteObjectARB");
|
||||
}
|
||||
static ULONG WINAPI IWineD3DVertexShaderImpl_Release(IWineD3DVertexShader *iface) {
|
||||
IWineD3DVertexShaderImpl *This = (IWineD3DVertexShaderImpl *)iface;
|
||||
ULONG ref;
|
||||
ref = IWineD3DBaseShaderImpl_Release((IWineD3DBaseShader *) iface);
|
||||
|
||||
if (ref == 0) {
|
||||
if (This->baseShader.shader_mode == SHADER_GLSL && This->baseShader.prgId != 0) {
|
||||
destroy_glsl_vshader(This);
|
||||
}
|
||||
HeapFree(GetProcessHeap(), 0, This);
|
||||
}
|
||||
return ref;
|
||||
|
|
Loading…
Reference in New Issue