Henri Verbeet : wined3d: Use surface_is_offscreen() in fb_copy_to_texture_hwstretch().
Alexandre Julliard
julliard at winehq.org
Wed Dec 16 09:41:29 CST 2009
Module: wine
Branch: master
Commit: 51438eec461346f350ce3f67161faaa40b2e4f18
URL: http://source.winehq.org/git/wine.git/?a=commit;h=51438eec461346f350ce3f67161faaa40b2e4f18
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Tue Dec 15 17:51:33 2009 +0100
wined3d: Use surface_is_offscreen() in fb_copy_to_texture_hwstretch().
---
dlls/wined3d/surface.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 1c5f012..5a0da0e 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -3210,13 +3210,15 @@ static inline void fb_copy_to_texture_hwstretch(IWineD3DSurfaceImpl *This, IWine
GLenum drawBuffer = GL_BACK;
GLenum texture_target;
BOOL noBackBufferBackup;
+ BOOL src_offscreen;
TRACE("Using hwstretch blit\n");
/* Activate the Proper context for reading from the source surface, set it up for blitting */
context = context_acquire(myDevice, SrcSurface, CTXUSAGE_BLIT);
surface_internal_preload((IWineD3DSurface *) This, SRGB_RGB);
- noBackBufferBackup = !swapchain && wined3d_settings.offscreen_rendering_mode == ORM_FBO;
+ src_offscreen = surface_is_offscreen(SrcSurface);
+ noBackBufferBackup = src_offscreen && wined3d_settings.offscreen_rendering_mode == ORM_FBO;
if (!noBackBufferBackup && !Src->texture_name)
{
/* Get it a description */
@@ -3232,7 +3234,7 @@ static inline void fb_copy_to_texture_hwstretch(IWineD3DSurfaceImpl *This, IWine
/* Got more than one aux buffer? Use the 2nd aux buffer */
drawBuffer = GL_AUX1;
}
- else if ((swapchain || myDevice->offscreenBuffer == GL_BACK) && context->aux_buffers >= 1)
+ else if ((!src_offscreen || myDevice->offscreenBuffer == GL_BACK) && context->aux_buffers >= 1)
{
/* Only one aux buffer, but it isn't used (Onscreen rendering, or non-aux orm)? Use it! */
drawBuffer = GL_AUX0;
@@ -3258,7 +3260,8 @@ static inline void fb_copy_to_texture_hwstretch(IWineD3DSurfaceImpl *This, IWine
Src->Flags &= ~SFLAG_INTEXTURE;
}
- if(surface_is_offscreen(SrcSurface)) {
+ if (src_offscreen)
+ {
TRACE("Reading from an offscreen target\n");
upsidedown = !upsidedown;
glReadBuffer(myDevice->offscreenBuffer);
More information about the wine-cvs
mailing list