H. Verbeet : wined3d: Rename renderUpsideDown to render_offscreen.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Nov 17 11:49:15 CST 2006


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

Author: H. Verbeet <hverbeet at gmail.com>
Date:   Fri Nov 17 13:23:41 2006 +0100

wined3d: Rename renderUpsideDown to render_offscreen.

---

 dlls/wined3d/device.c          |   19 ++++++++++---------
 dlls/wined3d/drawprim.c        |   10 +++++++---
 dlls/wined3d/wined3d_private.h |    2 +-
 3 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 9cf6f25..ab529a9 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -3484,7 +3484,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl
         case WINED3DCULL_CW:
             glEnable(GL_CULL_FACE);
             checkGLcall("glEnable GL_CULL_FACE");
-            if (This->renderUpsideDown) {
+            if (This->render_offscreen) {
                 glFrontFace(GL_CW);
                 checkGLcall("glFrontFace GL_CW");
             } else {
@@ -3496,7 +3496,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl
         case WINED3DCULL_CCW:
             glEnable(GL_CULL_FACE);
             checkGLcall("glEnable GL_CULL_FACE");
-            if (This->renderUpsideDown) {
+            if (This->render_offscreen) {
                 glFrontFace(GL_CCW);
                 checkGLcall("glFrontFace GL_CCW");
             } else {
@@ -7199,9 +7199,12 @@ static void device_reapply_stateblock(IW
     This->updateStateBlock = oldUpdateStateBlock;
 }
 
-/* Set the device to render to a texture, or not.
- * This involves changing renderUpsideDown */
-
+/* Set offscreen rendering. When rendering offscreen the surface will be
+ * rendered upside down to compensate for the fact that D3D texture coordinates
+ * are flipped compared to GL texture coordinates. The cullmode is affected by
+ * this, so it must be updated. To update the cullmode stateblock recording has
+ * to be temporarily disabled. The new state management code will hopefully
+ * make this unnecessary */
 static void device_render_to_texture(IWineD3DDeviceImpl* This, BOOL isTexture) {
 
     DWORD cullMode;
@@ -7214,9 +7217,7 @@ static void device_render_to_texture(IWi
     This->isRecordingState = FALSE;
     This->updateStateBlock = This->stateBlock;
 
-    /* Set upside-down rendering, and update the cull mode */
-    /* The surface must be rendered upside down to cancel the flip produced by glCopyTexImage */
-    This->renderUpsideDown = isTexture;
+    This->render_offscreen = isTexture;
     This->last_was_rhw = FALSE;
     This->proj_valid = FALSE;
     IWineD3DDevice_GetRenderState((IWineD3DDevice*) This, WINED3DRS_CULLMODE, &cullMode);
@@ -7501,7 +7502,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl
             implicitSwapchainImpl->render_ctx = newContext->context;
         }
     } else {
-        /* Same context, but update renderUpsideDown and cull mode */
+        /* Same context, but update render_offscreen and cull mode */
         device_render_to_texture(This, TRUE);
     }
 
diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c
index 1bedda4..0bea61f 100644
--- a/dlls/wined3d/drawprim.c
+++ b/dlls/wined3d/drawprim.c
@@ -195,7 +195,9 @@ void d3ddevice_set_ortho(IWineD3DDeviceI
             a pixel (See comment above glTranslate below)                         */
         glTranslatef(0.375, 0.375, 0);
         checkGLcall("glTranslatef(0.375, 0.375, 0)");
-        if (This->renderUpsideDown) {
+        /* D3D texture coordinates are flipped compared to OpenGL ones, so
+         * render everything upside down when rendering offscreen. */
+        if (This->render_offscreen) {
             glMultMatrixf(invymat);
             checkGLcall("glMultMatrixf(invymat)");
         }
@@ -301,7 +303,9 @@ static void primitiveInitState(
             glTranslatef(0.9 / This->stateBlock->viewport.Width, -0.9 / This->stateBlock->viewport.Height, 0);
             checkGLcall("glTranslatef (0.9 / width, -0.9 / height, 0)");
 
-            if (This->renderUpsideDown) {
+            /* D3D texture coordinates are flipped compared to OpenGL ones, so
+             * render everything upside down when rendering offscreen. */
+            if (This->render_offscreen) {
                 glMultMatrixf(invymat);
                 checkGLcall("glMultMatrixf(invymat)");
             }
@@ -311,7 +315,7 @@ static void primitiveInitState(
 
         /* Vertex Shader output is already transformed, so set up identity matrices */
         if (useVS) {
-            This->posFixup[1] = This->renderUpsideDown ? -1.0 : 1.0;
+            This->posFixup[1] = This->render_offscreen ? -1.0 : 1.0;
             This->posFixup[2] = 0.9 / This->stateBlock->viewport.Width;
             This->posFixup[3] = -0.9 / This->stateBlock->viewport.Height;
         }
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 1d8bb10..aa38261 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -545,7 +545,7 @@ typedef struct IWineD3DDeviceImpl
     UINT                    currentPalette;
 
     /* For rendering to a texture using glCopyTexImage */
-    BOOL                    renderUpsideDown;
+    BOOL                    render_offscreen;
 
     /* Cursor management */
     BOOL                    bCursorVisible;




More information about the wine-cvs mailing list