Stefan Dösinger : wined3d: Implement texture -> swapchain blits with stretch_rect_fbo.

Alexandre Julliard julliard at winehq.org
Wed Dec 19 06:58:24 CST 2007


Module: wine
Branch: master
Commit: b95f30134b8df9f9b8683ce0e3913c3c5521fa92
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b95f30134b8df9f9b8683ce0e3913c3c5521fa92

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Tue Dec 18 13:52:48 2007 +0100

wined3d: Implement texture -> swapchain blits with stretch_rect_fbo.

---

 dlls/wined3d/surface.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index e45dd4c..7ba5125 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -3095,6 +3095,16 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, RECT *
             SourceRectangle.top = 0;
             SourceRectangle.bottom = Src->currentDesc.Height;
         }
+        if (wined3d_settings.offscreen_rendering_mode == ORM_FBO && GL_SUPPORT(EXT_FRAMEBUFFER_BLIT) &&
+            (Flags & (WINEDDBLT_KEYSRC | WINEDDBLT_KEYSRCOVERRIDE)) == 0) {
+            TRACE("Using stretch_rect_fbo\n");
+            /* The source is always a texture, but never the currently active render target, and the texture
+             * contents are never upside down
+             */
+            stretch_rect_fbo((IWineD3DDevice *)myDevice, SrcSurface, (WINED3DRECT *) &SourceRectangle,
+                              (IWineD3DSurface *)This, &rect, Filter, FALSE);
+            return WINED3D_OK;
+        }
 
         if(!CalculateTexRect(Src, &SourceRectangle, glTexCoord)) {
             /* Fall back to software */




More information about the wine-cvs mailing list