Fixing a D3D11 warning. Shadow maps now get submitted only when necessary.

This commit is contained in:
Dario Manesku 2016-01-15 07:34:48 +01:00
parent f44f0f2cca
commit deda5e241e

View file

@ -989,13 +989,13 @@ struct Mesh
m_groups.clear(); m_groups.clear();
} }
void submit(uint8_t _viewId, float* _mtx, bgfx::ProgramHandle _program, const RenderState& _renderState) void submit(uint8_t _viewId, float* _mtx, bgfx::ProgramHandle _program, const RenderState& _renderState, bool _submitShadowMaps = false)
{ {
bgfx::TextureHandle texture = BGFX_INVALID_HANDLE; bgfx::TextureHandle texture = BGFX_INVALID_HANDLE;
submit(_viewId, _mtx, _program, _renderState, texture); submit(_viewId, _mtx, _program, _renderState, texture, _submitShadowMaps);
} }
void submit(uint8_t _viewId, float* _mtx, bgfx::ProgramHandle _program, const RenderState& _renderState, bgfx::TextureHandle _texture) void submit(uint8_t _viewId, float* _mtx, bgfx::ProgramHandle _program, const RenderState& _renderState, bgfx::TextureHandle _texture, bool _submitShadowMaps = false)
{ {
for (GroupArray::const_iterator it = m_groups.begin(), itEnd = m_groups.end(); it != itEnd; ++it) for (GroupArray::const_iterator it = m_groups.begin(), itEnd = m_groups.end(); it != itEnd; ++it)
{ {
@ -1015,9 +1015,12 @@ struct Mesh
bgfx::setTexture(0, s_texColor, _texture); bgfx::setTexture(0, s_texColor, _texture);
} }
for (uint8_t ii = 0; ii < ShadowMapRenderTargets::Count; ++ii) if (_submitShadowMaps)
{ {
bgfx::setTexture(4 + ii, s_shadowMap[ii], s_rtShadowMap[ii]); for (uint8_t ii = 0; ii < ShadowMapRenderTargets::Count; ++ii)
{
bgfx::setTexture(4 + ii, s_shadowMap[ii], s_rtShadowMap[ii]);
}
} }
// Apply render state. // Apply render state.
@ -2977,6 +2980,7 @@ int _main_(int _argc, char** _argv)
, mtxFloor , mtxFloor
, *currentSmSettings->m_progDraw , *currentSmSettings->m_progDraw
, s_renderStates[RenderState::Default] , s_renderStates[RenderState::Default]
, true
); );
// Bunny. // Bunny.
@ -2988,6 +2992,7 @@ int _main_(int _argc, char** _argv)
, mtxBunny , mtxBunny
, *currentSmSettings->m_progDraw , *currentSmSettings->m_progDraw
, s_renderStates[RenderState::Default] , s_renderStates[RenderState::Default]
, true
); );
// Hollow cube. // Hollow cube.
@ -2999,6 +3004,7 @@ int _main_(int _argc, char** _argv)
, mtxHollowcube , mtxHollowcube
, *currentSmSettings->m_progDraw , *currentSmSettings->m_progDraw
, s_renderStates[RenderState::Default] , s_renderStates[RenderState::Default]
, true
); );
// Cube. // Cube.
@ -3010,6 +3016,7 @@ int _main_(int _argc, char** _argv)
, mtxCube , mtxCube
, *currentSmSettings->m_progDraw , *currentSmSettings->m_progDraw
, s_renderStates[RenderState::Default] , s_renderStates[RenderState::Default]
, true
); );
// Trees. // Trees.
@ -3023,6 +3030,7 @@ int _main_(int _argc, char** _argv)
, mtxTrees[ii] , mtxTrees[ii]
, *currentSmSettings->m_progDraw , *currentSmSettings->m_progDraw
, s_renderStates[RenderState::Default] , s_renderStates[RenderState::Default]
, true
); );
} }