wined3d: Temporary disable nvrc junk texture skipping.

This commit is contained in:
Stefan Dösinger 2006-12-19 22:37:37 +01:00 committed by Alexandre Julliard
parent d56b3c10c4
commit 1e264e5dd4
2 changed files with 36 additions and 37 deletions

View file

@ -1166,7 +1166,7 @@ static void loadVertexData(IWineD3DDevice *iface, WineDirect3DVertexStridedData
continue; 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 */ /* Select the correct texture stage */
GL_EXTCALL(glClientActiveTextureARB(GL_TEXTURE0_ARB + texture_idx)); GL_EXTCALL(glClientActiveTextureARB(GL_TEXTURE0_ARB + texture_idx));
} }
@ -1204,7 +1204,7 @@ static void loadVertexData(IWineD3DDevice *iface, WineDirect3DVertexStridedData
glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_TEXTURE_COORD_ARRAY);
GL_EXTCALL(glMultiTexCoord4fARB(GL_TEXTURE0_ARB + textureNo, 0, 0, 0, 1)); 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)) { if (GL_SUPPORT(NV_REGISTER_COMBINERS)) {
for (textureNo = texture_idx; textureNo < GL_LIMITS(textures); ++textureNo) { 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 */ } /* End of textures */
/* Diffuse -------------------------------- */ /* Diffuse -------------------------------- */
@ -1911,7 +1911,7 @@ static void drawPrimitiveUploadTextures(IWineD3DDeviceImpl* This) {
/* WINED3DTOP_DISABLE disables the current & any higher texture stages */ /* WINED3DTOP_DISABLE disables the current & any higher texture stages */
if (This->stateBlock->textureState[i][WINED3DTSS_COLOROP] == WINED3DTOP_DISABLE) break; 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++; texture_idx = current_sampler++;
/* Active the texture unit corresponding to the current texture stage */ /* Active the texture unit corresponding to the current texture stage */

View file

@ -1026,46 +1026,45 @@ static HRESULT WINAPI IWineD3DStateBlockImpl_InitStartupStateBlock(IWineD3DStat
bound. We emulate this by creating dummy textures and binding them to each 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 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 */ 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++) { for (i = 0; i < GL_LIMITS(texture_stages); i++) {
GLubyte white = 255; GLubyte white = 255;
/* Note this avoids calling settexture, so pretend it has been called */ /* Note this avoids calling settexture, so pretend it has been called */
This->set.textures[i] = TRUE; This->set.textures[i] = TRUE;
This->changed.textures[i] = TRUE; This->changed.textures[i] = TRUE;
This->textures[i] = NULL; This->textures[i] = NULL;
/* Make appropriate texture active */ /* Make appropriate texture active */
if (GL_SUPPORT(ARB_MULTITEXTURE)) { if (GL_SUPPORT(ARB_MULTITEXTURE)) {
GL_EXTCALL(glActiveTextureARB(GL_TEXTURE0_ARB + i)); GL_EXTCALL(glActiveTextureARB(GL_TEXTURE0_ARB + i));
checkGLcall("glActiveTextureARB"); checkGLcall("glActiveTextureARB");
} else if (i > 0) { } else if (i > 0) {
FIXME("Program using multiple concurrent textures which this opengl implementation doesn't support\n"); 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
} }
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*/ /* Defaulting palettes - Note these are device wide but reinitialized here for convenience*/
for (i = 0; i < MAX_PALETTES; ++i) { for (i = 0; i < MAX_PALETTES; ++i) {
int j; int j;