Module: wine Branch: master Commit: 9bf04ecd03c7abc33c46306ef64bfea0a0cc5efb URL: http://source.winehq.org/git/wine.git/?a=commit;h=9bf04ecd03c7abc33c46306ef6...
Author: H. Verbeet hverbeet@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;