Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/source/simulation2/components/CCmpRallyPointRenderer.cpp
Show First 20 Lines • Show All 159 Lines • ▼ Show 20 Lines | void CCmpRallyPointRenderer::HandleMessage(const CMessage& msg, bool UNUSED(global)) | ||||
} | } | ||||
break; | break; | ||||
case MT_RenderSubmit: | case MT_RenderSubmit: | ||||
{ | { | ||||
PROFILE("RallyPoint::RenderSubmit"); | PROFILE("RallyPoint::RenderSubmit"); | ||||
if (m_Displayed && IsSet()) | if (m_Displayed && IsSet()) | ||||
{ | { | ||||
const CMessageRenderSubmit& msgData = static_cast<const CMessageRenderSubmit&> (msg); | const CMessageRenderSubmit& msgData = static_cast<const CMessageRenderSubmit&> (msg); | ||||
RenderSubmit(msgData.collector); | RenderSubmit(msgData.collector, msgData.frustum, msgData.culling); | ||||
} | } | ||||
} | } | ||||
break; | break; | ||||
case MT_OwnershipChanged: | case MT_OwnershipChanged: | ||||
{ | { | ||||
const CMessageOwnershipChanged& msgData = static_cast<const CMessageOwnershipChanged&> (msg); | const CMessageOwnershipChanged& msgData = static_cast<const CMessageOwnershipChanged&> (msg); | ||||
// Ignore destroyed entities | // Ignore destroyed entities | ||||
▲ Show 20 Lines • Show All 738 Lines • ▼ Show 20 Lines | void CCmpRallyPointRenderer::MergeVisibilitySegments(std::vector<SVisibilitySegment>& segments) | ||||
// At this point, every segment should have at least 2 points | // At this point, every segment should have at least 2 points | ||||
for (size_t i = 0; i < segments.size(); ++i) | for (size_t i = 0; i < segments.size(); ++i) | ||||
{ | { | ||||
ENSURE(!segments[i].IsSinglePoint()); | ENSURE(!segments[i].IsSinglePoint()); | ||||
ENSURE(segments[i].m_EndIndex > segments[i].m_StartIndex); | ENSURE(segments[i].m_EndIndex > segments[i].m_StartIndex); | ||||
} | } | ||||
} | } | ||||
void CCmpRallyPointRenderer::RenderSubmit(SceneCollector& collector) | void CCmpRallyPointRenderer::RenderSubmit(SceneCollector& collector, const CFrustum& frustum, bool culling) | ||||
{ | { | ||||
// We only get here if the rally point is set and should be displayed | // We only get here if the rally point is set and should be displayed | ||||
for(std::vector<SOverlayTexturedLine>& row : m_TexturedOverlayLines) | for(std::vector<SOverlayTexturedLine>& row : m_TexturedOverlayLines) | ||||
for (SOverlayTexturedLine& col : row) | for (SOverlayTexturedLine& col : row) { | ||||
if (!col.m_Coords.empty()) | if (col.m_Coords.empty()) | ||||
continue; | |||||
if (culling && !col.IsVisibleInFrustum(frustum)) | |||||
continue; | |||||
collector.Submit(&col); | collector.Submit(&col); | ||||
} | |||||
if (m_EnableDebugNodeOverlay && !m_DebugNodeOverlays.empty()) | if (m_EnableDebugNodeOverlay && !m_DebugNodeOverlays.empty()) | ||||
{ | { | ||||
for (std::vector<SOverlayLine>& row : m_DebugNodeOverlays) | for (std::vector<SOverlayLine>& row : m_DebugNodeOverlays) | ||||
for (SOverlayLine& col : row) | for (SOverlayLine& col : row) | ||||
if (!col.m_Coords.empty()) | if (!col.m_Coords.empty()) | ||||
collector.Submit(&col); | collector.Submit(&col); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 98 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator