|
@@ -495,12 +495,10 @@ unsigned Renderer::GetNumGeometries(bool allViews) const
|
|
|
|
|
|
|
|
for (unsigned i = 0; i < lastView; ++i)
|
|
for (unsigned i = 0; i < lastView; ++i)
|
|
|
{
|
|
{
|
|
|
- View* view = views_[i];
|
|
|
|
|
|
|
+ // Use the source view's statistics if applicable
|
|
|
|
|
+ View* view = GetActualView(views_[i]);
|
|
|
if (!view)
|
|
if (!view)
|
|
|
continue;
|
|
continue;
|
|
|
- // Use the source view's statistics if applicable
|
|
|
|
|
- if (view->GetSourceView())
|
|
|
|
|
- view = view->GetSourceView();
|
|
|
|
|
|
|
|
|
|
numGeometries += view->GetGeometries().Size();
|
|
numGeometries += view->GetGeometries().Size();
|
|
|
}
|
|
}
|
|
@@ -515,11 +513,9 @@ unsigned Renderer::GetNumLights(bool allViews) const
|
|
|
|
|
|
|
|
for (unsigned i = 0; i < lastView; ++i)
|
|
for (unsigned i = 0; i < lastView; ++i)
|
|
|
{
|
|
{
|
|
|
- View* view = views_[i];
|
|
|
|
|
|
|
+ View* view = GetActualView(views_[i]);
|
|
|
if (!view)
|
|
if (!view)
|
|
|
continue;
|
|
continue;
|
|
|
- if (view->GetSourceView())
|
|
|
|
|
- view = view->GetSourceView();
|
|
|
|
|
|
|
|
|
|
numLights += view->GetLights().Size();
|
|
numLights += view->GetLights().Size();
|
|
|
}
|
|
}
|
|
@@ -534,14 +530,11 @@ unsigned Renderer::GetNumShadowMaps(bool allViews) const
|
|
|
|
|
|
|
|
for (unsigned i = 0; i < lastView; ++i)
|
|
for (unsigned i = 0; i < lastView; ++i)
|
|
|
{
|
|
{
|
|
|
- View* view = views_[i];
|
|
|
|
|
|
|
+ View* view = GetActualView(views_[i]);
|
|
|
if (!view)
|
|
if (!view)
|
|
|
continue;
|
|
continue;
|
|
|
- if (view->GetSourceView())
|
|
|
|
|
- view = view->GetSourceView();
|
|
|
|
|
|
|
|
|
|
const Vector<LightBatchQueue>& lightQueues = view->GetLightQueues();
|
|
const Vector<LightBatchQueue>& lightQueues = view->GetLightQueues();
|
|
|
-
|
|
|
|
|
for (Vector<LightBatchQueue>::ConstIterator i = lightQueues.Begin(); i != lightQueues.End(); ++i)
|
|
for (Vector<LightBatchQueue>::ConstIterator i = lightQueues.Begin(); i != lightQueues.End(); ++i)
|
|
|
{
|
|
{
|
|
|
if (i->shadowMap_)
|
|
if (i->shadowMap_)
|
|
@@ -559,11 +552,9 @@ unsigned Renderer::GetNumOccluders(bool allViews) const
|
|
|
|
|
|
|
|
for (unsigned i = 0; i < lastView; ++i)
|
|
for (unsigned i = 0; i < lastView; ++i)
|
|
|
{
|
|
{
|
|
|
- View* view = views_[i];
|
|
|
|
|
|
|
+ View* view = GetActualView(views_[i]);
|
|
|
if (!view)
|
|
if (!view)
|
|
|
continue;
|
|
continue;
|
|
|
- if (view->GetSourceView())
|
|
|
|
|
- view = view->GetSourceView();
|
|
|
|
|
|
|
|
|
|
numOccluders += view->GetOccluders().Size();
|
|
numOccluders += view->GetOccluders().Size();
|
|
|
}
|
|
}
|
|
@@ -1094,6 +1085,14 @@ View* Renderer::GetPreparedView(Camera* camera)
|
|
|
return i != preparedViews_.End() ? i->second_ : (View*)0;
|
|
return i != preparedViews_.End() ? i->second_ : (View*)0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+View* Renderer::GetActualView(View* view)
|
|
|
|
|
+{
|
|
|
|
|
+ if (view && view->GetSourceView())
|
|
|
|
|
+ return view->GetSourceView();
|
|
|
|
|
+ else
|
|
|
|
|
+ return view;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
void Renderer::SetBatchShaders(Batch& batch, Technique* tech, bool allowShadows)
|
|
void Renderer::SetBatchShaders(Batch& batch, Technique* tech, bool allowShadows)
|
|
|
{
|
|
{
|
|
|
// Check if shaders are unloaded or need reloading
|
|
// Check if shaders are unloaded or need reloading
|