|
@@ -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) {
|