Skip to main content
gamedev.net
🔒 Locked

Default Values

Started by blaze02 3 replies 2.4k views
Original Post
blaze02
blaze02
I've heard quite a few people say to not rely on the DirectX defaults. I never really took it to heart, mostly due to my blind obedience to MSDN. After a good investigation into why my textures were horribly blurred, I found the culprit. I'm about 95% sure my Mip LOD Bias render state was not initializing to the default, thus my textures were all using a mipmapped texture, instead of the nearest sized texture. So does this sort of thing happen often, defaults not being initialized to the DirectX default? Also, are there any common render states I should make sure to set? Thanks for any help.
dave
dave
I've not had any experience of this.

Dave
jollyjeffers
jollyjeffers
Admittedly its not hurt me recently, but I've had similar things happen on the odd occasion. I think the worst ones seem to be fringe cases where, for example, your PC automagically thinks its a good idea to suspend/hibernate whilst you've left a D3D program running [rolleyes]

Here's a list of default values, presumably its accurate [smile]

I can't find it now, but there was some C++ utility code that would set all default states for you - was quite useful to call it immediately after a device reset...

hth
Jack
<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ |
Demirug
Demirug
This is a common problem.

The reason for this is that nearly every graphics driver allows overriding the default texture filter settings. Even if the users never touch this it generally default to a triiinear filter. Because of this you should never trust the default values.
Evil Steve
Evil Steve
Quote:
Original post by jollyjeffers
I can't find it now, but there was some C++ utility code that would set all default states for you - was quite useful to call it immediately after a device reset...
Straight from my D3DDevice class:
void CD3DDevice::InitDefaultRenderstates(){float fTemp;	// Set render states	m_theRenderStates[D3DRS_ZENABLE] = (DWORD)D3DZB_TRUE;	m_theRenderStates[D3DRS_FILLMODE] = (DWORD)D3DFILL_SOLID;	m_theRenderStates[D3DRS_SHADEMODE] = (DWORD)D3DSHADE_GOURAUD;	m_theRenderStates[D3DRS_ZWRITEENABLE] = (DWORD)TRUE;	m_theRenderStates[D3DRS_ALPHATESTENABLE] = (DWORD)FALSE;	m_theRenderStates[D3DRS_LASTPIXEL] = (DWORD)TRUE;	m_theRenderStates[D3DRS_SRCBLEND] = (DWORD)D3DBLEND_ONE;	m_theRenderStates[D3DRS_DESTBLEND] = (DWORD)D3DBLEND_ZERO;	m_theRenderStates[D3DRS_CULLMODE] = (DWORD)D3DCULL_CCW;	m_theRenderStates[D3DRS_ZFUNC] = (DWORD)D3DCMP_LESSEQUAL;	m_theRenderStates[D3DRS_ALPHAREF] = (DWORD)0;	m_theRenderStates[D3DRS_ALPHAFUNC] = (DWORD)D3DCMP_ALWAYS;	m_theRenderStates[D3DRS_DITHERENABLE] = (DWORD)FALSE;	m_theRenderStates[D3DRS_ALPHABLENDENABLE] = (DWORD)FALSE;	m_theRenderStates[D3DRS_FOGENABLE] = (DWORD)FALSE;	m_theRenderStates[D3DRS_SPECULARENABLE] = (DWORD)FALSE;	m_theRenderStates[D3DRS_FOGCOLOR] = (DWORD)0;	m_theRenderStates[D3DRS_FOGTABLEMODE] = (DWORD)D3DFOG_NONE;	fTemp = 0.0f; m_theRenderStates[D3DRS_FOGSTART] = (DWORD)*((DWORD*)(&fTemp));	fTemp = 1.0f; m_theRenderStates[D3DRS_FOGEND] = (DWORD)*((DWORD*)(&fTemp));	m_theRenderStates[D3DRS_FOGDENSITY] = (DWORD)*((DWORD*)(&fTemp));	m_theRenderStates[D3DRS_RANGEFOGENABLE] = (DWORD)FALSE;	m_theRenderStates[D3DRS_STENCILENABLE] = (DWORD)FALSE;	m_theRenderStates[D3DRS_STENCILFAIL] = (DWORD)D3DSTENCILOP_KEEP;	m_theRenderStates[D3DRS_STENCILZFAIL] = (DWORD)D3DSTENCILOP_KEEP;	m_theRenderStates[D3DRS_STENCILPASS] = (DWORD)D3DSTENCILOP_KEEP;	m_theRenderStates[D3DRS_STENCILFUNC] = (DWORD)D3DCMP_ALWAYS;	m_theRenderStates[D3DRS_STENCILREF] = (DWORD)0;	m_theRenderStates[D3DRS_STENCILMASK] = (DWORD)0xFFFFFFFF;	m_theRenderStates[D3DRS_STENCILWRITEMASK] = (DWORD)0xFFFFFFFF;	m_theRenderStates[D3DRS_TEXTUREFACTOR] = (DWORD)0xFFFFFFFF;	m_theRenderStates[D3DRS_WRAP0] = (DWORD)0;	m_theRenderStates[D3DRS_WRAP1] = (DWORD)0;	m_theRenderStates[D3DRS_WRAP2] = (DWORD)0;	m_theRenderStates[D3DRS_WRAP3] = (DWORD)0;	m_theRenderStates[D3DRS_WRAP4] = (DWORD)0;	m_theRenderStates[D3DRS_WRAP5] = (DWORD)0;	m_theRenderStates[D3DRS_WRAP6] = (DWORD)0;	m_theRenderStates[D3DRS_WRAP7] = (DWORD)0;	m_theRenderStates[D3DRS_CLIPPING] = (DWORD)TRUE;	m_theRenderStates[D3DRS_LIGHTING] = (DWORD)TRUE;	m_theRenderStates[D3DRS_AMBIENT] = (DWORD)0;	m_theRenderStates[D3DRS_FOGVERTEXMODE] = (DWORD)D3DFOG_NONE;	m_theRenderStates[D3DRS_COLORVERTEX] = (DWORD)TRUE;	m_theRenderStates[D3DRS_LOCALVIEWER] = (DWORD)TRUE;	m_theRenderStates[D3DRS_NORMALIZENORMALS] = (DWORD)FALSE;	m_theRenderStates[D3DRS_DIFFUSEMATERIALSOURCE] = (DWORD)D3DMCS_COLOR1;	m_theRenderStates[D3DRS_SPECULARMATERIALSOURCE] = (DWORD)D3DMCS_COLOR2;	m_theRenderStates[D3DRS_AMBIENTMATERIALSOURCE] = (DWORD)D3DMCS_MATERIAL;	m_theRenderStates[D3DRS_EMISSIVEMATERIALSOURCE] = (DWORD)D3DMCS_MATERIAL;	m_theRenderStates[D3DRS_VERTEXBLEND] = (DWORD)D3DVBF_DISABLE;	m_theRenderStates[D3DRS_CLIPPLANEENABLE] = (DWORD)0;	fTemp = 64.0f; m_theRenderStates[D3DRS_POINTSIZE] = (DWORD)*((DWORD*)(&fTemp));	fTemp = 1.0f; m_theRenderStates[D3DRS_POINTSIZE_MIN] = (DWORD)*((DWORD*)(&fTemp));	m_theRenderStates[D3DRS_POINTSPRITEENABLE] = (DWORD)FALSE;	m_theRenderStates[D3DRS_POINTSCALEENABLE] = (DWORD)FALSE;	m_theRenderStates[D3DRS_POINTSCALE_A] = (DWORD)*((DWORD*)(&fTemp));	fTemp = 0.0f; m_theRenderStates[D3DRS_POINTSCALE_B] = (DWORD)*((DWORD*)(&fTemp));	m_theRenderStates[D3DRS_POINTSCALE_C] = (DWORD)*((DWORD*)(&fTemp));	m_theRenderStates[D3DRS_MULTISAMPLEANTIALIAS] = (DWORD)TRUE;	m_theRenderStates[D3DRS_MULTISAMPLEMASK] = (DWORD)0xFFFFFFFF;	m_theRenderStates[D3DRS_PATCHEDGESTYLE] = (DWORD)D3DPATCHEDGE_DISCRETE;	m_theRenderStates[D3DRS_DEBUGMONITORTOKEN] = (DWORD)D3DDMT_ENABLE;	fTemp = 64.0f; m_theRenderStates[D3DRS_POINTSIZE_MAX] = (DWORD)*((DWORD*)(&fTemp));	m_theRenderStates[D3DRS_INDEXEDVERTEXBLENDENABLE] = (DWORD)FALSE;	m_theRenderStates[D3DRS_COLORWRITEENABLE] = (DWORD)0x0000000F;	fTemp = 0.0f; m_theRenderStates[D3DRS_TWEENFACTOR] = (DWORD)*((DWORD*)(&fTemp));	m_theRenderStates[D3DRS_BLENDOP] = (DWORD)D3DBLENDOP_ADD;	m_theRenderStates[D3DRS_POSITIONDEGREE] = (DWORD)D3DDEGREE_CUBIC;	m_theRenderStates[D3DRS_NORMALDEGREE] = (DWORD)D3DDEGREE_LINEAR;	m_theRenderStates[D3DRS_SCISSORTESTENABLE] = (DWORD)FALSE;	m_theRenderStates[D3DRS_SLOPESCALEDEPTHBIAS] = (DWORD)0;	m_theRenderStates[D3DRS_ANTIALIASEDLINEENABLE] = (DWORD)FALSE;	fTemp = 1.0f; m_theRenderStates[D3DRS_MINTESSELLATIONLEVEL] = (DWORD)*((DWORD*)(&fTemp));	m_theRenderStates[D3DRS_MAXTESSELLATIONLEVEL] = (DWORD)*((DWORD*)(&fTemp));	fTemp = 0.0f; m_theRenderStates[D3DRS_ADAPTIVETESS_X] = (DWORD)*((DWORD*)(&fTemp));	m_theRenderStates[D3DRS_ADAPTIVETESS_Y] = (DWORD)*((DWORD*)(&fTemp));	fTemp = 1.0f; m_theRenderStates[D3DRS_ADAPTIVETESS_Z] = (DWORD)*((DWORD*)(&fTemp));	fTemp = 0.0f; m_theRenderStates[D3DRS_ADAPTIVETESS_W] = (DWORD)*((DWORD*)(&fTemp));	m_theRenderStates[D3DRS_ENABLEADAPTIVETESSELLATION] = (DWORD)FALSE;	m_theRenderStates[D3DRS_TWOSIDEDSTENCILMODE] = (DWORD)FALSE;	m_theRenderStates[D3DRS_CCW_STENCILFAIL] = (DWORD)D3DSTENCILOP_KEEP;	m_theRenderStates[D3DRS_CCW_STENCILZFAIL] = (DWORD)D3DSTENCILOP_KEEP;	m_theRenderStates[D3DRS_CCW_STENCILPASS] = (DWORD)D3DSTENCILOP_KEEP;	m_theRenderStates[D3DRS_CCW_STENCILFUNC] = (DWORD)D3DCMP_ALWAYS;	m_theRenderStates[D3DRS_COLORWRITEENABLE1] = (DWORD)0x0000000f;	m_theRenderStates[D3DRS_COLORWRITEENABLE2] = (DWORD)0x0000000f;	m_theRenderStates[D3DRS_COLORWRITEENABLE3] = (DWORD)0x0000000f;	m_theRenderStates[D3DRS_BLENDFACTOR] = (DWORD)0xffffffff;	m_theRenderStates[D3DRS_SRGBWRITEENABLE] = (DWORD)0;	m_theRenderStates[D3DRS_DEPTHBIAS] = (DWORD)*((DWORD*)(&fTemp));	m_theRenderStates[D3DRS_WRAP8] = (DWORD)0;	m_theRenderStates[D3DRS_WRAP9] = (DWORD)0;	m_theRenderStates[D3DRS_WRAP10] = (DWORD)0;	m_theRenderStates[D3DRS_WRAP11] = (DWORD)0;	m_theRenderStates[D3DRS_WRAP12] = (DWORD)0;	m_theRenderStates[D3DRS_WRAP13] = (DWORD)0;	m_theRenderStates[D3DRS_WRAP14] = (DWORD)0;	m_theRenderStates[D3DRS_WRAP15] = (DWORD)0;	m_theRenderStates[D3DRS_SEPARATEALPHABLENDENABLE] = (DWORD)FALSE;	m_theRenderStates[D3DRS_SRCBLENDALPHA] = (DWORD)D3DBLEND_ONE;	m_theRenderStates[D3DRS_DESTBLENDALPHA] = (DWORD)D3DBLEND_ZERO;	m_theRenderStates[D3DRS_BLENDOPALPHA] = (DWORD)D3DBLENDOP_ADD;}void CD3DDevice::PostReset(){	// Set renderstates //	m_pDevice->SetRenderState(D3DRS_ZENABLE, m_theRenderStates[D3DRS_ZENABLE]);	m_pDevice->SetRenderState(D3DRS_FILLMODE, m_theRenderStates[D3DRS_FILLMODE]);	m_pDevice->SetRenderState(D3DRS_SHADEMODE, m_theRenderStates[D3DRS_SHADEMODE]);	m_pDevice->SetRenderState(D3DRS_ZWRITEENABLE, m_theRenderStates[D3DRS_ZWRITEENABLE]);	m_pDevice->SetRenderState(D3DRS_ALPHATESTENABLE, m_theRenderStates[D3DRS_ALPHATESTENABLE]);	m_pDevice->SetRenderState(D3DRS_LASTPIXEL, m_theRenderStates[D3DRS_LASTPIXEL]);	m_pDevice->SetRenderState(D3DRS_SRCBLEND, m_theRenderStates[D3DRS_SRCBLEND]);	m_pDevice->SetRenderState(D3DRS_DESTBLEND, m_theRenderStates[D3DRS_DESTBLEND]);	m_pDevice->SetRenderState(D3DRS_CULLMODE, m_theRenderStates[D3DRS_CULLMODE]);	m_pDevice->SetRenderState(D3DRS_ZFUNC, m_theRenderStates[D3DRS_ZFUNC]);	m_pDevice->SetRenderState(D3DRS_ALPHAREF, m_theRenderStates[D3DRS_ALPHAREF]);	m_pDevice->SetRenderState(D3DRS_ALPHAFUNC, m_theRenderStates[D3DRS_ALPHAFUNC]);	m_pDevice->SetRenderState(D3DRS_DITHERENABLE, m_theRenderStates[D3DRS_DITHERENABLE]);	m_pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, m_theRenderStates[D3DRS_ALPHABLENDENABLE]);	m_pDevice->SetRenderState(D3DRS_FOGENABLE, m_theRenderStates[D3DRS_FOGENABLE]);	m_pDevice->SetRenderState(D3DRS_SPECULARENABLE, m_theRenderStates[D3DRS_SPECULARENABLE]);	m_pDevice->SetRenderState(D3DRS_FOGCOLOR, m_theRenderStates[D3DRS_FOGCOLOR]);	m_pDevice->SetRenderState(D3DRS_FOGTABLEMODE, m_theRenderStates[D3DRS_FOGTABLEMODE]);	m_pDevice->SetRenderState(D3DRS_FOGSTART, m_theRenderStates[D3DRS_FOGSTART]);	m_pDevice->SetRenderState(D3DRS_FOGEND, m_theRenderStates[D3DRS_FOGEND]);	m_pDevice->SetRenderState(D3DRS_FOGDENSITY, m_theRenderStates[D3DRS_FOGDENSITY]);	m_pDevice->SetRenderState(D3DRS_RANGEFOGENABLE, m_theRenderStates[D3DRS_RANGEFOGENABLE]);	m_pDevice->SetRenderState(D3DRS_STENCILENABLE, m_theRenderStates[D3DRS_STENCILENABLE]);	m_pDevice->SetRenderState(D3DRS_STENCILFAIL, m_theRenderStates[D3DRS_STENCILFAIL]);	m_pDevice->SetRenderState(D3DRS_STENCILZFAIL, m_theRenderStates[D3DRS_STENCILZFAIL]);	m_pDevice->SetRenderState(D3DRS_STENCILPASS, m_theRenderStates[D3DRS_STENCILPASS]);	m_pDevice->SetRenderState(D3DRS_STENCILFUNC, m_theRenderStates[D3DRS_STENCILFUNC]);	m_pDevice->SetRenderState(D3DRS_STENCILREF, m_theRenderStates[D3DRS_STENCILREF]);	m_pDevice->SetRenderState(D3DRS_STENCILMASK, m_theRenderStates[D3DRS_STENCILMASK]);	m_pDevice->SetRenderState(D3DRS_STENCILWRITEMASK, m_theRenderStates[D3DRS_STENCILWRITEMASK]);	m_pDevice->SetRenderState(D3DRS_TEXTUREFACTOR, m_theRenderStates[D3DRS_TEXTUREFACTOR]);	m_pDevice->SetRenderState(D3DRS_WRAP0, m_theRenderStates[D3DRS_WRAP0]);	m_pDevice->SetRenderState(D3DRS_WRAP1, m_theRenderStates[D3DRS_WRAP1]);	m_pDevice->SetRenderState(D3DRS_WRAP2, m_theRenderStates[D3DRS_WRAP2]);	m_pDevice->SetRenderState(D3DRS_WRAP3, m_theRenderStates[D3DRS_WRAP3]);	m_pDevice->SetRenderState(D3DRS_WRAP4, m_theRenderStates[D3DRS_WRAP4]);	m_pDevice->SetRenderState(D3DRS_WRAP5, m_theRenderStates[D3DRS_WRAP5]);	m_pDevice->SetRenderState(D3DRS_WRAP6, m_theRenderStates[D3DRS_WRAP6]);	m_pDevice->SetRenderState(D3DRS_WRAP7, m_theRenderStates[D3DRS_WRAP7]);	m_pDevice->SetRenderState(D3DRS_CLIPPING, m_theRenderStates[D3DRS_CLIPPING]);	m_pDevice->SetRenderState(D3DRS_LIGHTING, m_theRenderStates[D3DRS_LIGHTING]);	m_pDevice->SetRenderState(D3DRS_AMBIENT, m_theRenderStates[D3DRS_AMBIENT]);	m_pDevice->SetRenderState(D3DRS_FOGVERTEXMODE, m_theRenderStates[D3DRS_FOGVERTEXMODE]);	m_pDevice->SetRenderState(D3DRS_COLORVERTEX, m_theRenderStates[D3DRS_COLORVERTEX]);	m_pDevice->SetRenderState(D3DRS_LOCALVIEWER, m_theRenderStates[D3DRS_LOCALVIEWER]);	m_pDevice->SetRenderState(D3DRS_NORMALIZENORMALS, m_theRenderStates[D3DRS_NORMALIZENORMALS]);	m_pDevice->SetRenderState(D3DRS_DIFFUSEMATERIALSOURCE, m_theRenderStates[D3DRS_DIFFUSEMATERIALSOURCE]);	m_pDevice->SetRenderState(D3DRS_SPECULARMATERIALSOURCE, m_theRenderStates[D3DRS_SPECULARMATERIALSOURCE]);	m_pDevice->SetRenderState(D3DRS_AMBIENTMATERIALSOURCE, m_theRenderStates[D3DRS_AMBIENTMATERIALSOURCE]);	m_pDevice->SetRenderState(D3DRS_EMISSIVEMATERIALSOURCE, m_theRenderStates[D3DRS_EMISSIVEMATERIALSOURCE]);	m_pDevice->SetRenderState(D3DRS_VERTEXBLEND, m_theRenderStates[D3DRS_VERTEXBLEND]);	m_pDevice->SetRenderState(D3DRS_CLIPPLANEENABLE, m_theRenderStates[D3DRS_CLIPPLANEENABLE]);	m_pDevice->SetRenderState(D3DRS_POINTSIZE, m_theRenderStates[D3DRS_POINTSIZE]);	m_pDevice->SetRenderState(D3DRS_POINTSIZE_MIN, m_theRenderStates[D3DRS_POINTSIZE_MIN]);	m_pDevice->SetRenderState(D3DRS_POINTSPRITEENABLE, m_theRenderStates[D3DRS_POINTSPRITEENABLE]);	m_pDevice->SetRenderState(D3DRS_POINTSCALEENABLE, m_theRenderStates[D3DRS_POINTSCALEENABLE]);	m_pDevice->SetRenderState(D3DRS_POINTSCALE_A, m_theRenderStates[D3DRS_POINTSCALE_A]);	m_pDevice->SetRenderState(D3DRS_POINTSCALE_B, m_theRenderStates[D3DRS_POINTSCALE_B]);	m_pDevice->SetRenderState(D3DRS_POINTSCALE_C, m_theRenderStates[D3DRS_POINTSCALE_C]);	m_pDevice->SetRenderState(D3DRS_MULTISAMPLEANTIALIAS, m_theRenderStates[D3DRS_MULTISAMPLEANTIALIAS]);	m_pDevice->SetRenderState(D3DRS_MULTISAMPLEMASK, m_theRenderStates[D3DRS_MULTISAMPLEMASK]);	m_pDevice->SetRenderState(D3DRS_PATCHEDGESTYLE, m_theRenderStates[D3DRS_PATCHEDGESTYLE]);	m_pDevice->SetRenderState(D3DRS_DEBUGMONITORTOKEN, m_theRenderStates[D3DRS_DEBUGMONITORTOKEN]);	m_pDevice->SetRenderState(D3DRS_POINTSIZE_MAX, m_theRenderStates[D3DRS_POINTSIZE_MAX]);	m_pDevice->SetRenderState(D3DRS_INDEXEDVERTEXBLENDENABLE, m_theRenderStates[D3DRS_INDEXEDVERTEXBLENDENABLE]);	m_pDevice->SetRenderState(D3DRS_COLORWRITEENABLE, m_theRenderStates[D3DRS_COLORWRITEENABLE]);	m_pDevice->SetRenderState(D3DRS_TWEENFACTOR, m_theRenderStates[D3DRS_TWEENFACTOR]);	m_pDevice->SetRenderState(D3DRS_BLENDOP, m_theRenderStates[D3DRS_BLENDOP]);	m_pDevice->SetRenderState(D3DRS_POSITIONDEGREE, m_theRenderStates[D3DRS_POSITIONDEGREE]);	m_pDevice->SetRenderState(D3DRS_NORMALDEGREE, m_theRenderStates[D3DRS_NORMALDEGREE]);	m_pDevice->SetRenderState(D3DRS_SCISSORTESTENABLE, m_theRenderStates[D3DRS_SCISSORTESTENABLE]);	m_pDevice->SetRenderState(D3DRS_SLOPESCALEDEPTHBIAS, m_theRenderStates[D3DRS_SLOPESCALEDEPTHBIAS]);	m_pDevice->SetRenderState(D3DRS_ANTIALIASEDLINEENABLE, m_theRenderStates[D3DRS_ANTIALIASEDLINEENABLE]);	m_pDevice->SetRenderState(D3DRS_MINTESSELLATIONLEVEL, m_theRenderStates[D3DRS_MINTESSELLATIONLEVEL]);	m_pDevice->SetRenderState(D3DRS_MAXTESSELLATIONLEVEL, m_theRenderStates[D3DRS_MAXTESSELLATIONLEVEL]);	m_pDevice->SetRenderState(D3DRS_ADAPTIVETESS_X, m_theRenderStates[D3DRS_ADAPTIVETESS_X]);	m_pDevice->SetRenderState(D3DRS_ADAPTIVETESS_Y, m_theRenderStates[D3DRS_ADAPTIVETESS_Y]);	m_pDevice->SetRenderState(D3DRS_ADAPTIVETESS_Z, m_theRenderStates[D3DRS_ADAPTIVETESS_Z]);	m_pDevice->SetRenderState(D3DRS_ADAPTIVETESS_W, m_theRenderStates[D3DRS_ADAPTIVETESS_W]);	m_pDevice->SetRenderState(D3DRS_ENABLEADAPTIVETESSELLATION, m_theRenderStates[D3DRS_ENABLEADAPTIVETESSELLATION]);	m_pDevice->SetRenderState(D3DRS_TWOSIDEDSTENCILMODE, m_theRenderStates[D3DRS_TWOSIDEDSTENCILMODE]);	m_pDevice->SetRenderState(D3DRS_CCW_STENCILFAIL, m_theRenderStates[D3DRS_CCW_STENCILFAIL]);	m_pDevice->SetRenderState(D3DRS_CCW_STENCILZFAIL, m_theRenderStates[D3DRS_CCW_STENCILZFAIL]);	m_pDevice->SetRenderState(D3DRS_CCW_STENCILPASS, m_theRenderStates[D3DRS_CCW_STENCILPASS]);	m_pDevice->SetRenderState(D3DRS_CCW_STENCILFUNC, m_theRenderStates[D3DRS_CCW_STENCILFUNC]);	m_pDevice->SetRenderState(D3DRS_COLORWRITEENABLE1, m_theRenderStates[D3DRS_COLORWRITEENABLE1]);	m_pDevice->SetRenderState(D3DRS_COLORWRITEENABLE2, m_theRenderStates[D3DRS_COLORWRITEENABLE2]);	m_pDevice->SetRenderState(D3DRS_COLORWRITEENABLE3, m_theRenderStates[D3DRS_COLORWRITEENABLE3]);	m_pDevice->SetRenderState(D3DRS_BLENDFACTOR, m_theRenderStates[D3DRS_BLENDFACTOR]);	m_pDevice->SetRenderState(D3DRS_SRGBWRITEENABLE, m_theRenderStates[D3DRS_SRGBWRITEENABLE]);	m_pDevice->SetRenderState(D3DRS_DEPTHBIAS, m_theRenderStates[D3DRS_DEPTHBIAS]);	m_pDevice->SetRenderState(D3DRS_WRAP8, m_theRenderStates[D3DRS_WRAP8]);	m_pDevice->SetRenderState(D3DRS_WRAP9, m_theRenderStates[D3DRS_WRAP9]);	m_pDevice->SetRenderState(D3DRS_WRAP10, m_theRenderStates[D3DRS_WRAP10]);	m_pDevice->SetRenderState(D3DRS_WRAP11, m_theRenderStates[D3DRS_WRAP11]);	m_pDevice->SetRenderState(D3DRS_WRAP12, m_theRenderStates[D3DRS_WRAP12]);	m_pDevice->SetRenderState(D3DRS_WRAP13, m_theRenderStates[D3DRS_WRAP13]);	m_pDevice->SetRenderState(D3DRS_WRAP14, m_theRenderStates[D3DRS_WRAP14]);	m_pDevice->SetRenderState(D3DRS_WRAP15, m_theRenderStates[D3DRS_WRAP15]);	m_pDevice->SetRenderState(D3DRS_SEPARATEALPHABLENDENABLE, m_theRenderStates[D3DRS_SEPARATEALPHABLENDENABLE]);	m_pDevice->SetRenderState(D3DRS_SRCBLENDALPHA, m_theRenderStates[D3DRS_SRCBLENDALPHA]);	m_pDevice->SetRenderState(D3DRS_DESTBLENDALPHA, m_theRenderStates[D3DRS_DESTBLENDALPHA]);	m_pDevice->SetRenderState(D3DRS_BLENDOPALPHA, m_theRenderStates[D3DRS_BLENDOPALPHA]);	// Set material	m_pDevice->SetMaterial(&m_matMaterial);	// Set transforms	m_pDevice->SetTransform(D3DTS_VIEW, m_matTransforms[D3DTS_VIEW]);	m_pDevice->SetTransform(D3DTS_PROJECTION, m_matTransforms[D3DTS_PROJECTION]);	m_pDevice->SetTransform(D3DTS_TEXTURE0, m_matTransforms[D3DTS_TEXTURE0]);	m_pDevice->SetTransform(D3DTS_TEXTURE1, m_matTransforms[D3DTS_TEXTURE1]);	m_pDevice->SetTransform(D3DTS_TEXTURE2, m_matTransforms[D3DTS_TEXTURE2]);	m_pDevice->SetTransform(D3DTS_TEXTURE3, m_matTransforms[D3DTS_TEXTURE3]);	m_pDevice->SetTransform(D3DTS_TEXTURE4, m_matTransforms[D3DTS_TEXTURE4]);	m_pDevice->SetTransform(D3DTS_TEXTURE5, m_matTransforms[D3DTS_TEXTURE5]);	m_pDevice->SetTransform(D3DTS_TEXTURE6, m_matTransforms[D3DTS_TEXTURE6]);	m_pDevice->SetTransform(D3DTS_TEXTURE7, m_matTransforms[D3DTS_TEXTURE7]);	m_pDevice->SetTransform(D3DTS_WORLD, m_matTransforms[24]);	m_pDevice->SetTransform(D3DTS_WORLD1, m_matTransforms[25]);	m_pDevice->SetTransform(D3DTS_WORLD2, m_matTransforms[26]);	m_pDevice->SetTransform(D3DTS_WORLD3, m_matTransforms[27]);	// Reset objects	for(size_t i=0; i<m_vObjects.size(); ++i)		m_vObjects->OnResetDevice();	// Set stream source	if(m_pStream)	{		m_pDevice->SetFVF(m_pStream->GetFVF());		m_pDevice->SetStreamSource(0, m_pStream->m_pVB, 0, m_pStream->GetStride());	}	else		m_pDevice->SetStreamSource(0, NULL, 0, 0);	// Set indices	if(m_pIndices)		m_pDevice->SetIndices(m_pIndices->m_pIB);	else		m_pDevice->SetIndices(NULL);	// Set textures	for(int i=0; i<8; ++i)	{		if(m_pTextures)			m_pDevice->SetTexture(0, m_pTextures->GetTexture());		else			m_pDevice->SetTexture(0, NULL);	}}

Where m_theRenderStates is defined as: DWORD m_theRenderStates[256];

I also don't trust the default values [smile]

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.