Stefan Dösinger : wined3d: Implement IWineD3DVertexBuffer::UnLoad.
Alexandre Julliard
julliard at winehq.org
Mon Jan 14 09:33:18 CST 2008
Module: wine
Branch: master
Commit: 15245a74b646543a641077b57b056108f69d23a7
URL: http://source.winehq.org/git/wine.git/?a=commit;h=15245a74b646543a641077b57b056108f69d23a7
Author: Stefan Dösinger <stefan at codeweavers.com>
Date: Tue Jan 8 15:23:35 2008 +0100
wined3d: Implement IWineD3DVertexBuffer::UnLoad.
---
dlls/wined3d/vertexbuffer.c | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)
diff --git a/dlls/wined3d/vertexbuffer.c b/dlls/wined3d/vertexbuffer.c
index b8687e0..07ca2a0 100644
--- a/dlls/wined3d/vertexbuffer.c
+++ b/dlls/wined3d/vertexbuffer.c
@@ -597,7 +597,22 @@ static void WINAPI IWineD3DVertexBufferImpl_PreLoad(IWineD3DVertexBuffer *if
}
static void WINAPI IWineD3DVertexBufferImpl_UnLoad(IWineD3DVertexBuffer *iface) {
- IWineD3DResourceImpl_UnLoad((IWineD3DResource *)iface);
+ IWineD3DVertexBufferImpl *This = (IWineD3DVertexBufferImpl *) iface;
+ IWineD3DDeviceImpl *device = This->resource.wineD3DDevice;
+ TRACE("(%p)\n", This);
+
+ /* This is easy: The whole content is shadowed in This->resource.allocatedMemory,
+ * so we only have to destroy the vbo. Only do it if we have a vbo, which implies
+ * that vbos are supported
+ */
+ if(This->vbo) {
+ ActivateContext(device, device->lastActiveRenderTarget, CTXUSAGE_RESOURCELOAD);
+ ENTER_GL();
+ GL_EXTCALL(glDeleteBuffersARB(1, &This->vbo));
+ checkGLcall("glDeleteBuffersARB");
+ LEAVE_GL();
+ This->vbo = 0;
+ }
}
static WINED3DRESOURCETYPE WINAPI IWineD3DVertexBufferImpl_GetType(IWineD3DVertexBuffer *iface) {
More information about the wine-cvs
mailing list