It would seem that D3D11's api is a bit clunky, or I'm not using it right.
Is it true that this is the minimum set of steps to change a single rasterizer state in D3D11 (I'm using change to wireframe mode rendering as an example)
// variables to hold the current rasterizer state and its description ID3D11RasterizerState * rState ; D3D11_RASTERIZER_DESC rDesc ; // cd3d is the ID3D11DeviceContext cd3d->RSGetState( &rState ) ; // retrieve the current state rState->GetDesc( &rDesc ) ; // get the desc of the state rDesc.FillMode = D3D11_FILL_WIREFRAME ; // change the ONE setting // create a whole new rasterizer state // d3d is the ID3D11Device d3d->CreateRasterizerState( &rDesc, &rState ) ; cd3d->RSSetState( rState ); // set the new rasterizer state
Seems a lot longer than 9's
cd3d->SetRenderState( D3DRS_FILLMODE, D3DFILL_WIREFRAME ) ;
Or you could keep the state desc 'global' to your code or class, then simply change the fillmode and set with RSSetState ( with the original state with new change)? Instead of retrieving and setting.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With