Skip to content

Commit

Permalink
#5945: Reduce code duplication
Browse files Browse the repository at this point in the history
  • Loading branch information
codereader committed Apr 24, 2022
1 parent b7a17be commit b2ab4f7
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 27 deletions.
47 changes: 20 additions & 27 deletions radiantcore/entity/light/LightNode.cpp
Expand Up @@ -139,10 +139,7 @@ void LightNode::transformChanged()
{
EntityNode::transformChanged();

_renderableOctagon.queueUpdate();
_renderableOctagonOutline.queueUpdate();
_renderableLightVolume.queueUpdate();
_renderableVertices.queueUpdate();
updateRenderables();
}

float LightNode::getShaderParm(int parmNum) const
Expand All @@ -159,10 +156,7 @@ void LightNode::onRemoveFromScene(scene::IMapRootNode& root)
setSelectedComponents(false, selection::ComponentSelectionMode::Vertex);
setSelectedComponents(false, selection::ComponentSelectionMode::Face);

_renderableOctagon.clear();
_renderableOctagonOutline.clear();
_renderableLightVolume.clear();
_renderableVertices.clear();
clearRenderables();
}

void LightNode::testSelect(Selector& selector, SelectionTest& test)
Expand Down Expand Up @@ -389,10 +383,7 @@ void LightNode::setRenderSystem(const RenderSystemPtr& renderSystem)
EntityNode::setRenderSystem(renderSystem);

// Clear the geometry from any previous shader
_renderableOctagon.clear();
_renderableOctagonOutline.clear();
_renderableLightVolume.clear();
_renderableVertices.clear();
clearRenderables();

m_shader.setRenderSystem(renderSystem);

Expand All @@ -402,9 +393,6 @@ void LightNode::setRenderSystem(const RenderSystemPtr& renderSystem)

auto renderColour = getEntityColour();
_crystalOutlineShader = renderSystem->capture(ColourShaderType::CameraAndOrthoViewOutline, renderColour);

// Crystal fill shader is transparent
renderColour.w() = 0.3;
_crystalFillShader = renderSystem->capture(ColourShaderType::CameraTranslucent, renderColour);
_renderableVertices.queueUpdate();
}
Expand Down Expand Up @@ -519,10 +507,7 @@ void LightNode::_onTransformationChanged()
evaluateTransform();
updateOrigin();

_renderableOctagon.queueUpdate();
_renderableOctagonOutline.queueUpdate();
_renderableLightVolume.queueUpdate();
_renderableVertices.queueUpdate();
updateRenderables();
}

void LightNode::_applyTransformation()
Expand Down Expand Up @@ -566,17 +551,11 @@ void LightNode::onVisibilityChanged(bool isVisibleNow)

if (isVisibleNow)
{
_renderableOctagon.queueUpdate();
_renderableOctagonOutline.queueUpdate();
_renderableLightVolume.queueUpdate();
_renderableVertices.queueUpdate();
updateRenderables();
}
else
{
_renderableLightVolume.clear();
_renderableOctagon.clear();
_renderableOctagonOutline.clear();
_renderableVertices.clear();
clearRenderables();
}
}

Expand Down Expand Up @@ -1256,10 +1235,24 @@ const IRenderEntity& LightNode::getLightEntity() const
}

void LightNode::onColourKeyChanged(const std::string& value)
{
updateRenderables();
}

void LightNode::updateRenderables()
{
_renderableOctagon.queueUpdate();
_renderableOctagonOutline.queueUpdate();
_renderableLightVolume.queueUpdate();
_renderableVertices.queueUpdate();
}

void LightNode::clearRenderables()
{
_renderableOctagon.clear();
_renderableOctagonOutline.clear();
_renderableLightVolume.clear();
_renderableVertices.clear();
}

} // namespace entity
3 changes: 3 additions & 0 deletions radiantcore/entity/light/LightNode.h
Expand Up @@ -256,6 +256,9 @@ class LightNode :
void updateProjection() const;
bool useStartEnd() const;

void updateRenderables();
void clearRenderables();

public:
// RendererLight implementation
const IRenderEntity& getLightEntity() const override;
Expand Down

0 comments on commit b2ab4f7

Please sign in to comment.