From 1e264e5dd4f01f5450fd0be79cec78ed979035c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Tue, 19 Dec 2006 22:37:37 +0100 Subject: [PATCH] wined3d: Temporary disable nvrc junk texture skipping. --- dlls/wined3d/drawprim.c | 8 ++--- dlls/wined3d/stateblock.c | 65 +++++++++++++++++++-------------------- 2 files changed, 36 insertions(+), 37 deletions(-) diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c index 6ac7462c56..88a3f90737 100644 --- a/dlls/wined3d/drawprim.c +++ b/dlls/wined3d/drawprim.c @@ -1166,7 +1166,7 @@ static void loadVertexData(IWineD3DDevice *iface, WineDirect3DVertexStridedData continue; } - if (!GL_SUPPORT(NV_REGISTER_COMBINERS) || This->stateBlock->textures[textureNo]) { + if (/*!GL_SUPPORT(NV_REGISTER_COMBINERS) || This->stateBlock->textures[textureNo]*/ TRUE) { /* Select the correct texture stage */ GL_EXTCALL(glClientActiveTextureARB(GL_TEXTURE0_ARB + texture_idx)); } @@ -1204,7 +1204,7 @@ static void loadVertexData(IWineD3DDevice *iface, WineDirect3DVertexStridedData glDisableClientState(GL_TEXTURE_COORD_ARRAY); GL_EXTCALL(glMultiTexCoord4fARB(GL_TEXTURE0_ARB + textureNo, 0, 0, 0, 1)); } - if (!GL_SUPPORT(NV_REGISTER_COMBINERS) || This->stateBlock->textures[textureNo]) ++texture_idx; + if (/*!GL_SUPPORT(NV_REGISTER_COMBINERS) || This->stateBlock->textures[textureNo]*/ TRUE) ++texture_idx; } if (GL_SUPPORT(NV_REGISTER_COMBINERS)) { for (textureNo = texture_idx; textureNo < GL_LIMITS(textures); ++textureNo) { @@ -1479,7 +1479,7 @@ static void drawStridedSlow(IWineD3DDevice *iface, WineDirect3DVertexStridedData } } } - if (!GL_SUPPORT(NV_REGISTER_COMBINERS) || This->stateBlock->textures[textureNo]) ++texture_idx; + if (/*!GL_SUPPORT(NV_REGISTER_COMBINERS) || This->stateBlock->textures[textureNo]*/TRUE) ++texture_idx; } /* End of textures */ /* Diffuse -------------------------------- */ @@ -1911,7 +1911,7 @@ static void drawPrimitiveUploadTextures(IWineD3DDeviceImpl* This) { /* WINED3DTOP_DISABLE disables the current & any higher texture stages */ if (This->stateBlock->textureState[i][WINED3DTSS_COLOROP] == WINED3DTOP_DISABLE) break; - if (!GL_SUPPORT(NV_REGISTER_COMBINERS) || This->stateBlock->textures[i]) { + if (/*!GL_SUPPORT(NV_REGISTER_COMBINERS) || This->stateBlock->textures[i]*/ TRUE) { texture_idx = current_sampler++; /* Active the texture unit corresponding to the current texture stage */ diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c index 98904ccc1c..e7e0f3a543 100644 --- a/dlls/wined3d/stateblock.c +++ b/dlls/wined3d/stateblock.c @@ -1026,46 +1026,45 @@ static HRESULT WINAPI IWineD3DStateBlockImpl_InitStartupStateBlock(IWineD3DStat bound. We emulate this by creating dummy textures and binding them to each texture stage, but disable all stages by default. Hence if a stage is enabled then the default texture will kick in until replaced by a SetTexture call */ - if (!GL_SUPPORT(NV_REGISTER_COMBINERS)) { - ENTER_GL(); + ENTER_GL(); - for (i = 0; i < GL_LIMITS(texture_stages); i++) { - GLubyte white = 255; + for (i = 0; i < GL_LIMITS(texture_stages); i++) { + GLubyte white = 255; - /* Note this avoids calling settexture, so pretend it has been called */ - This->set.textures[i] = TRUE; - This->changed.textures[i] = TRUE; - This->textures[i] = NULL; + /* Note this avoids calling settexture, so pretend it has been called */ + This->set.textures[i] = TRUE; + This->changed.textures[i] = TRUE; + This->textures[i] = NULL; - /* Make appropriate texture active */ - if (GL_SUPPORT(ARB_MULTITEXTURE)) { - GL_EXTCALL(glActiveTextureARB(GL_TEXTURE0_ARB + i)); - checkGLcall("glActiveTextureARB"); - } else if (i > 0) { - FIXME("Program using multiple concurrent textures which this opengl implementation doesn't support\n"); - } - - /* Generate an opengl texture name */ - glGenTextures(1, &ThisDevice->dummyTextureName[i]); - checkGLcall("glGenTextures"); - TRACE("Dummy Texture %d given name %d\n", i, ThisDevice->dummyTextureName[i]); - - /* Generate a dummy 1d texture */ - This->textureDimensions[i] = GL_TEXTURE_1D; - glBindTexture(GL_TEXTURE_1D, ThisDevice->dummyTextureName[i]); - checkGLcall("glBindTexture"); - - glTexImage1D(GL_TEXTURE_1D, 0, GL_LUMINANCE, 1, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, &white); - checkGLcall("glTexImage1D"); -#if 1 /* TODO: move the setting texture states off to basetexture */ - /* Reapply all the texture state information to this texture */ - IWineD3DDevice_SetupTextureStates(device, i, i, REAPPLY_ALL); -#endif + /* Make appropriate texture active */ + if (GL_SUPPORT(ARB_MULTITEXTURE)) { + GL_EXTCALL(glActiveTextureARB(GL_TEXTURE0_ARB + i)); + checkGLcall("glActiveTextureARB"); + } else if (i > 0) { + FIXME("Program using multiple concurrent textures which this opengl implementation doesn't support\n"); } - LEAVE_GL(); + /* Generate an opengl texture name */ + glGenTextures(1, &ThisDevice->dummyTextureName[i]); + checkGLcall("glGenTextures"); + TRACE("Dummy Texture %d given name %d\n", i, ThisDevice->dummyTextureName[i]); + + /* Generate a dummy 1d texture */ + This->textureDimensions[i] = GL_TEXTURE_1D; + glBindTexture(GL_TEXTURE_1D, ThisDevice->dummyTextureName[i]); + checkGLcall("glBindTexture"); + + glTexImage1D(GL_TEXTURE_1D, 0, GL_LUMINANCE, 1, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, &white); + checkGLcall("glTexImage1D"); +#if 1 /* TODO: move the setting texture states off to basetexture */ + /* Reapply all the texture state information to this texture */ + IWineD3DDevice_SetupTextureStates(device, i, i, REAPPLY_ALL); +#endif } + LEAVE_GL(); + + /* Defaulting palettes - Note these are device wide but reinitialized here for convenience*/ for (i = 0; i < MAX_PALETTES; ++i) { int j;