Record and Apply StateBlocks |
Language: |
This example demonstrates how to use state blocks to set and retrieve a device's state.
A StateBlock instance can be used to return a device to a default state. It also can be stored as a member of a class to quickly restore a desired rendering state for that class. A StateBlock is most useful when used to save default device state once a device is created. This allows for rapid restoration of default state when needed during rendering.
To record and apply a state block:
In the following C# code example, device is assumed to be the rendering Device.
[C#]
// begin recording device state device.BeginStateBlock(); // tell device the states and values to record device.RenderState.FogStart = 0.3f; device.RenderState.FogEnd = 100.0f; device.RenderState.FogColor = Color.Gray; // stop recording device state StateBlock sb = device.EndStateBlock(); // save device states recorded above sb.Capture; // change device states device.RenderState.FogStart = 2000.0f; device.RenderState.FogEnd = 35000.0f; device.RenderState.FogColor = Color.Yellow; // render scene w/changed states device.DrawPrimitives(); // restore device's saved states sb.Apply(); // render scene w/saved states device.DrawPrimitives();
Send comments about this topic to Microsoft. © Microsoft Corporation. All rights reserved.
Feedback? Please provide us with your comments on this topic.
For more help, visit the DirectX Developer Center