Module: wine Branch: master Commit: 8eeb513b1a0e7a4f7963612f0305850499c9ec7d URL: http://source.winehq.org/git/wine.git/?a=commit;h=8eeb513b1a0e7a4f7963612f03...
Author: Stefan Dösinger stefan@codeweavers.com Date: Sat Nov 28 11:38:29 2009 +0100
wined3d: Fix VBO buffer usage.
---
dlls/wined3d/buffer.c | 25 ++++++++++--------------- 1 files changed, 10 insertions(+), 15 deletions(-)
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c index f6e89dd..ff1ebd7 100644 --- a/dlls/wined3d/buffer.c +++ b/dlls/wined3d/buffer.c @@ -79,22 +79,17 @@ static void buffer_create_buffer_object(struct wined3d_buffer *This) }
/* Don't use static, because dx apps tend to update the buffer - * quite often even if they specify 0 usage. Because we always keep the local copy - * we never read from the vbo and can create a write only opengl buffer. - */ - switch(This->resource.usage & (WINED3DUSAGE_WRITEONLY | WINED3DUSAGE_DYNAMIC)) + * quite often even if they specify 0 usage. + */ + if(This->resource.usage & WINED3DUSAGE_DYNAMIC) + { + TRACE("Gl usage = GL_DYNAMIC_DRAW\n"); + gl_usage = GL_DYNAMIC_DRAW_ARB; + } + else { - case WINED3DUSAGE_WRITEONLY | WINED3DUSAGE_DYNAMIC: - case WINED3DUSAGE_DYNAMIC: - TRACE("Gl usage = GL_STREAM_DRAW\n"); - gl_usage = GL_STREAM_DRAW_ARB; - break; - - case WINED3DUSAGE_WRITEONLY: - default: - TRACE("Gl usage = GL_DYNAMIC_DRAW\n"); - gl_usage = GL_DYNAMIC_DRAW_ARB; - break; + TRACE("Gl usage = GL_STREAM_DRAW\n"); + gl_usage = GL_STREAM_DRAW_ARB; }
/* Reserve memory for the buffer. The amount of data won't change