Microsoft DirectX 8.0 (C++)

List of Valid States

The following topic covers the entire list of valid states that can be used when creating an effect file.

When setting states of type DWORD, you can use enumerated values. For example, SrcBlend is typically set using D3DBLEND_xxx enumerated types. Therefore, you can use any of these enumeration types in your assignment. Just strip off the D3DBLEND_ prefix as shown in the code fragment below.

SrcBlend = One;

You can also string these together in an "OR" expression.

TextureTransformFlags[0] = Count3 | Projected;

The following table lists the valid render states used in an effect file.

Type Render State Valid Values
DWORD ZEnable D3DZB
DWORD FillMode D3DFILL
DWORD ShadeMode D3DSHADE
DWORD LinePattern  
DWORD ZWriteEnable TRUE/FALSE
DWORD AlphaTestEnable TRUE/FALSE
DWORD LastPixel TRUE/FALSE
DWORD SrcBlend D3DBLEND
DWORD DestBlend D3DBLEND
DWORD CullMode D3DCULL
DWORD ZFunc D3DCMP
DWORD AlphaRef  
DWORD AlphaFunc D3DCMP
DWORD DitherEnable TRUE/FALSE
DWORD AlphaBlendEnable TRUE/FALSE
DWORD FogEnable TRUE/FALSE
DWORD SpecularEnable TRUE/FALSE
DWORD ZVisible TRUE/FALSE
DWORD FogColor  
DWORD FogTableMode D3DFOG
FLOAT FogStart  
FLOAT FogEnd  
FLOAT FogDensity  
DWORD EdgeAntialias TRUE/FALSE
DWORD Zbias  
DWORD RangeFogEnable  
DWORD StencilEnable TRUE/FALSE
DWORD StencilFail D3DSTENCILOP
DWORD StencilZFail D3DSTENCILOP
DWORD StencilPass D3DSTENCILOP
DWORD StencilFunc D3DCMP
DWORD StencilRef  
DWORD StencilMask  
DWORD StencilWriteMask  
DWORD TextureFactor  
DWORD Wrap0 D3DWRAP
DWORD Wrap1 D3DWRAP
DWORD Wrap2 D3DWRAP
DWORD Wrap3 D3DWRAP
DWORD Wrap4 D3DWRAP
DWORD Wrap5 D3DWRAP
DWORD Wrap6 D3DWRAP
DWORD Wrap7 D3DWRAP
DWORD Clipping TRUE/FALSE
DWORD Lighting TRUE/FALSE
DWORD Ambient  
DWORD FogVertexMode  
DWORD ColorVertex TRUE/FALSE
DWORD LocalViewer TRUE/FALSE
DWORD NormalizeNormals TRUE/FALSE
DWORD DiffuseMaterialSource D3DMCS
DWORD SpecularMaterialSource D3DMCS
DWORD AmbientMaterialSource D3DMCS
DWORD EmissiveMaterialSource D3DMCS
DWORD VertexBlend D3DVBF
DWORD ClipPlaneEnable TRUE/FALSE
DWORD SoftwareVertexProcessing TRUE/FALSE
FLOAT PointSize  
FLOAT PointSize_Min  
FLOAT PointSize_Max  
DWORD PointSpriteEnable TRUE/FALSE
DWORD PointScaleEnable TRUE/FALSE
FLOAT PointScale_A  
FLOAT PointScale_B  
FLOAT PointScale_C  
DWORD MultiSampleAntialias TRUE/FALSE
DWORD MultiSampleMask  
DWORD PatchSegments  
DWORD IndexedVertexBlendEnable TRUE/FALSE
DWORD ColorWriteEnable TRUE/FALSE
FLOAT TweenFactor  
DWORD BlendOp D3DBLENDOP

The following table lists the valid texture stage states used in an effect file.

Type Texture Stage State Valid Values
DWORD ColorOp[8] D3DTOP
DWORD ColorArg0[8] D3DTA
DWORD ColorArg1[8] D3DTA
DWORD ColorArg2[8] D3DTA
DWORD AlphaOp[8] D3DTOP
DWORD AlphaArg0[8] D3DTA
DWORD AlphaArg1[8] D3DTA
DWORD AlphaArg2[8] D3DTA
DWORD ResultArg[8] D3DTA
DWORD BumpEnvMat00[8]  
DWORD BumpEnvMat01[8]  
DWORD BumpEnvMat10[8]  
DWORD BumpEnvMat11[8]  
DWORD TexCoordIndex[8] D3DTSS_TCI
DWORD AddressU[8] D3DTADDRESS
DWORD AddressV[8] D3DTADDRESS
DWORD AddressW[8] D3DTADDRESS
DWORD BorderColor[8]  
DWORD MagFilter[8] D3DTEXF
DWORD MinFilter[8] D3DTEXF
DWORD MipFilter[8] D3DTEXF
DWORD MipMapLodBias[8]  
DWORD MaxMipLevel[8]  
DWORD MaxAnsiotropy[8]  
FLOAT BumpEnvLScale[8]  
FLOAT BumpEnvLOffset[8]  
DWORD TextureTransformFlags[8] D3DTTFF

The following table lists the valid light states used in an effect file. If you set light states in your effect, you should set all states that you need to completely describe the light. States that you fail to declare will be set to some default value because there is no way for D3DX to set light states individually.

Type Light State Valid Values
DWORD LightType[n] D3DLT
VECTOR LightDiffuse[n]  
VECTOR LightSpecular[n]  
VECTOR LightAmbient[n]  
VECTOR LightPosition[n]  
VECTOR LightDirection[n]  
FLOAT LightRange[n]  
FLOAT LightFalloff[n]  
FLOAT LightAttenuation0[n]  
FLOAT LightAttenuation1[n]  
FLOAT LightAttenuation2[n]  
FLOAT LightTheta[n]  
FLOAT LightPhi[n]  
DWORD LightEnable[n] TRUE/FALSE

The following table lists the valid material states used in an effect file. If you set material states in your effect, you should set all states that you need to completely describe the material. States that you fail to declare will be set to some default value because there is no way for D3DX to set material states individually.

Type Material State
VECTOR MaterialDiffuse
VECTOR MaterialAmbient
VECTOR MaterialSpecular
VECTOR MaterialEmissive
FLOAT MaterialPower

The following table lists other valid states used in an effect file.

Type State
VERTEXSHADER VertexShader
PIXELSHADER PixelShader
CONSTANT VertexShaderConstant[n]
CONSTANT PixelShaderConstant[n]
TEXTURE Texture[8]
MATRIX ProjectionTransform
MATRIX ViewTransform
MATRIX WorldTransform[256]
MATRIX TextureTransform[8]