Skip to content

Commit

Permalink
#5893: Remove unused IRenderEntity* parameter from Shader::addRendera…
Browse files Browse the repository at this point in the history
…ble.
  • Loading branch information
codereader committed Feb 19, 2022
1 parent da6adb2 commit b73af9b
Show file tree
Hide file tree
Showing 7 changed files with 17 additions and 63 deletions.
6 changes: 1 addition & 5 deletions include/irender.h
Expand Up @@ -397,13 +397,9 @@ class Shader :
*
* \param modelview
* The modelview transform for this object.
*
* \param entity
* Optional IRenderEntity exposing entity-related render parameters.
*/
virtual void addRenderable(const OpenGLRenderable& renderable,
const Matrix4& modelview,
const IRenderEntity* entity = nullptr) = 0;
const Matrix4& modelview) = 0;

/**
* \brief
Expand Down
6 changes: 3 additions & 3 deletions libs/render/CamRenderer.h
Expand Up @@ -62,18 +62,18 @@ class CamRenderer :

if (mergeShader)
{
mergeShader->addRenderable(renderable, localToWorld, nullptr);
mergeShader->addRenderable(renderable, localToWorld);
}
}

if ((_flags & Highlight::Flags::Primitives) != 0 && _shaders.primitiveHighlightShader)
{
_shaders.primitiveHighlightShader->addRenderable(renderable, localToWorld, nullptr);
_shaders.primitiveHighlightShader->addRenderable(renderable, localToWorld);
}

if ((_flags & Highlight::Flags::Faces) != 0 && _shaders.faceHighlightShader)
{
_shaders.faceHighlightShader->addRenderable(renderable, localToWorld, nullptr);
_shaders.faceHighlightShader->addRenderable(renderable, localToWorld);
}
}
};
Expand Down
8 changes: 4 additions & 4 deletions radiant/xyview/XYRenderer.h
Expand Up @@ -51,14 +51,14 @@ class XYRenderer :

if (mergeShader)
{
mergeShader->addRenderable(renderable, localToWorld, nullptr);
mergeShader->addRenderable(renderable, localToWorld);
}
}

// Elements can still be selected in merge mode
if ((_flags & Highlight::Flags::Primitives) != 0)
{
_shaders.selectedShader->addRenderable(renderable, localToWorld, nullptr);
_shaders.selectedShader->addRenderable(renderable, localToWorld);
}

return;
Expand All @@ -69,11 +69,11 @@ class XYRenderer :
{
if ((_flags & Highlight::Flags::GroupMember) != 0)
{
_shaders.selectedShaderGroup->addRenderable(renderable, localToWorld, nullptr);
_shaders.selectedShaderGroup->addRenderable(renderable, localToWorld);
}
else
{
_shaders.selectedShader->addRenderable(renderable, localToWorld, nullptr);
_shaders.selectedShader->addRenderable(renderable, localToWorld);
}
}
}
Expand Down
5 changes: 2 additions & 3 deletions radiantcore/rendersystem/backend/OpenGLShader.cpp
Expand Up @@ -88,16 +88,15 @@ void OpenGLShader::destroy()
}

void OpenGLShader::addRenderable(const OpenGLRenderable& renderable,
const Matrix4& modelview,
const IRenderEntity* entity)
const Matrix4& modelview)
{
if (!_isVisible) return;

// Add the renderable to all of our shader passes
for (const OpenGLShaderPassPtr& pass : _shaderPasses)
{
// Submit the renderable to each pass
pass->addRenderable(renderable, modelview, nullptr, entity);
pass->addRenderable(renderable, modelview, nullptr);
}
}

Expand Down
3 changes: 1 addition & 2 deletions radiantcore/rendersystem/backend/OpenGLShader.h
Expand Up @@ -97,8 +97,7 @@ class OpenGLShader :
// Shader implementation
std::string getName() const override { return _name; }
void addRenderable(const OpenGLRenderable& renderable,
const Matrix4& modelview,
const IRenderEntity* entity) override;
const Matrix4& modelview) override;

bool hasSurfaces() const;
void drawSurfaces(const VolumeTest& view, const RenderInfo& info);
Expand Down
45 changes: 5 additions & 40 deletions radiantcore/rendersystem/backend/OpenGLShaderPass.cpp
Expand Up @@ -505,29 +505,11 @@ void OpenGLShaderPass::deactivateShaderProgram(OpenGLState& current)
// Add a Renderable to this bucket
void OpenGLShaderPass::addRenderable(const OpenGLRenderable& renderable,
const Matrix4& modelview,
const RendererLight* light,
const IRenderEntity* entity)
const RendererLight* light)
{
if (entity)
{
// Find or insert the render entity in our map
auto i = _renderables.find(entity);
if (i == _renderables.end())
{
i = _renderables.insert(std::make_pair(entity, Renderables())).first;
}

// Add this renderable to the list of renderables associated with the entity
i->second.push_back(
TransformedRenderable(renderable, modelview, light, entity)
);
}
else
{
_renderablesWithoutEntity.push_back(
TransformedRenderable(renderable, modelview, light, nullptr)
);
}
_renderablesWithoutEntity.push_back(
TransformedRenderable(renderable, modelview, light, nullptr)
);
}

// Render the bucket contents
Expand Down Expand Up @@ -555,33 +537,16 @@ void OpenGLShaderPass::render(OpenGLState& current,
{
renderAllContained(_renderablesWithoutEntity, current, viewer, time);
}

for (RenderablesByEntity::const_iterator i = _renderables.begin();
i != _renderables.end();
++i)
{
// Apply our state to the current state object
applyState(current, flagsMask, viewer, time, i->first);

if (!stateIsActive())
{
continue;
}

renderAllContained(i->second, current, viewer, time);
}
}

void OpenGLShaderPass::clearRenderables()
{
_renderablesWithoutEntity.clear();
_renderables.clear();
}

bool OpenGLShaderPass::empty()
{
return _renderables.empty() && _renderablesWithoutEntity.empty() &&
!_owner.hasSurfaces() && !_owner.hasWindings();
return _renderablesWithoutEntity.empty() && !_owner.hasSurfaces() && !_owner.hasWindings();
}

bool OpenGLShaderPass::isApplicableTo(RenderViewType renderViewType) const
Expand Down
7 changes: 1 addition & 6 deletions radiantcore/rendersystem/backend/OpenGLShaderPass.h
Expand Up @@ -66,10 +66,6 @@ class OpenGLShaderPass
typedef std::vector<TransformedRenderable> Renderables;
Renderables _renderablesWithoutEntity;

// Renderables sorted by RenderEntity
typedef std::map<const IRenderEntity*, Renderables> RenderablesByEntity;
RenderablesByEntity _renderables;

protected:

void setupTextureMatrix(GLenum textureUnit, const IShaderLayer::Ptr& stage);
Expand Down Expand Up @@ -121,8 +117,7 @@ class OpenGLShaderPass
*/
void addRenderable(const OpenGLRenderable& renderable,
const Matrix4& modelview,
const RendererLight* light = nullptr,
const IRenderEntity* entity = nullptr);
const RendererLight* light = nullptr);

/**
* Return the OpenGL state associated with this bucket.
Expand Down

0 comments on commit b73af9b

Please sign in to comment.