Commit 18c9e5d5 authored by Felix Nawothnig's avatar Felix Nawothnig Committed by Alexandre Julliard

wined3d: Use GL_TEXTURE_2D for dummy textures.

parent 6760ccac
...@@ -333,10 +333,6 @@ HRESULT shader_get_registers_used( ...@@ -333,10 +333,6 @@ HRESULT shader_get_registers_used(
} else { } else {
int texType = IWineD3DBaseTexture_GetTextureDimensions(stateBlock->textures[sampler_code]); int texType = IWineD3DBaseTexture_GetTextureDimensions(stateBlock->textures[sampler_code]);
switch(texType) { switch(texType) {
case GL_TEXTURE_1D:
reg_maps->samplers[sampler_code] = (0x1 << 31) | WINED3DSTT_1D;
break;
case GL_TEXTURE_2D: case GL_TEXTURE_2D:
reg_maps->samplers[sampler_code] = (0x1 << 31) | WINED3DSTT_2D; reg_maps->samplers[sampler_code] = (0x1 << 31) | WINED3DSTT_2D;
break; break;
......
...@@ -487,8 +487,6 @@ static inline void SetupForBlit(IWineD3DDeviceImpl *This, WineD3DContext *contex ...@@ -487,8 +487,6 @@ static inline void SetupForBlit(IWineD3DDeviceImpl *This, WineD3DContext *contex
checkGLcall("glDisable GL_TEXTURE_3D"); checkGLcall("glDisable GL_TEXTURE_3D");
glDisable(GL_TEXTURE_2D); glDisable(GL_TEXTURE_2D);
checkGLcall("glDisable GL_TEXTURE_2D"); checkGLcall("glDisable GL_TEXTURE_2D");
glDisable(GL_TEXTURE_1D);
checkGLcall("glDisable GL_TEXTURE_1D");
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
checkGLcall("glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);"); checkGLcall("glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);");
...@@ -505,8 +503,6 @@ static inline void SetupForBlit(IWineD3DDeviceImpl *This, WineD3DContext *contex ...@@ -505,8 +503,6 @@ static inline void SetupForBlit(IWineD3DDeviceImpl *This, WineD3DContext *contex
} }
glDisable(GL_TEXTURE_3D); glDisable(GL_TEXTURE_3D);
checkGLcall("glDisable GL_TEXTURE_3D"); checkGLcall("glDisable GL_TEXTURE_3D");
glDisable(GL_TEXTURE_1D);
checkGLcall("glDisable GL_TEXTURE_1D");
glEnable(GL_TEXTURE_2D); glEnable(GL_TEXTURE_2D);
checkGLcall("glEnable GL_TEXTURE_2D"); checkGLcall("glEnable GL_TEXTURE_2D");
......
...@@ -1549,8 +1549,6 @@ static void state_ckeyblend(DWORD state, IWineD3DStateBlockImpl *stateblock, Win ...@@ -1549,8 +1549,6 @@ static void state_ckeyblend(DWORD state, IWineD3DStateBlockImpl *stateblock, Win
*/ */
static void activate_dimensions(DWORD stage, IWineD3DStateBlockImpl *stateblock) { static void activate_dimensions(DWORD stage, IWineD3DStateBlockImpl *stateblock) {
if(stateblock->textures[stage]) { if(stateblock->textures[stage]) {
glDisable(GL_TEXTURE_1D);
checkGLcall("glDisable(GL_TEXTURE_1D)");
switch(stateblock->textureDimensions[stage]) { switch(stateblock->textureDimensions[stage]) {
case GL_TEXTURE_2D: case GL_TEXTURE_2D:
glDisable(GL_TEXTURE_3D); glDisable(GL_TEXTURE_3D);
...@@ -1590,8 +1588,6 @@ static void activate_dimensions(DWORD stage, IWineD3DStateBlockImpl *stateblock) ...@@ -1590,8 +1588,6 @@ static void activate_dimensions(DWORD stage, IWineD3DStateBlockImpl *stateblock)
glDisable(GL_TEXTURE_CUBE_MAP_ARB); glDisable(GL_TEXTURE_CUBE_MAP_ARB);
checkGLcall("glDisable(GL_TEXTURE_CUBE_MAP_ARB)"); checkGLcall("glDisable(GL_TEXTURE_CUBE_MAP_ARB)");
} }
glEnable(GL_TEXTURE_1D);
checkGLcall("glEnable(GL_TEXTURE_1D)");
/* Binding textures is done by samplers. A dummy texture will be bound */ /* Binding textures is done by samplers. A dummy texture will be bound */
} }
} }
...@@ -1639,8 +1635,6 @@ static void tex_colorop(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3D ...@@ -1639,8 +1635,6 @@ static void tex_colorop(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3D
TRACE("Stage disabled\n"); TRACE("Stage disabled\n");
if (mapped_stage != -1) { if (mapped_stage != -1) {
/* Disable everything here */ /* Disable everything here */
glDisable(GL_TEXTURE_1D);
checkGLcall("glDisable(GL_TEXTURE_1D)");
glDisable(GL_TEXTURE_2D); glDisable(GL_TEXTURE_2D);
checkGLcall("glDisable(GL_TEXTURE_2D)"); checkGLcall("glDisable(GL_TEXTURE_2D)");
glDisable(GL_TEXTURE_3D); glDisable(GL_TEXTURE_3D);
...@@ -2079,8 +2073,8 @@ static void sampler(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3DCont ...@@ -2079,8 +2073,8 @@ static void sampler(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3DCont
activate_dimensions(sampler, stateblock); activate_dimensions(sampler, stateblock);
} }
} /* Otherwise tex_colorop disables the stage */ } /* Otherwise tex_colorop disables the stage */
glBindTexture(GL_TEXTURE_1D, stateblock->wineD3DDevice->dummyTextureName[sampler]); glBindTexture(GL_TEXTURE_2D, stateblock->wineD3DDevice->dummyTextureName[sampler]);
checkGLcall("glBindTexture(GL_TEXTURE_1D, stateblock->wineD3DDevice->dummyTextureName[sampler])"); checkGLcall("glBindTexture(GL_TEXTURE_2D, stateblock->wineD3DDevice->dummyTextureName[sampler])");
} }
} }
......
...@@ -1083,13 +1083,14 @@ static HRESULT WINAPI IWineD3DStateBlockImpl_InitStartupStateBlock(IWineD3DStat ...@@ -1083,13 +1083,14 @@ static HRESULT WINAPI IWineD3DStateBlockImpl_InitStartupStateBlock(IWineD3DStat
checkGLcall("glGenTextures"); checkGLcall("glGenTextures");
TRACE("Dummy Texture %d given name %d\n", i, ThisDevice->dummyTextureName[i]); TRACE("Dummy Texture %d given name %d\n", i, ThisDevice->dummyTextureName[i]);
/* Generate a dummy 1d texture */ /* Generate a dummy 2d texture (not using 1d because they cause many
This->textureDimensions[i] = GL_TEXTURE_1D; * DRI drivers fall back to sw) */
glBindTexture(GL_TEXTURE_1D, ThisDevice->dummyTextureName[i]); This->textureDimensions[i] = GL_TEXTURE_2D;
glBindTexture(GL_TEXTURE_2D, ThisDevice->dummyTextureName[i]);
checkGLcall("glBindTexture"); checkGLcall("glBindTexture");
glTexImage1D(GL_TEXTURE_1D, 0, GL_LUMINANCE, 1, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, &white); glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, 1, 1, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, &white);
checkGLcall("glTexImage1D"); checkGLcall("glTexImage2D");
} }
LEAVE_GL(); LEAVE_GL();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment