[D3D 46] Handle texture addressing modes in D3D7
Lionel Ulmer
lionel.ulmer at free.fr
Tue Dec 24 12:32:31 CST 2002
Changelog:
Handle texture addressing the D3D7 way
--
Lionel Ulmer - http://www.bbrox.org/
-------------- next part --------------
--- /home/ulmer/Wine/wine_base//dlls/ddraw/d3ddevice/mesa.c 2002-12-24 18:11:39.000000000 +0100
+++ /home/ulmer/Wine/wine_work//dlls/ddraw/d3ddevice/mesa.c 2002-12-24 18:09:44.000000000 +0100
@@ -1324,6 +1324,24 @@
glThis->render_state.mag = gl_state;
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gl_state);
break;
+
+ case D3DTSS_ADDRESS:
+ case D3DTSS_ADDRESSU:
+ case D3DTSS_ADDRESSV: {
+ GLenum arg = GL_REPEAT; /* Default value */
+ switch ((D3DTEXTUREADDRESS) dwState) {
+ case D3DTADDRESS_WRAP: if (TRACE_ON(ddraw)) DPRINTF("D3DTADDRESS_WRAP\n"); arg = GL_REPEAT; break;
+ case D3DTADDRESS_CLAMP: if (TRACE_ON(ddraw)) DPRINTF("D3DTADDRESS_CLAMP\n"); arg = GL_CLAMP; break;
+ case D3DTADDRESS_BORDER: if (TRACE_ON(ddraw)) DPRINTF("D3DTADDRESS_BORDER\n"); arg = GL_CLAMP_TO_EDGE; break;
+ default: ERR("Unhandled TEXTUREADDRESS mode %ld !\n", dwState);
+ }
+ if ((d3dTexStageStateType == D3DTSS_ADDRESS) ||
+ (d3dTexStageStateType == D3DTSS_ADDRESSU))
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, arg);
+ if ((d3dTexStageStateType == D3DTSS_ADDRESS) ||
+ (d3dTexStageStateType == D3DTSS_ADDRESSV))
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, arg);
+ } break;
default:
if (TRACE_ON(ddraw)) DPRINTF(" unhandled.\n");
More information about the wine-patches
mailing list