Sets up some default rendering states for Direct3D
| 1188 | |
| 1189 | // Sets up some default rendering states for Direct3D |
| 1190 | void d3d_SetDefaultStates() { |
| 1191 | // lpD3DDevice->SetLightState( D3DLIGHTSTATE_AMBIENT, 0xffffffff ); |
| 1192 | lpD3DDevice->SetRenderState(D3DRENDERSTATE_TEXTUREPERSPECTIVE, TRUE); |
| 1193 | lpD3DDevice->SetRenderState(D3DRENDERSTATE_ALPHATESTENABLE, TRUE); |
| 1194 | lpD3DDevice->SetRenderState(D3DRENDERSTATE_ALPHAFUNC, D3DCMP_GREATER); |
| 1195 | lpD3DDevice->SetRenderState(D3DRENDERSTATE_ALPHAREF, 0); |
| 1196 | lpD3DDevice->SetRenderState(D3DRENDERSTATE_DITHERENABLE, TRUE); |
| 1197 | |
| 1198 | if (d3d_MultiTexture) { |
| 1199 | // Set second texel unit stages |
| 1200 | lpD3DDevice->SetTextureStageState(1, D3DTSS_MINFILTER, D3DTFN_LINEAR); |
| 1201 | lpD3DDevice->SetTextureStageState(1, D3DTSS_MAGFILTER, D3DTFG_LINEAR); |
| 1202 | lpD3DDevice->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE); |
| 1203 | lpD3DDevice->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_DISABLE); |
| 1204 | lpD3DDevice->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1); |
| 1205 | lpD3DDevice->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE); |
| 1206 | lpD3DDevice->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT); |
| 1207 | lpD3DDevice->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE); |
| 1208 | lpD3DDevice->SetTextureStageState(1, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE); |
| 1209 | |
| 1210 | lpD3DDevice->SetTextureStageState(1, D3DTSS_ADDRESS, D3DTADDRESS_CLAMP); |
| 1211 | |
| 1212 | D3D_multitexture_state = false; |
| 1213 | } |
| 1214 | |
| 1215 | if (d3d_CanBumpmap) { |
| 1216 | D3D_bumpmap_state = false; |
| 1217 | float _val = 0; |
| 1218 | |
| 1219 | lpD3DDevice->SetTextureStageState(1, D3DTSS_MIPFILTER, D3DTFP_LINEAR); |
| 1220 | lpD3DDevice->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0); |
| 1221 | lpD3DDevice->SetTextureStageState(2, D3DTSS_TEXCOORDINDEX, 1); |
| 1222 | |
| 1223 | lpD3DDevice->SetTextureStageState(1, D3DTSS_BUMPENVMAT00, *(DWORD *)(&(_val = 1.0f))); |
| 1224 | lpD3DDevice->SetTextureStageState(1, D3DTSS_BUMPENVMAT01, *(DWORD *)(&(_val = 0.0f))); |
| 1225 | lpD3DDevice->SetTextureStageState(1, D3DTSS_BUMPENVMAT10, *(DWORD *)(&(_val = 0.0f))); |
| 1226 | lpD3DDevice->SetTextureStageState(1, D3DTSS_BUMPENVMAT11, *(DWORD *)(&(_val = 1.0f))); |
| 1227 | |
| 1228 | lpD3DDevice->SetTextureStageState(1, D3DTSS_BUMPENVLSCALE, *(DWORD *)(&(_val = 1.0f))); |
| 1229 | lpD3DDevice->SetTextureStageState(1, D3DTSS_BUMPENVLOFFSET, *(DWORD *)(&(_val = 0.0f))); |
| 1230 | |
| 1231 | lpD3DDevice->SetTextureStageState(2, D3DTSS_ADDRESS, D3DTADDRESS_CLAMP); |
| 1232 | lpD3DDevice->SetTextureStageState(2, D3DTSS_COLORARG1, D3DTA_TEXTURE); |
| 1233 | lpD3DDevice->SetTextureStageState(2, D3DTSS_COLORARG2, D3DTA_CURRENT); |
| 1234 | } |
| 1235 | |
| 1236 | lpD3DDevice->SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, TRUE); |
| 1237 | lpD3DDevice->SetRenderState(D3DRENDERSTATE_ZFUNC, D3DCMP_LESSEQUAL); |
| 1238 | lpD3DDevice->SetRenderState(D3DRENDERSTATE_CULLMODE, D3DCULL_NONE); |
| 1239 | |
| 1240 | // Choose Wbuffer or straight zbuffer |
| 1241 | |
| 1242 | d3d_SetZBufferState(1); |
| 1243 | |
| 1244 | D3D_state.cur_color = 0x00FFFFFF; |
| 1245 | D3D_state.cur_bilinear_state = -1; |
| 1246 | D3D_state.cur_zbuffer_state = 1; |
| 1247 | D3D_state.cur_texture_quality = -1; |
no test coverage detected