State management

While shaders represent completely programmable stages, there are also several configurable stages.

The state objects are:

  • ID3D11RasterizerState
  • ID3D11BlendState
  • ID3D11DepthStencilState

The state objects combine several properties into an immutable object. Changing a single property requires the creation of a new object. This allows the driver to do several optimizations under the hood, while not completely limiting all of the options.