Platform SDK: DirectX |
The IDirect3DDevice7::CreateStateBlock method creates a new state block that contains the entire set of device states, or just those device-states related to vertex or pixel processing. The CreateStateBlock method accepts two parameters. The first parameter identifies the type of state information to be captured into the new state block, and the second parameter is the address of a variable that will receive a valid state-block handle if the call succeeds.
Valid values for the first parameter are defined by the D3DSTATEBLOCKTYPE enumerated type, which includes members that you can use to capture the entire set of device states (D3DSBT_ALL), or only those states that pertain to vertex or pixel processing (D3DSBT_VERTEX or D3DSBT_PIXEL). The following list summarizes the states that the system captures when you pass the D3DSBT_VERTEX or D3DSBT_PIXEL values.
State (enabled or disabled) of all lights
Transformation matrices
User-defined clipping planes
D3DRENDERSTATE_AMBIENTMATERIALSOURCE
D3DRENDERSTATE_CLIPPLANEENABLE
D3DRENDERSTATE_DIFFUSEMATERIALSOURCE
D3DRENDERSTATE_EMISSIVEMATERIALSOURCE
D3DRENDERSTATE_NORMALIZENORMALS
D3DRENDERSTATE_ALPHATESTENABLE
D3DRENDERSTATE_COLORKEYBLENDENABLE
D3DRENDERSTATE_STENCILWRITEMASK
D3DRENDERSTATE_TEXTUREPERSPECTIVE
The Direct3DDevice7.CreateStateBlock method creates a new state block that contains the entire set of device states, or just those device-states related to vertex or pixel processing. The CreateStateBlock method accepts two parameters. The first parameter identifies the type of state information to be captured into the new state block, and the second parameter is the address of a variable that will receive a valid state-block handle if the call succeeds.
Valid values for the first parameter are defined by the CONST_D3DSTATEBLOCKTYPE enumeration, which includes members that you can use to capture the entire set of device states (D3DSBT_ALL), or only those states that pertain to vertex or pixel processing (D3DSBT_VERTEX or D3DSBT_PIXEL). The following list summarizes the states that the system captures when you pass the D3DSBT_VERTEX or D3DSBT_PIXEL values.
State (enabled or disabled) of all lights
Transformation matrices
User-defined clipping planes
D3DRENDERSTATE_AMBIENTMATERIALSOURCE
D3DRENDERSTATE_CLIPPLANEENABLE
D3DRENDERSTATE_DIFFUSEMATERIALSOURCE
D3DRENDERSTATE_EMISSIVEMATERIALSOURCE
D3DRENDERSTATE_NORMALIZENORMALS
D3DRENDERSTATE_ALPHATESTENABLE
D3DRENDERSTATE_COLORKEYBLENDENABLE
D3DRENDERSTATE_STENCILWRITEMASK
D3DRENDERSTATE_TEXTUREPERSPECTIVE
Note It is important to check the error code from the CreateStateBlock method. If it fails, it is most likely because the display mode has changed (error code DDERR_SURFACELOST). Your application should recover from this type of failure by recreating its surfaces, then recreating the state block.