Module: wine Branch: master Commit: 58ed14eb52392ee8902863e020d030b9e1bb460b URL: http://source.winehq.org/git/wine.git/?a=commit;h=58ed14eb52392ee8902863e020...
Author: Stefan Dösinger stefan@codeweavers.com Date: Fri Sep 28 14:39:24 2007 +0200
wined3d: Honor pbos when downloading a compressed texture.
---
dlls/wined3d/surface.c | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index 06d5aa6..43cf3a5 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -47,8 +47,17 @@ static void surface_download_data(IWineD3DSurfaceImpl *This) { TRACE("(%p) : Calling glGetCompressedTexImageARB level %d, format %#x, type %#x, data %p\n", This, This->glDescription.level, This->glDescription.glFormat, This->glDescription.glType, This->resource.allocatedMemory);
- GL_EXTCALL(glGetCompressedTexImageARB(This->glDescription.target, This->glDescription.level, This->resource.allocatedMemory)); - checkGLcall("glGetCompressedTexImageARB()"); + if(This->Flags & SFLAG_PBO) { + GL_EXTCALL(glBindBufferARB(GL_PIXEL_PACK_BUFFER_ARB, This->pbo)); + checkGLcall("glBindBufferARB"); + GL_EXTCALL(glGetCompressedTexImageARB(This->glDescription.target, This->glDescription.level, NULL)); + checkGLcall("glGetCompressedTexImageARB()"); + GL_EXTCALL(glBindBufferARB(GL_PIXEL_PACK_BUFFER_ARB, 0)); + checkGLcall("glBindBufferARB"); + } else { + GL_EXTCALL(glGetCompressedTexImageARB(This->glDescription.target, This->glDescription.level, This->resource.allocatedMemory)); + checkGLcall("glGetCompressedTexImageARB()"); + } } } else { void *mem;