|
@@ -355,6 +355,7 @@ void Renderer::SetRenderMode(RenderMode mode)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
ResetBuffers();
|
|
ResetBuffers();
|
|
|
|
|
+ ResetShadowMaps();
|
|
|
renderMode_ = mode;
|
|
renderMode_ = mode;
|
|
|
shadersDirty_ = true;
|
|
shadersDirty_ = true;
|
|
|
}
|
|
}
|
|
@@ -508,6 +509,17 @@ Viewport* Renderer::GetViewport(unsigned index) const
|
|
|
return index < viewports_.Size() ? viewports_[index] : (Viewport*)0;
|
|
return index < viewports_.Size() ? viewports_[index] : (Viewport*)0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+int Renderer::GetMaxShadowCascades() const
|
|
|
|
|
+{
|
|
|
|
|
+ // Due to instruction count limits, deferred modes in SM2.0 can only support up to 3 cascades
|
|
|
|
|
+ #ifndef USE_OPENGL
|
|
|
|
|
+ if (renderMode_ != RENDER_FORWARD && !graphics_->GetSM3Support())
|
|
|
|
|
+ return Max(maxShadowCascades_, 3);
|
|
|
|
|
+ #endif
|
|
|
|
|
+
|
|
|
|
|
+ return maxShadowCascades_;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
ShaderVariation* Renderer::GetVertexShader(const String& name, bool checkExists) const
|
|
ShaderVariation* Renderer::GetVertexShader(const String& name, bool checkExists) const
|
|
|
{
|
|
{
|
|
|
return GetShader(VS, name, checkExists);
|
|
return GetShader(VS, name, checkExists);
|