Module: wine Branch: master Commit: 045975b1f439049da9405a8defbad82a39710f49 URL: http://source.winehq.org/git/wine.git/?a=commit;h=045975b1f439049da9405a8def...
Author: H. Verbeet hverbeet@gmail.com Date: Thu Dec 28 03:12:43 2006 +0100
wined3d: Where possible, avoid using D3DCOLORTOGLFLOAT4.
---
dlls/wined3d/basetexture.c | 6 +++--- dlls/wined3d/device.c | 6 +++--- dlls/wined3d/state.c | 22 +++++++++++----------- dlls/wined3d/wined3d_private.h | 6 ++++++ 4 files changed, 23 insertions(+), 17 deletions(-)
diff --git a/dlls/wined3d/basetexture.c b/dlls/wined3d/basetexture.c index 9b9b5d7..4b6b0d5 100644 --- a/dlls/wined3d/basetexture.c +++ b/dlls/wined3d/basetexture.c @@ -363,11 +363,11 @@ void WINAPI IWineD3DBaseTextureImpl_Appl break; case WINED3DSAMP_BORDERCOLOR: { - float col[4]; + GLint col[4]; *state = samplerStates[textureObjectSamplerStates[i].state]; - D3DCOLORTOGLFLOAT4(*state, col); + D3DCOLORTOGLINT4(*state, col); TRACE("Setting border color for %u to %x\n", textureDimensions, *state); - glTexParameterfv(textureDimensions, GL_TEXTURE_BORDER_COLOR, &col[0]); + glTexParameteriv(textureDimensions, GL_TEXTURE_BORDER_COLOR, &col[0]); checkGLcall("glTexParameteri(..., GL_TEXTURE_BORDER_COLOR, ...)"); } break; diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index a858ba1..14d6d9e 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -438,7 +438,7 @@ static void delete_glsl_shader_list(IWin /* Apply the current values to the specified texture stage */ static void WINAPI IWineD3DDeviceImpl_SetupTextureStates(IWineD3DDevice *iface, DWORD Sampler, DWORD texture_idx, DWORD Flags) { IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface; - float col[4]; + GLint col[4];
union { float f; @@ -503,8 +503,8 @@ static void WINAPI IWineD3DDeviceImpl_Se checkGLcall("glTexEnvi GL_TEXTURE_LOD_BIAS_EXT ..."); }
- D3DCOLORTOGLFLOAT4(This->stateBlock->renderState[WINED3DRS_TEXTUREFACTOR], col); - glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, &col[0]); + D3DCOLORTOGLINT4(This->stateBlock->renderState[WINED3DRS_TEXTUREFACTOR], col); + glTexEnviv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, &col[0]); checkGLcall("glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, color);");
/* TODO: NV_POINT_SPRITE */ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index 27fd9f4..a842a6f 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -197,11 +197,11 @@ static void state_zfunc(DWORD state, IWi }
static void state_ambient(DWORD state, IWineD3DStateBlockImpl *stateblock) { - float col[4]; - D3DCOLORTOGLFLOAT4(stateblock->renderState[WINED3DRS_AMBIENT], col); + GLint col[4]; + D3DCOLORTOGLINT4(stateblock->renderState[WINED3DRS_AMBIENT], col);
- TRACE("Setting ambient to (%f,%f,%f,%f)\n", col[0], col[1], col[2], col[3]); - glLightModelfv(GL_LIGHT_MODEL_AMBIENT, col); + TRACE("Setting ambient to (%d,%d,%d,%d)\n", col[0], col[1], col[2], col[3]); + glLightModeliv(GL_LIGHT_MODEL_AMBIENT, col); checkGLcall("glLightModel for MODEL_AMBIENT"); }
@@ -499,8 +499,8 @@ static void state_texfactor(DWORD state, /* Note the texture color applies to all textures whereas * GL_TEXTURE_ENV_COLOR applies to active only */ - float col[4]; - D3DCOLORTOGLFLOAT4(stateblock->renderState[WINED3DRS_TEXTUREFACTOR], col); + GLint col[4]; + D3DCOLORTOGLINT4(stateblock->renderState[WINED3DRS_TEXTUREFACTOR], col);
if (!GL_SUPPORT(NV_REGISTER_COMBINERS)) { /* And now the default texture color as well */ @@ -515,11 +515,11 @@ static void state_texfactor(DWORD state, FIXME("Program using multiple concurrent textures which this opengl implementation doesn't support\n"); }
- glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, &col[0]); + glTexEnviv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, &col[0]); checkGLcall("glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, color);"); } } else { - GL_EXTCALL(glCombinerParameterfvNV(GL_CONSTANT_COLOR0_NV, &col[0])); + GL_EXTCALL(glCombinerParameterivNV(GL_CONSTANT_COLOR0_NV, &col[0])); } }
@@ -786,10 +786,10 @@ static void state_fog(DWORD state, IWine }
static void state_fogcolor(DWORD state, IWineD3DStateBlockImpl *stateblock) { - float col[4]; - D3DCOLORTOGLFLOAT4(stateblock->renderState[WINED3DRS_FOGCOLOR], col); + GLint col[4]; + D3DCOLORTOGLINT4(stateblock->renderState[WINED3DRS_FOGCOLOR], col); /* Set the default alpha blend color */ - glFogfv(GL_FOG_COLOR, &col[0]); + glFogiv(GL_FOG_COLOR, &col[0]); checkGLcall("glFog GL_FOG_COLOR"); }
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 0efe89b..e3af89b 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -228,6 +228,12 @@ extern int num_lock; (vec)[2] = D3DCOLOR_B(dw); \ (vec)[3] = D3DCOLOR_A(dw);
+#define D3DCOLORTOGLINT4(src, dst) \ + (dst)[0] = D3DCOLOR_B_R(src); \ + (dst)[1] = D3DCOLOR_B_G(src); \ + (dst)[2] = D3DCOLOR_B_B(src); \ + (dst)[3] = D3DCOLOR_B_A(src); + /* DirectX Device Limits */ /* --------------------- */ #define MAX_LEVELS 256 /* Maximum number of mipmap levels. Guessed at 256 */