diff options
| author | Andre Weissflog <floooh@gmail.com> | 2021-06-22 18:16:32 +0200 |
|---|---|---|
| committer | Andre Weissflog <floooh@gmail.com> | 2021-06-22 18:16:32 +0200 |
| commit | 444bca192dcc284d4d9ea4eed7eff4dde4b44e70 (patch) | |
| tree | 7f4ea0d91e436641812d57a53eafe8d23c20e305 | |
| parent | 974d3cd7309d13bc579404418987722da79261ce (diff) | |
sokol_gfx.h d3d11: use ID3D11DeviceContext::ClearState() to clear device state
| -rw-r--r-- | sokol_gfx.h | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/sokol_gfx.h b/sokol_gfx.h index cb6d7d55..0c512c4d 100644 --- a/sokol_gfx.h +++ b/sokol_gfx.h @@ -7844,6 +7844,14 @@ static inline void _sg_d3d11_Unmap(ID3D11DeviceContext* self, ID3D11Resource* pR #endif } +static inline void _sg_d3d11_ClearState(ID3D11DeviceContext* self) { + #if defined(__cplusplus) + self->ClearState(); + #else + self->lpVtbl->ClearState(self); + #endif +} + /*-- enum translation functions ----------------------------------------------*/ _SOKOL_PRIVATE D3D11_USAGE _sg_d3d11_usage(sg_usage usg) { switch (usg) { @@ -8182,21 +8190,7 @@ _SOKOL_PRIVATE void _sg_d3d11_discard_backend(void) { _SOKOL_PRIVATE void _sg_d3d11_clear_state(void) { /* clear all the device context state, so that resource refs don't keep stuck in the d3d device context */ - _sg_d3d11_OMSetRenderTargets(_sg.d3d11.ctx, SG_MAX_COLOR_ATTACHMENTS, _sg.d3d11.zero_rtvs, NULL); - _sg_d3d11_RSSetState(_sg.d3d11.ctx, NULL); - _sg_d3d11_OMSetDepthStencilState(_sg.d3d11.ctx, NULL, 0); - _sg_d3d11_OMSetBlendState(_sg.d3d11.ctx, NULL, NULL, 0xFFFFFFFF); - _sg_d3d11_IASetVertexBuffers(_sg.d3d11.ctx, 0, SG_MAX_SHADERSTAGE_BUFFERS, _sg.d3d11.zero_vbs, _sg.d3d11.zero_vb_strides, _sg.d3d11.zero_vb_offsets); - _sg_d3d11_IASetIndexBuffer(_sg.d3d11.ctx, NULL, DXGI_FORMAT_UNKNOWN, 0); - _sg_d3d11_IASetInputLayout(_sg.d3d11.ctx, NULL); - _sg_d3d11_VSSetShader(_sg.d3d11.ctx, NULL, NULL, 0); - _sg_d3d11_PSSetShader(_sg.d3d11.ctx, NULL, NULL, 0); - _sg_d3d11_VSSetConstantBuffers(_sg.d3d11.ctx, 0, SG_MAX_SHADERSTAGE_UBS, _sg.d3d11.zero_cbs); - _sg_d3d11_PSSetConstantBuffers(_sg.d3d11.ctx, 0, SG_MAX_SHADERSTAGE_UBS, _sg.d3d11.zero_cbs); - _sg_d3d11_VSSetShaderResources(_sg.d3d11.ctx, 0, SG_MAX_SHADERSTAGE_IMAGES, _sg.d3d11.zero_srvs); - _sg_d3d11_PSSetShaderResources(_sg.d3d11.ctx, 0, SG_MAX_SHADERSTAGE_IMAGES, _sg.d3d11.zero_srvs); - _sg_d3d11_VSSetSamplers(_sg.d3d11.ctx, 0, SG_MAX_SHADERSTAGE_IMAGES, _sg.d3d11.zero_smps); - _sg_d3d11_PSSetSamplers(_sg.d3d11.ctx, 0, SG_MAX_SHADERSTAGE_IMAGES, _sg.d3d11.zero_smps); + _sg_d3d11_ClearState(_sg.d3d11.ctx); } _SOKOL_PRIVATE void _sg_d3d11_reset_state_cache(void) { |