Well it seems only an activation flag, so no specific code So, i this it should a code like that:
case D3DRS_WRAP0: TRACE("Wrap Activation Flag for TextureStage 0 to %04x (QRST)\n", (DWORD) Value); break;
and in TSS wraping mngt (IDirect3DDevice8Impl_SetTextureStageState):
switch (Type) { case D3DTSS_ADDRESSU: if (D3DTADDRESS_WRAP != Value || (This->UpdateStateBlock->renderstate[D3DRS_WRAP0 + Stage] & D3DWRAPCOORD_0)) { 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: if (D3DTADDRESS_WRAP != Value || (This->UpdateStateBlock->renderstate[D3DRS_WRAP0 + Stage] & D3DWRAPCOORD_1)) { 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: if (D3DTADDRESS_WRAP != Value || (This->UpdateStateBlock->renderstate[D3DRS_WRAP0 + Stage] & D3DWRAPCOORD_2)) { 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 */ }
But i don't know if its valid to call SetTextureStageState(...D3DTADDRESS_WRAP) before SetRenderState(...D3DWRAP_U...) (you should test) If you look at http://if.dynsite.net/t-pot/program/28_bump/bg_cpp_ps.html they do it
Well... im really a noob (learning c since 3 days i think oO ) could you please explain your code? Im not getting totally through it...
case D3DRS_WRAP0: TRACE("Wrap Activation Flag for TextureStage 0 to %04x (QRST)\n", (DWORD) Value); break;
I dont understand what this is good for... and ive no idea what is done in the different d3dtss calls... i really do what i can, but i think i lack experience...
Okay, i think i got one step further: on gamedev.net i found the suggestion to use glTexParameteri(GL_TEXTURE_2D, TEXTURE_WRAP_U/V/W, wrapParm). Besides, could this also be an 3D Texture?
Yes: 3 param U/V/W
*Dou* my fault...
I think I worked it out and im going to try it out now, but theres one thing bothering me: as mentioned earlier in d3d there exists the d3dwrapcoord_3 flag which wraps textures through the 4th dimension (that should be time). However, i was unable to find _anything_ going into that direction in opengl so i stubbed it out for now. Does anybody know how to proceed with this?
I think its used for cube texture (need face selection) but don't worry for now
Alright.
They seems deprecated since DX8.1 (maybe never implemented) D3DRS_POSITIONORDER = 172, D3DRS_NORMALORDER = 173,
Okay, they dont seem to break anything and i guess its quite painfull to figure out what they do, so ill leave them for now.
Regards, Nikolas