![]() |
![]() |
![]() |
The scissor rectangle is managed by a device render state. A scissor test is enabled or disabled by setting the renderstate to TRUE or FALSE. This test is performed after the fragment color is computed but before alpha testing. IDirect3DDevice9::SetRenderTarget resets the scissor rectangle to the full render target, analogous to the viewport reset. IDirect3DDevice9::SetScissorRect is recorded by stateblocks, and IDirect3DDevice9::CreateStateBlock with the all state setting (D3DSBT_ALL value in D3DSTATEBLOCKTYPE). The scissor test also affects the device IDirect3DDevice9::Clear operation.
// Methods HRESULT IDirect3DDevice9::SetScissorRect(CONST RECT* pRect); HRESULT IDirect3DDevice9::GetScissorRect(RECT* pRect); // New RenderState, values are TRUE or FALSE D3DRS_SCISSORTESTENABLE // New hardware cap D3D9CAPS.RasterCaps -> D3DPRASTERCAPS_SCISSORTEST;
The default scissor rectangle is the full viewport.
Scissor testing is done just after pixel processing is completed by a pixel shader or the fixed function pipeline, as shown below.