wined3d: Implement IWineD3DTexture::UnLoad.
This commit is contained in:
parent
0ca65c7bc0
commit
5d7b8dafb8
|
@ -143,7 +143,27 @@ static void WINAPI IWineD3DTextureImpl_PreLoad(IWineD3DTexture *iface) {
|
|||
}
|
||||
|
||||
static void WINAPI IWineD3DTextureImpl_UnLoad(IWineD3DTexture *iface) {
|
||||
IWineD3DResourceImpl_UnLoad((IWineD3DResource *)iface);
|
||||
unsigned int i;
|
||||
IWineD3DTextureImpl *This = (IWineD3DTextureImpl *)iface;
|
||||
IWineD3DDeviceImpl *device = This->resource.wineD3DDevice;
|
||||
TRACE("(%p)\n", This);
|
||||
|
||||
/* Unload all the surfaces and reset the texture name. If UnLoad was called on the
|
||||
* surface before, this one will be a NOP and vice versa. Unloading an unloaded
|
||||
* surface is fine
|
||||
*/
|
||||
for (i = 0; i < This->baseTexture.levels; i++) {
|
||||
IWineD3DSurface_UnLoad(This->surfaces[i]);
|
||||
IWineD3DSurface_SetGlTextureDesc(This->surfaces[i], 0, IWineD3DTexture_GetTextureDimensions(iface));
|
||||
}
|
||||
|
||||
if(This->baseTexture.textureName) {
|
||||
ActivateContext(device, device->lastActiveRenderTarget, CTXUSAGE_RESOURCELOAD);
|
||||
ENTER_GL();
|
||||
glDeleteTextures(1, &This->baseTexture.textureName);
|
||||
This->baseTexture.textureName = 0;
|
||||
LEAVE_GL();
|
||||
}
|
||||
}
|
||||
|
||||
static WINED3DRESOURCETYPE WINAPI IWineD3DTextureImpl_GetType(IWineD3DTexture *iface) {
|
||||
|
|
Loading…
Reference in New Issue