Module: wine Branch: master Commit: 331679bcc984ca3f5dbcd09e23843f8f9bedc619 URL: http://source.winehq.org/git/wine.git/?a=commit;h=331679bcc984ca3f5dbcd09e23...
Author: Christopher GAUTIER krys@via.ecp.fr Date: Thu Oct 5 09:45:23 2006 +0200
wined3d: Disable GL_REGISTER_COMBINERS_NV (if supported) in IWineD3DSurfaceImpl_BltOverride.
---
dlls/wined3d/surface.c | 14 +++++++++++++- 1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index f78d651..f139840 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -2333,9 +2333,9 @@ static HRESULT IWineD3DSurfaceImpl_BltOv DWORD oldCKey; DDCOLORKEY oldBltCKey = {0,0}; GLint oldLight, oldFog, oldDepth, oldBlend, oldCull, oldAlpha; + GLint oldStencil, oldNVRegisterCombiners = 0; GLint alphafunc; GLclampf alpharef; - GLint oldStencil; RECT SourceRectangle; GLint oldDraw;
@@ -2397,6 +2397,10 @@ static HRESULT IWineD3DSurfaceImpl_BltOv oldAlpha = glIsEnabled(GL_ALPHA_TEST); oldStencil = glIsEnabled(GL_STENCIL_TEST);
+ if (GL_SUPPORT(NV_REGISTER_COMBINERS)) { + oldNVRegisterCombiners = glIsEnabled(GL_REGISTER_COMBINERS_NV); + } + glGetIntegerv(GL_ALPHA_TEST_FUNC, &alphafunc); checkGLcall("glGetFloatv GL_ALPHA_TEST_FUNC"); glGetFloatv(GL_ALPHA_TEST_REF, &alpharef); @@ -2433,6 +2437,10 @@ static HRESULT IWineD3DSurfaceImpl_BltOv checkGLcall("glDisable GL_CULL_FACE"); glDisable(GL_STENCIL_TEST); checkGLcall("glDisable GL_STENCIL_TEST"); + if (GL_SUPPORT(NV_REGISTER_COMBINERS)) { + glDisable(GL_REGISTER_COMBINERS_NV); + checkGLcall("glDisable GL_REGISTER_COMBINERS_NV"); + }
/* Ok, we need 2d textures, but not 1D or 3D */ glDisable(GL_TEXTURE_1D); @@ -2536,6 +2544,10 @@ static HRESULT IWineD3DSurfaceImpl_BltOv glEnable(GL_ALPHA_TEST); checkGLcall("glEnable GL_ALPHA_TEST"); } + if (GL_SUPPORT(NV_REGISTER_COMBINERS) && oldNVRegisterCombiners) { + glEnable(GL_REGISTER_COMBINERS_NV); + checkGLcall("glEnable GL_REGISTER_COMBINERS_NV"); + }
glAlphaFunc(alphafunc, alpharef); checkGLcall("glAlphaFunc\n");