[D3D8 - 4] split of patch1: caps fixes
Raphaël Junqueira
fenix at club-internet.fr
Sat Jan 11 10:09:08 CST 2003
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Changelog:
- Resend of last Jason texture work
- Jason begin mipmaping so declare it in caps
Raphael
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
iD8DBQE+IEGkp7NA3AmQTU4RAs4LAJ0RwcJj/O0z0dRbH/PNNFjbrJOugwCaA73p
34ze9WqVmdDGtrZVrcLkzrA=
=vQtN
-----END PGP SIGNATURE-----
-------------- next part --------------
Index: dlls/d3d8/device.c
===================================================================
RCS file: /home/wine/wine/dlls/d3d8/device.c,v
retrieving revision 1.23
diff -u -r1.23 device.c
--- dlls/d3d8/device.c 9 Jan 2003 06:02:39 -0000 1.23
+++ dlls/d3d8/device.c 10 Jan 2003 23:43:33 -0000
@@ -3455,22 +3631,71 @@
break;
}
+ case D3DTSS_ADDRESSU :
+ case D3DTSS_ADDRESSV :
+ case D3DTSS_ADDRESSW :
+ {
+ GLint wrapParm = GL_REPEAT;
+ switch (Value) {
+ case D3DTADDRESS_WRAP: wrapParm = GL_REPEAT; break;
+ case D3DTADDRESS_CLAMP: wrapParm = GL_CLAMP; break;
+ case D3DTADDRESS_BORDER: wrapParm = GL_CLAMP_TO_EDGE; break;
+
+ case D3DTADDRESS_MIRROR: /* Unsupported in OpenGL? */
+ case D3DTADDRESS_MIRRORONCE: /* Unsupported in OpenGL? */
+ default:
+ FIXME("Unrecognized or unsupported D3DTADDRESS_* value %ld, state %d\n", Value, Type);
+ wrapParm = GL_REPEAT;
+ }
+
+ switch (Type) {
+ case D3DTSS_ADDRESSU:
+ TRACE("Setting WRAP_S to %d for %x\n", wrapParm, This->StateBlock.textureDimensions[Stage]);
+ glTexParameteri(This->StateBlock.textureDimensions[Stage], GL_TEXTURE_WRAP_S, wrapParm);
+ checkGLcall("glTexParameteri(..., GL_TEXTURE_WRAP_S, wrapParm)");
+ break;
+ case D3DTSS_ADDRESSV:
+ TRACE("Setting WRAP_T to %d for %x\n", wrapParm, This->StateBlock.textureDimensions[Stage]);
+ glTexParameteri(This->StateBlock.textureDimensions[Stage], GL_TEXTURE_WRAP_T, wrapParm);
+ checkGLcall("glTexParameteri(..., GL_TEXTURE_WRAP_T, wrapParm)");
+ break;
+ case D3DTSS_ADDRESSW:
+ TRACE("Setting WRAP_R to %d for %x\n", wrapParm, This->StateBlock.textureDimensions[Stage]);
+ glTexParameteri(This->StateBlock.textureDimensions[Stage], GL_TEXTURE_WRAP_R, wrapParm);
+ checkGLcall("glTexParameteri(..., GL_TEXTURE_WRAP_R, wrapParm)");
+ break;
+ default: /* nop */
+ break; /** stupic compilator */
+ }
+ }
+ break;
+
+ case D3DTSS_BORDERCOLOR :
+ {
+ float col[4];
+ col[0] = ((Value >> 16) & 0xFF) / 255.0;
+ col[1] = ((Value >> 8) & 0xFF) / 255.0;
+ col[2] = ((Value >> 0) & 0xFF) / 255.0;
+ col[3] = ((Value >> 24) & 0xFF) / 255.0;
+
+ TRACE("Setting border color for %x to %lx\n", This->StateBlock.textureDimensions[Stage], Value);
+ glTexParameterfv(This->StateBlock.textureDimensions[Stage], GL_TEXTURE_BORDER_COLOR, &col[0]);
+ checkGLcall("glTexParameteri(..., GL_TEXTURE_BORDER_COLOR, ...)");
+ }
+ break;
+
/* Unhandled */
case D3DTSS_BUMPENVMAT00 :
case D3DTSS_BUMPENVMAT01 :
case D3DTSS_BUMPENVMAT10 :
case D3DTSS_BUMPENVMAT11 :
case D3DTSS_TEXCOORDINDEX :
- case D3DTSS_ADDRESSU :
- case D3DTSS_ADDRESSV :
- case D3DTSS_BORDERCOLOR :
case D3DTSS_MIPMAPLODBIAS :
case D3DTSS_MAXMIPLEVEL :
case D3DTSS_MAXANISOTROPY :
case D3DTSS_BUMPENVLSCALE :
case D3DTSS_BUMPENVLOFFSET :
case D3DTSS_TEXTURETRANSFORMFLAGS :
- case D3DTSS_ADDRESSW :
case D3DTSS_RESULTARG :
default:
/* Put back later: FIXME("(%p) : stub, Stage=%ld, Type=%d, Value =%ld\n", This, Stage, Type, Value); */
Index: dlls/d3d8/directx.c
===================================================================
RCS file: /home/wine/wine/dlls/d3d8/directx.c,v
retrieving revision 1.11
diff -u -r1.11 directx.c
--- dlls/d3d8/directx.c 7 Jan 2003 20:36:30 -0000 1.11
+++ dlls/d3d8/directx.c 10 Jan 2003 23:43:50 -0000
@@ -316,8 +326,8 @@
pCaps->DestBlendCaps = 0;
pCaps->AlphaCmpCaps = 0;
pCaps->ShadeCaps = D3DPSHADECAPS_SPECULARGOURAUDRGB | D3DPSHADECAPS_COLORGOURAUDRGB ;
- pCaps->TextureCaps = D3DPTEXTURECAPS_ALPHA | D3DPTEXTURECAPS_ALPHAPALETTE | D3DPTEXTURECAPS_CUBEMAP | D3DPTEXTURECAPS_POW2 | D3DPTEXTURECAPS_VOLUMEMAP;
+ pCaps->TextureCaps = D3DPTEXTURECAPS_ALPHA | D3DPTEXTURECAPS_ALPHAPALETTE | D3DPTEXTURECAPS_CUBEMAP | D3DPTEXTURECAPS_POW2 | D3DPTEXTURECAPS_VOLUMEMAP | D3DPTEXTURECAPS_MIPMAP;
pCaps->TextureFilterCaps = 0;
pCaps->CubeTextureFilterCaps = 0;
pCaps->VolumeTextureFilterCaps = 0;
More information about the wine-patches
mailing list