[PATCH] WineD3D: Kill the GL_ATI_envmap_bumpmap code=0A=
Stefan Doesinger
stefan at codeweavers.com
Mon Nov 3 18:36:19 CST 2008
=0A=
This is for two reasons: (1) it isn't used, (2) it is broken=0A=
=0A=
GL_ATI_envmap_bumpmap provides two things: Signed V8U8 pixel=0A=
formats, and bump mapping. The extension is only supported on=0A=
fglrx, and this driver also supports GL_ARB_fragment_program.=0A=
Thus the bump mapping code is never used on any driver out there.=0A=
Furthermore, if it is used, it tends to crash the driver=0A=
=0A=
The signed pixel format is used, as it can be used by pixel=0A=
shaders or the ARBfp replacement. However, the format is broken=0A=
in fglrx, and negative values are clamped to 0.0. This results in=0A=
test failures. WineD3D has an alternative codepath using=0A=
scale+bias to enable V8U8 using a standard signed RGB which works=0A=
correctly on fglrx.=0A=
---=0A=
dlls/wined3d/arb_program_shader.c | 3 +-=0A=
dlls/wined3d/directx.c | 7 +---=0A=
dlls/wined3d/glsl_shader.c | 3 +-=0A=
dlls/wined3d/state.c | 88 =
+------------------------------------=0A=
dlls/wined3d/surface.c | 12 -----=0A=
dlls/wined3d/utils.c | 6 +--=0A=
include/wine/wined3d_gl.h | 23 ----------=0A=
7 files changed, 5 insertions(+), 137 deletions(-)=0A=
=0A=
diff --git a/dlls/wined3d/arb_program_shader.c =
b/dlls/wined3d/arb_program_shader.c=0A=
index 3edeabf..493c5d2 100644=0A=
--- a/dlls/wined3d/arb_program_shader.c=0A=
+++ b/dlls/wined3d/arb_program_shader.c=0A=
@@ -659,8 +659,7 @@ static void gen_color_correction(SHADER_BUFFER =
*buffer, const char *reg, const c=0A=
switch(fmt) {=0A=
case WINED3DFMT_V8U8:=0A=
case WINED3DFMT_V16U16:=0A=
- if(GL_SUPPORT(NV_TEXTURE_SHADER) ||=0A=
- (GL_SUPPORT(ATI_ENVMAP_BUMPMAP) && fmt =3D=3D =
WINED3DFMT_V8U8)) {=0A=
+ if(GL_SUPPORT(NV_TEXTURE_SHADER) && fmt =3D=3D =
WINED3DFMT_V8U8) {=0A=
if(0) {=0A=
/* The 3rd channel returns 1.0 in d3d, but 0.0 in =
gl. Fix this while we're at it :-)=0A=
* disabled until an application that needs it is =
found because it causes unneeded=0A=
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c=0A=
index 9cdc957..dbfd3f9 100644=0A=
--- a/dlls/wined3d/directx.c=0A=
+++ b/dlls/wined3d/directx.c=0A=
@@ -56,7 +56,6 @@ static const struct {=0A=
{"GL_ATI_separate_stencil", ATI_SEPARATE_STENCIL, =
0 },=0A=
{"GL_ATI_texture_env_combine3", ATI_TEXTURE_ENV_COMBINE3, =
0 },=0A=
{"GL_ATI_texture_mirror_once", ATI_TEXTURE_MIRROR_ONCE, =
0 },=0A=
- {"GL_ATI_envmap_bumpmap", ATI_ENVMAP_BUMPMAP, =
0 },=0A=
{"GL_ATI_fragment_shader", ATI_FRAGMENT_SHADER, =
0 },=0A=
{"GL_ATI_texture_compression_3dc", =
ATI_TEXTURE_COMPRESSION_3DC, 0 },=0A=
=0A=
@@ -837,10 +836,6 @@ BOOL IWineD3DImpl_FillGLCaps(WineD3D_GL_Info =
*gl_info) {=0A=
gl_info->supported[NV_TEXGEN_REFLECTION] =3D TRUE;=0A=
}=0A=
if (gl_info->supported[NV_TEXTURE_SHADER2]) {=0A=
- /* GL_ATI_envmap_bumpmap won't play nice with texture =
shaders, so disable it=0A=
- * Won't occur in any real world situation though=0A=
- */=0A=
- gl_info->supported[ATI_ENVMAP_BUMPMAP] =3D FALSE;=0A=
if(gl_info->supported[NV_REGISTER_COMBINERS]) {=0A=
/* Also disable ATI_FRAGMENT_SHADER if register =
combiners and texture_shader2=0A=
* are supported. The nv extensions provide the same =
functionality as the=0A=
@@ -2915,7 +2910,7 @@ static HRESULT WINAPI =
IWineD3DImpl_CheckDeviceFormat(IWineD3D *iface, UINT Adapt=0A=
break;=0A=
=0A=
case WINED3DFMT_V8U8:=0A=
- if(!GL_SUPPORT(NV_TEXTURE_SHADER) || =
!GL_SUPPORT(ATI_ENVMAP_BUMPMAP)) {=0A=
+ if(!GL_SUPPORT(NV_TEXTURE_SHADER)) {=0A=
TRACE_(d3d_caps)("[FAILED] - No converted formats on =
volumes\n");=0A=
return WINED3DERR_NOTAVAILABLE;=0A=
}=0A=
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c=0A=
index 22176e9..bb9a871 100644=0A=
--- a/dlls/wined3d/glsl_shader.c=0A=
+++ b/dlls/wined3d/glsl_shader.c=0A=
@@ -1296,8 +1296,7 @@ static void =
shader_glsl_color_correction(SHADER_OPCODE_ARG* arg) {=0A=
switch(fmt) {=0A=
case WINED3DFMT_V8U8:=0A=
case WINED3DFMT_V16U16:=0A=
- if(GL_SUPPORT(NV_TEXTURE_SHADER) ||=0A=
- (GL_SUPPORT(ATI_ENVMAP_BUMPMAP) && fmt =3D=3D =
WINED3DFMT_V8U8)) {=0A=
+ if(GL_SUPPORT(NV_TEXTURE_SHADER) && fmt =3D=3D =
WINED3DFMT_V8U8) {=0A=
/* The 3rd channel returns 1.0 in d3d, but 0.0 in gl. =
Fix this while we're at it :-) */=0A=
mask =3D shader_glsl_add_dst_param(arg, arg->dst, =
WINED3DSP_WRITEMASK_2, &dst_param);=0A=
mask_size =3D shader_glsl_get_write_mask_size(mask);=0A=
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c=0A=
index 1a99d40..573c23c 100644=0A=
--- a/dlls/wined3d/state.c=0A=
+++ b/dlls/wined3d/state.c=0A=
@@ -2860,40 +2860,8 @@ static void set_tex_op(IWineD3DDevice *iface, =
BOOL isAlpha, int Stage, WINED3DTE=0A=
Handled =3D FALSE;=0A=
break;=0A=
case WINED3DTOP_BUMPENVMAPLUMINANCE:=0A=
- if(GL_SUPPORT(ATI_ENVMAP_BUMPMAP)) {=0A=
- /* Some apps use BUMPENVMAPLUMINANCE instead of =
D3DTOP_BUMPENVMAP, although=0A=
- * they check for the non-luminance cap flag. Well, give =
them what they asked=0A=
- * for :-)=0A=
- */=0A=
- WARN("Application uses =
WINED3DTOP_BUMPENVMAPLUMINANCE\n");=0A=
- } else {=0A=
- Handled =3D FALSE;=0A=
- break;=0A=
- }=0A=
- /* Fall through */=0A=
case WINED3DTOP_BUMPENVMAP:=0A=
- if(GL_SUPPORT(ATI_ENVMAP_BUMPMAP)) {=0A=
- TRACE("Using ati bumpmap on stage %d, target %d\n", =
Stage, Stage + 1);=0A=
- glTexEnvi(GL_TEXTURE_ENV, comb_target, =
GL_BUMP_ENVMAP_ATI);=0A=
- checkGLcall("glTexEnvi(GL_TEXTURE_ENV, comb_target, =
GL_BUMP_ENVMAP_ATI)");=0A=
- glTexEnvi(GL_TEXTURE_ENV, GL_BUMP_TARGET_ATI, =
GL_TEXTURE0_ARB + Stage + 1);=0A=
- checkGLcall("glTexEnvi(GL_TEXTURE_ENV, =
GL_BUMP_TARGET_ATI, GL_TEXTURE0_ARB + Stage + 1)");=0A=
- glTexEnvi(GL_TEXTURE_ENV, src0_target, src3);=0A=
- checkGLcall("GL_TEXTURE_ENV, src0_target, src3");=0A=
- glTexEnvi(GL_TEXTURE_ENV, opr0_target, opr3);=0A=
- checkGLcall("GL_TEXTURE_ENV, opr0_target, opr3");=0A=
- glTexEnvi(GL_TEXTURE_ENV, src1_target, src1);=0A=
- checkGLcall("GL_TEXTURE_ENV, src0_target, src1");=0A=
- glTexEnvi(GL_TEXTURE_ENV, opr1_target, opr1);=0A=
- checkGLcall("GL_TEXTURE_ENV, opr1_target, opr1");=0A=
- glTexEnvi(GL_TEXTURE_ENV, src2_target, src2);=0A=
- checkGLcall("GL_TEXTURE_ENV, src0_target, src1");=0A=
- glTexEnvi(GL_TEXTURE_ENV, opr2_target, opr2);=0A=
- checkGLcall("GL_TEXTURE_ENV, opr2_target, opr2");=0A=
-=0A=
- Handled =3D TRUE;=0A=
- break;=0A=
- } else if(GL_SUPPORT(NV_TEXTURE_SHADER2)) {=0A=
+ if(GL_SUPPORT(NV_TEXTURE_SHADER2)) {=0A=
/* Technically texture shader support without register =
combiners is possible, but not expected to occur=0A=
* on real world cards, so for now a fixme should be =
enough=0A=
*/=0A=
@@ -3599,24 +3567,6 @@ static void shader_bumpenvmat(DWORD state, =
IWineD3DStateBlockImpl *stateblock, W=0A=
}=0A=
}=0A=
=0A=
-static void tex_bumpenvmat(DWORD state, IWineD3DStateBlockImpl =
*stateblock, WineD3DContext *context) {=0A=
- DWORD stage =3D (state - STATE_TEXTURESTAGE(0, 0)) / =
WINED3D_HIGHEST_TEXTURE_STATE;=0A=
- float mat[2][2];=0A=
-=0A=
- if(stage >=3D GL_LIMITS(texture_stages)) {=0A=
- WARN("Bump env matrix of unsupported stage set\n");=0A=
- } else if(GL_SUPPORT(ARB_MULTITEXTURE)) {=0A=
- GL_EXTCALL(glActiveTextureARB(GL_TEXTURE0_ARB + stage));=0A=
- checkGLcall("GL_EXTCALL(glActiveTextureARB(GL_TEXTURE0_ARB + =
stage))");=0A=
- }=0A=
- mat[0][0] =3D *((float *) =
&stateblock->textureState[stage][WINED3DTSS_BUMPENVMAT00]);=0A=
- mat[1][0] =3D *((float *) =
&stateblock->textureState[stage][WINED3DTSS_BUMPENVMAT01]);=0A=
- mat[0][1] =3D *((float *) =
&stateblock->textureState[stage][WINED3DTSS_BUMPENVMAT10]);=0A=
- mat[1][1] =3D *((float *) =
&stateblock->textureState[stage][WINED3DTSS_BUMPENVMAT11]);=0A=
- GL_EXTCALL(glTexBumpParameterfvATI(GL_BUMP_ROT_MATRIX_ATI, (float =
*) mat));=0A=
- checkGLcall("glTexBumpParameterfvATI");=0A=
-}=0A=
-=0A=
static void transform_world(DWORD state, IWineD3DStateBlockImpl =
*stateblock, WineD3DContext *context) {=0A=
/* This function is called by transform_view below if the view =
matrix was changed too=0A=
*=0A=
@@ -5413,10 +5363,6 @@ static const struct StateEntryTemplate =
ffp_fragmentstate_template[] =3D {=0A=
{ STATE_TEXTURESTAGE(0, WINED3DTSS_ALPHAOP), { =
STATE_TEXTURESTAGE(0, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(0, WINED3DTSS_ALPHAARG1), { =
STATE_TEXTURESTAGE(0, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(0, WINED3DTSS_ALPHAARG2), { =
STATE_TEXTURESTAGE(0, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
- { STATE_TEXTURESTAGE(0, WINED3DTSS_BUMPENVMAT00), { =
STATE_TEXTURESTAGE(0, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(0, WINED3DTSS_BUMPENVMAT01), { =
STATE_TEXTURESTAGE(0, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(0, WINED3DTSS_BUMPENVMAT10), { =
STATE_TEXTURESTAGE(0, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(0, WINED3DTSS_BUMPENVMAT11), { =
STATE_TEXTURESTAGE(0, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
{ STATE_TEXTURESTAGE(0, WINED3DTSS_COLORARG0), { =
STATE_TEXTURESTAGE(0, WINED3DTSS_COLOROP), tex_colorop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(0, WINED3DTSS_ALPHAARG0), { =
STATE_TEXTURESTAGE(0, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(0, WINED3DTSS_RESULTARG), { =
STATE_TEXTURESTAGE(0, WINED3DTSS_COLOROP), tex_colorop =
}, 0 },=0A=
@@ -5427,10 +5373,6 @@ static const struct StateEntryTemplate =
ffp_fragmentstate_template[] =3D {=0A=
{ STATE_TEXTURESTAGE(1, WINED3DTSS_ALPHAOP), { =
STATE_TEXTURESTAGE(1, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(1, WINED3DTSS_ALPHAARG1), { =
STATE_TEXTURESTAGE(1, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(1, WINED3DTSS_ALPHAARG2), { =
STATE_TEXTURESTAGE(1, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
- { STATE_TEXTURESTAGE(1, WINED3DTSS_BUMPENVMAT00), { =
STATE_TEXTURESTAGE(1, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(1, WINED3DTSS_BUMPENVMAT01), { =
STATE_TEXTURESTAGE(1, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(1, WINED3DTSS_BUMPENVMAT10), { =
STATE_TEXTURESTAGE(1, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(1, WINED3DTSS_BUMPENVMAT11), { =
STATE_TEXTURESTAGE(1, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
{ STATE_TEXTURESTAGE(1, WINED3DTSS_COLORARG0), { =
STATE_TEXTURESTAGE(1, WINED3DTSS_COLOROP), tex_colorop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(1, WINED3DTSS_ALPHAARG0), { =
STATE_TEXTURESTAGE(1, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(1, WINED3DTSS_RESULTARG), { =
STATE_TEXTURESTAGE(1, WINED3DTSS_COLOROP), tex_colorop =
}, 0 },=0A=
@@ -5441,10 +5383,6 @@ static const struct StateEntryTemplate =
ffp_fragmentstate_template[] =3D {=0A=
{ STATE_TEXTURESTAGE(2, WINED3DTSS_ALPHAOP), { =
STATE_TEXTURESTAGE(2, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(2, WINED3DTSS_ALPHAARG1), { =
STATE_TEXTURESTAGE(2, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(2, WINED3DTSS_ALPHAARG2), { =
STATE_TEXTURESTAGE(2, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
- { STATE_TEXTURESTAGE(2, WINED3DTSS_BUMPENVMAT00), { =
STATE_TEXTURESTAGE(2, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(2, WINED3DTSS_BUMPENVMAT01), { =
STATE_TEXTURESTAGE(2, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(2, WINED3DTSS_BUMPENVMAT10), { =
STATE_TEXTURESTAGE(2, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(2, WINED3DTSS_BUMPENVMAT11), { =
STATE_TEXTURESTAGE(2, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
{ STATE_TEXTURESTAGE(2, WINED3DTSS_COLORARG0), { =
STATE_TEXTURESTAGE(2, WINED3DTSS_COLOROP), tex_colorop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(2, WINED3DTSS_ALPHAARG0), { =
STATE_TEXTURESTAGE(2, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(2, WINED3DTSS_RESULTARG), { =
STATE_TEXTURESTAGE(2, WINED3DTSS_COLOROP), tex_colorop =
}, 0 },=0A=
@@ -5455,10 +5393,6 @@ static const struct StateEntryTemplate =
ffp_fragmentstate_template[] =3D {=0A=
{ STATE_TEXTURESTAGE(3, WINED3DTSS_ALPHAOP), { =
STATE_TEXTURESTAGE(3, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(3, WINED3DTSS_ALPHAARG1), { =
STATE_TEXTURESTAGE(3, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(3, WINED3DTSS_ALPHAARG2), { =
STATE_TEXTURESTAGE(3, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
- { STATE_TEXTURESTAGE(3, WINED3DTSS_BUMPENVMAT00), { =
STATE_TEXTURESTAGE(3, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(3, WINED3DTSS_BUMPENVMAT01), { =
STATE_TEXTURESTAGE(3, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(3, WINED3DTSS_BUMPENVMAT10), { =
STATE_TEXTURESTAGE(3, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(3, WINED3DTSS_BUMPENVMAT11), { =
STATE_TEXTURESTAGE(3, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
{ STATE_TEXTURESTAGE(3, WINED3DTSS_COLORARG0), { =
STATE_TEXTURESTAGE(3, WINED3DTSS_COLOROP), tex_colorop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(3, WINED3DTSS_ALPHAARG0), { =
STATE_TEXTURESTAGE(3, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(3, WINED3DTSS_RESULTARG), { =
STATE_TEXTURESTAGE(3, WINED3DTSS_COLOROP), tex_colorop =
}, 0 },=0A=
@@ -5469,10 +5403,6 @@ static const struct StateEntryTemplate =
ffp_fragmentstate_template[] =3D {=0A=
{ STATE_TEXTURESTAGE(4, WINED3DTSS_ALPHAOP), { =
STATE_TEXTURESTAGE(4, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(4, WINED3DTSS_ALPHAARG1), { =
STATE_TEXTURESTAGE(4, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(4, WINED3DTSS_ALPHAARG2), { =
STATE_TEXTURESTAGE(4, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
- { STATE_TEXTURESTAGE(4, WINED3DTSS_BUMPENVMAT00), { =
STATE_TEXTURESTAGE(4, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(4, WINED3DTSS_BUMPENVMAT01), { =
STATE_TEXTURESTAGE(4, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(4, WINED3DTSS_BUMPENVMAT10), { =
STATE_TEXTURESTAGE(4, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(4, WINED3DTSS_BUMPENVMAT11), { =
STATE_TEXTURESTAGE(4, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
{ STATE_TEXTURESTAGE(4, WINED3DTSS_COLORARG0), { =
STATE_TEXTURESTAGE(4, WINED3DTSS_COLOROP), tex_colorop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(4, WINED3DTSS_ALPHAARG0), { =
STATE_TEXTURESTAGE(4, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(4, WINED3DTSS_RESULTARG), { =
STATE_TEXTURESTAGE(4, WINED3DTSS_COLOROP), tex_colorop =
}, 0 },=0A=
@@ -5483,10 +5413,6 @@ static const struct StateEntryTemplate =
ffp_fragmentstate_template[] =3D {=0A=
{ STATE_TEXTURESTAGE(5, WINED3DTSS_ALPHAOP), { =
STATE_TEXTURESTAGE(5, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(5, WINED3DTSS_ALPHAARG1), { =
STATE_TEXTURESTAGE(5, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(5, WINED3DTSS_ALPHAARG2), { =
STATE_TEXTURESTAGE(5, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
- { STATE_TEXTURESTAGE(5, WINED3DTSS_BUMPENVMAT00), { =
STATE_TEXTURESTAGE(5, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(5, WINED3DTSS_BUMPENVMAT01), { =
STATE_TEXTURESTAGE(5, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(5, WINED3DTSS_BUMPENVMAT10), { =
STATE_TEXTURESTAGE(5, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(5, WINED3DTSS_BUMPENVMAT11), { =
STATE_TEXTURESTAGE(5, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
{ STATE_TEXTURESTAGE(5, WINED3DTSS_COLORARG0), { =
STATE_TEXTURESTAGE(5, WINED3DTSS_COLOROP), tex_colorop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(5, WINED3DTSS_ALPHAARG0), { =
STATE_TEXTURESTAGE(5, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(5, WINED3DTSS_RESULTARG), { =
STATE_TEXTURESTAGE(5, WINED3DTSS_COLOROP), tex_colorop =
}, 0 },=0A=
@@ -5497,10 +5423,6 @@ static const struct StateEntryTemplate =
ffp_fragmentstate_template[] =3D {=0A=
{ STATE_TEXTURESTAGE(6, WINED3DTSS_ALPHAOP), { =
STATE_TEXTURESTAGE(6, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(6, WINED3DTSS_ALPHAARG1), { =
STATE_TEXTURESTAGE(6, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(6, WINED3DTSS_ALPHAARG2), { =
STATE_TEXTURESTAGE(6, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
- { STATE_TEXTURESTAGE(6, WINED3DTSS_BUMPENVMAT00), { =
STATE_TEXTURESTAGE(6, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(6, WINED3DTSS_BUMPENVMAT01), { =
STATE_TEXTURESTAGE(6, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(6, WINED3DTSS_BUMPENVMAT10), { =
STATE_TEXTURESTAGE(6, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(6, WINED3DTSS_BUMPENVMAT11), { =
STATE_TEXTURESTAGE(6, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
{ STATE_TEXTURESTAGE(6, WINED3DTSS_COLORARG0), { =
STATE_TEXTURESTAGE(6, WINED3DTSS_COLOROP), tex_colorop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(6, WINED3DTSS_ALPHAARG0), { =
STATE_TEXTURESTAGE(6, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(6, WINED3DTSS_RESULTARG), { =
STATE_TEXTURESTAGE(6, WINED3DTSS_COLOROP), tex_colorop =
}, 0 },=0A=
@@ -5511,10 +5433,6 @@ static const struct StateEntryTemplate =
ffp_fragmentstate_template[] =3D {=0A=
{ STATE_TEXTURESTAGE(7, WINED3DTSS_ALPHAOP), { =
STATE_TEXTURESTAGE(7, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(7, WINED3DTSS_ALPHAARG1), { =
STATE_TEXTURESTAGE(7, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(7, WINED3DTSS_ALPHAARG2), { =
STATE_TEXTURESTAGE(7, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
- { STATE_TEXTURESTAGE(7, WINED3DTSS_BUMPENVMAT00), { =
STATE_TEXTURESTAGE(7, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(7, WINED3DTSS_BUMPENVMAT01), { =
STATE_TEXTURESTAGE(7, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(7, WINED3DTSS_BUMPENVMAT10), { =
STATE_TEXTURESTAGE(7, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
- { STATE_TEXTURESTAGE(7, WINED3DTSS_BUMPENVMAT11), { =
STATE_TEXTURESTAGE(7, WINED3DTSS_BUMPENVMAT00), tex_bumpenvmat =
}, ATI_ENVMAP_BUMPMAP },=0A=
{ STATE_TEXTURESTAGE(7, WINED3DTSS_COLORARG0), { =
STATE_TEXTURESTAGE(7, WINED3DTSS_COLOROP), tex_colorop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(7, WINED3DTSS_ALPHAARG0), { =
STATE_TEXTURESTAGE(7, WINED3DTSS_ALPHAOP), tex_alphaop =
}, 0 },=0A=
{ STATE_TEXTURESTAGE(7, WINED3DTSS_RESULTARG), { =
STATE_TEXTURESTAGE(7, WINED3DTSS_COLOROP), tex_colorop =
}, 0 },=0A=
@@ -5570,10 +5488,6 @@ static void ffp_fragment_get_caps(WINED3DDEVTYPE =
devtype, WineD3D_GL_Info *gl_in=0A=
if (GL_SUPPORT(ARB_TEXTURE_ENV_DOT3))=0A=
pCaps->TextureOpCaps |=3D WINED3DTEXOPCAPS_DOTPRODUCT3;=0A=
=0A=
- if(GL_SUPPORT(ATI_ENVMAP_BUMPMAP)) {=0A=
- pCaps->TextureOpCaps |=3D WINED3DTEXOPCAPS_BUMPENVMAP;=0A=
- }=0A=
-=0A=
pCaps->MaxTextureBlendStages =3D GL_LIMITS(texture_stages);=0A=
pCaps->MaxSimultaneousTextures =3D GL_LIMITS(textures);=0A=
}=0A=
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c=0A=
index b5c9ff9..1fb27cc 100644=0A=
--- a/dlls/wined3d/surface.c=0A=
+++ b/dlls/wined3d/surface.c=0A=
@@ -1639,13 +1639,6 @@ HRESULT d3dfmt_get_conv(IWineD3DSurfaceImpl =
*This, BOOL need_alpha_ck, BOOL use_=0A=
=0A=
case WINED3DFMT_V8U8:=0A=
if(GL_SUPPORT(NV_TEXTURE_SHADER3)) break;=0A=
- else if(GL_SUPPORT(ATI_ENVMAP_BUMPMAP)) {=0A=
- *format =3D GL_DUDV_ATI;=0A=
- *internal =3D GL_DU8DV8_ATI;=0A=
- *type =3D GL_BYTE;=0A=
- /* No conversion - Just change the gl type */=0A=
- break;=0A=
- }=0A=
*convert =3D CONVERT_V8U8;=0A=
*format =3D GL_BGR;=0A=
*internal =3D GL_RGB8;=0A=
@@ -1678,7 +1671,6 @@ HRESULT d3dfmt_get_conv(IWineD3DSurfaceImpl *This, =
BOOL need_alpha_ck, BOOL use_=0A=
* 4th component, which is returned as alpha=0A=
*/=0A=
} else {=0A=
- /* Not supported by GL_ATI_envmap_bumpmap */=0A=
*format =3D GL_BGRA;=0A=
*internal =3D GL_RGB8;=0A=
*type =3D GL_UNSIGNED_INT_8_8_8_8_REV;=0A=
@@ -1692,7 +1684,6 @@ HRESULT d3dfmt_get_conv(IWineD3DSurfaceImpl *This, =
BOOL need_alpha_ck, BOOL use_=0A=
*internal =3D GL_RGBA8;=0A=
*type =3D GL_UNSIGNED_BYTE;=0A=
*target_bpp =3D 4;=0A=
- /* Not supported by GL_ATI_envmap_bumpmap */=0A=
break;=0A=
=0A=
case WINED3DFMT_V16U16:=0A=
@@ -1702,9 +1693,6 @@ HRESULT d3dfmt_get_conv(IWineD3DSurfaceImpl *This, =
BOOL need_alpha_ck, BOOL use_=0A=
*internal =3D GL_RGB16_EXT;=0A=
*type =3D GL_UNSIGNED_SHORT;=0A=
*target_bpp =3D 6;=0A=
- /* What should I do here about GL_ATI_envmap_bumpmap?=0A=
- * Convert it or allow data loss by loading it into a 8 bit =
/ channel texture?=0A=
- */=0A=
break;=0A=
=0A=
case WINED3DFMT_A4L4:=0A=
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c=0A=
index 94d8625..93cfc41 100644=0A=
--- a/dlls/wined3d/utils.c=0A=
+++ b/dlls/wined3d/utils.c=0A=
@@ -372,16 +372,12 @@ BOOL initPixelFormats(WineD3D_GL_Info *gl_info)=0A=
* an application that needs this because it causes performance =
problems due to=0A=
* shader recompiling in some games.=0A=
*/=0A=
- if(!GL_SUPPORT(ATI_ENVMAP_BUMPMAP) && =
!GL_SUPPORT(NV_TEXTURE_SHADER2)) {=0A=
+ if(!GL_SUPPORT(NV_TEXTURE_SHADER2)) {=0A=
/* signed -> unsigned fixup */=0A=
dst =3D getFmtIdx(WINED3DFMT_V8U8);=0A=
gl_info->gl_formats[dst].conversion_group =3D WINED3DFMT_V8U8;=0A=
dst =3D getFmtIdx(WINED3DFMT_V16U16);=0A=
gl_info->gl_formats[dst].conversion_group =3D WINED3DFMT_V8U8;=0A=
- } else if(GL_SUPPORT(ATI_ENVMAP_BUMPMAP)) {=0A=
- /* signed -> unsigned fixup */=0A=
- dst =3D getFmtIdx(WINED3DFMT_V16U16);=0A=
- gl_info->gl_formats[dst].conversion_group =3D WINED3DFMT_V16U16;=0A=
} else {=0A=
/* Blue =3D 1.0 fixup, disabled for now */=0A=
if(0) {=0A=
diff --git a/include/wine/wined3d_gl.h b/include/wine/wined3d_gl.h=0A=
index 25159b1..6036688 100644=0A=
--- a/include/wine/wined3d_gl.h=0A=
+++ b/include/wine/wined3d_gl.h=0A=
@@ -2843,23 +2843,6 @@ typedef void (WINE_GLAPI * =
PGLFNFINISHOBJECTAPPLEPROC) (GLenum, GLuint);=0A=
#define GL_APPLE_client_storage 1=0A=
#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2=0A=
#endif=0A=
-/* GL_ATI_envmap_bumpmap */=0A=
-#ifndef GL_ATI_envmap_bumpmap=0A=
-#define GL_ATI_envmap_bumpmap 1=0A=
-#define GL_BUMP_ROT_MATRIX_ATI 0x8775=0A=
-#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776=0A=
-#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777=0A=
-#define GL_BUMP_TEX_UNITS_ATI 0x8778=0A=
-#define GL_DUDV_ATI 0x8779=0A=
-#define GL_DU8DV8_ATI 0x877A=0A=
-#define GL_BUMP_ENVMAP_ATI 0x877B=0A=
-#define GL_BUMP_TARGET_ATI 0x877C=0A=
-#endif=0A=
-typedef void (WINE_GLAPI * PGLFNTEXBUMPPARAMETERIVATIPROC) (GLenum, =
GLint *);=0A=
-typedef void (WINE_GLAPI * PGLFNTEXBUMPPARAMETERFVATIPROC) (GLenum, =
GLfloat *);=0A=
-typedef void (WINE_GLAPI * PGLFNGETTEXBUMPPARAMETERIVATIPROC) (GLenum, =
GLint *);=0A=
-typedef void (WINE_GLAPI * PGLFNGETTEXBUMPPARAMETERFVATIPROC) (GLenum, =
GLfloat *);=0A=
-=0A=
/* GLX_SGI_video_sync */=0A=
typedef int (WINE_GLAPI * PGLXFNGETVIDEOSYNCSGIPROC) (unsigned int *);=0A=
typedef int (WINE_GLAPI * PGLXFNWAITVIDEOSYNCSGIPROC) (int, int, =
unsigned int *);=0A=
@@ -3389,7 +3372,6 @@ typedef enum _GL_SupportedExt {=0A=
ATI_TEXTURE_ENV_COMBINE3,=0A=
ATI_TEXTURE_MIRROR_ONCE,=0A=
EXT_VERTEX_SHADER,=0A=
- ATI_ENVMAP_BUMPMAP,=0A=
ATI_FRAGMENT_SHADER,=0A=
ATI_TEXTURE_COMPRESSION_3DC,=0A=
/* APPLE */=0A=
@@ -3691,11 +3673,6 @@ typedef enum _GL_SupportedExt {=0A=
USE_GL_FUNC(PGLFNISFENCEAPPLEPROC, =
glIsFenceAPPLE, APPLE_FENCE, NULL =
)\=0A=
USE_GL_FUNC(PGLFNTESTOBJECTAPPLEPROC, =
glTestObjectAPPLE, APPLE_FENCE, NULL =
)\=0A=
USE_GL_FUNC(PGLFNFINISHOBJECTAPPLEPROC, =
glFinishObjectAPPLE, APPLE_FENCE, NULL =
)\=0A=
- /* GL_ATI_envmap_bumpmap */ \=0A=
- USE_GL_FUNC(PGLFNTEXBUMPPARAMETERIVATIPROC, =
glTexBumpParameterivATI, ATI_ENVMAP_BUMPMAP, NULL =
)\=0A=
- USE_GL_FUNC(PGLFNTEXBUMPPARAMETERFVATIPROC, =
glTexBumpParameterfvATI, ATI_ENVMAP_BUMPMAP, NULL =
)\=0A=
- USE_GL_FUNC(PGLFNGETTEXBUMPPARAMETERIVATIPROC, =
glGetTexBumpParameterivATI, ATI_ENVMAP_BUMPMAP, NULL =
)\=0A=
- USE_GL_FUNC(PGLFNGETTEXBUMPPARAMETERFVATIPROC, =
glGetTexBumpParameterfvATI, ATI_ENVMAP_BUMPMAP, NULL =
)\=0A=
/* GLX_SGI_video_sync */ \=0A=
USE_GL_FUNC(PGLXFNGETVIDEOSYNCSGIPROC, =
glXGetVideoSyncSGI, SGI_VIDEO_SYNC, NULL =
)\=0A=
USE_GL_FUNC(PGLXFNWAITVIDEOSYNCSGIPROC, =
glXWaitVideoSyncSGI, SGI_VIDEO_SYNC, NULL =
)\=0A=
-- =0A=
1.5.6.4=0A=
=0A=
------=_NextPart_000_000F_01C93DE3.AF3A16A0--
More information about the wine-patches
mailing list