From da66dad0cca5f982b23c34925d8da3be7d7fc9ca Mon Sep 17 00:00:00 2001 From: Lionel Ulmer Date: Thu, 2 Jan 2003 19:43:08 +0000 Subject: [PATCH] Handle texture addressing the D3D7 way. --- dlls/ddraw/d3ddevice/mesa.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/dlls/ddraw/d3ddevice/mesa.c b/dlls/ddraw/d3ddevice/mesa.c index 2e2c36ab33f..873c9411cf8 100644 --- a/dlls/ddraw/d3ddevice/mesa.c +++ b/dlls/ddraw/d3ddevice/mesa.c @@ -1324,6 +1324,24 @@ GL_IDirect3DDeviceImpl_7_3T_SetTextureStageState(LPDIRECT3DDEVICE7 iface, 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"); -- 2.11.4.GIT