Skip to content

Commit

Permalink
#5584: Remove deactivated code from previous experiments
Browse files Browse the repository at this point in the history
  • Loading branch information
codereader committed Jan 14, 2022
1 parent 041e9f3 commit 9448c35
Show file tree
Hide file tree
Showing 13 changed files with 1 addition and 281 deletions.
4 changes: 0 additions & 4 deletions include/irender.h
Expand Up @@ -448,10 +448,6 @@ class Shader :
const LightSources* lights = nullptr,
const IRenderEntity* entity = nullptr) = 0;

#ifdef RENDERABLE_GEOMETRY
virtual void addGeometry(RenderableGeometry& geometry) = 0;
#endif

/**
* \brief
* Control the visibility of this shader.
Expand Down
30 changes: 0 additions & 30 deletions include/irenderable.h
Expand Up @@ -19,29 +19,6 @@ class LitObject;
class Renderable;
class VolumeTest;

#ifdef RENDERABLE_GEOMETRY
// Contains the vertex and index data to render geometry of the given type
struct RenderableGeometry
{
enum class Type
{
Triangles,
Quads,
Polygons,
};

// The primitive type which will be translated to openGL enums
virtual Type getType() const = 0;

// Data as needed by glDrawArrays

virtual const Vector3& getFirstVertex() = 0;
virtual std::size_t getVertexStride() = 0;
virtual const unsigned int& getFirstIndex() = 0;
virtual std::size_t getNumIndices() = 0;
};
#endif

/**
* \brief Class which accepts OpenGLRenderable objects during the first pass of
* rendering.
Expand Down Expand Up @@ -148,13 +125,6 @@ class IRenderableCollector

// Returns true if the current set of highlight flags is not empty
virtual bool hasHighlightFlags() const = 0;

#ifdef RENDERABLE_GEOMETRY
// Submits renderable geometry to the collector, it will only rendered in the current frame
// Flags are a combination of Highlight::Flags
virtual void addGeometry(RenderableGeometry& geometry, std::size_t flags)
{}
#endif
};

/**
Expand Down
27 changes: 0 additions & 27 deletions libs/render/CamRenderer.h
Expand Up @@ -256,33 +256,6 @@ class CamRenderer :
_shaders.faceHighlightShader->addRenderable(renderable, localToWorld, nullptr, nullptr);
}
}

#ifdef RENDERABLE_GEOMETRY
void addGeometry(RenderableGeometry& geometry, std::size_t flags) override
{
if (_editMode == IMap::EditMode::Merge && (flags & Highlight::Flags::MergeAction) != 0)
{
const auto& mergeShader = (flags & Highlight::Flags::MergeActionAdd) != 0 ? _shaders.mergeActionShaderAdd :
(flags & Highlight::Flags::MergeActionRemove) != 0 ? _shaders.mergeActionShaderRemove :
(flags & Highlight::Flags::MergeActionConflict) != 0 ? _shaders.mergeActionShaderConflict : _shaders.mergeActionShaderChange;

if (mergeShader)
{
mergeShader->addGeometry(geometry);
}
}

if ((flags & Highlight::Flags::Primitives) != 0 && _shaders.primitiveHighlightShader)
{
_shaders.primitiveHighlightShader->addGeometry(geometry);
}

if ((flags & Highlight::Flags::Faces) != 0 && _shaders.faceHighlightShader)
{
_shaders.faceHighlightShader->addGeometry(geometry);
}
}
#endif
};


Expand Down
16 changes: 0 additions & 16 deletions radiantcore/brush/BrushNode.cpp
Expand Up @@ -567,22 +567,6 @@ void BrushNode::renderSolid(IRenderableCollector& collector,
{
assert(_renderEntity); // brushes rendered without parent entity - no way!

#ifdef RENDERABLE_GEOMETRY
if (isSelected())
{
for (FaceInstance& faceInst : const_cast<BrushNode&>(*this).m_faceInstances)
{
// Send the winding geometry for rendering highlights
auto& winding = faceInst.getFace().getWinding();

if (!winding.empty())
{
collector.addGeometry(winding, IRenderableCollector::Highlight::Primitives|IRenderableCollector::Highlight::Flags::Faces);
}
}
}
#endif

#if 0 // The faces already sent their geomtry in onPreRender()
// Check for the override status of this brush
bool forceVisible = isForcedVisible();
Expand Down
47 changes: 0 additions & 47 deletions radiantcore/brush/Winding.cpp
Expand Up @@ -290,50 +290,3 @@ void Winding::printConnectivity()
<< " adjacent: " << i->adjacent << std::endl;
}
}

#ifdef RENDERABLE_GEOMETRY
Winding::Type Winding::getType() const
{
return Type::Polygons;
}

const Vector3& Winding::getFirstVertex()
{
return front().vertex;
}

std::size_t Winding::getVertexStride()
{
return sizeof(WindingVertex);
}

const unsigned int& Winding::getFirstIndex()
{
updateIndices();
return _indices.front();
}

std::size_t Winding::getNumIndices()
{
updateIndices();
return _indices.size();
}

void Winding::updateIndices()
{
auto windingSize = size();

if (_indices.size() == windingSize) return;

if (_indices.size() > windingSize)
{
_indices.resize(windingSize);
return;
}

while (_indices.size() < windingSize)
{
_indices.push_back(static_cast<unsigned int>(_indices.size()));
}
}
#endif
13 changes: 0 additions & 13 deletions radiantcore/brush/Winding.h
Expand Up @@ -21,9 +21,6 @@ class SelectionIntersection;
// by a few methods for rendering and selection tests.
class Winding final :
public IWinding
#ifdef RENDERABLE_GEOMETRY
, public RenderableGeometry
#endif
{
private:
std::vector<unsigned int> _indices;
Expand Down Expand Up @@ -74,14 +71,4 @@ class Winding final :

/// \brief Returns true if any point in \p w1 is in front of plane2, or any point in \p w2 is in front of plane1
static bool planesConcave(const Winding& w1, const Winding& w2, const Plane3& plane1, const Plane3& plane2);

#ifdef RENDERABLE_GEOMETRY
Type getType() const override;
const Vector3& getFirstVertex() override;
std::size_t getVertexStride() override;
const unsigned int& getFirstIndex() override;
std::size_t getNumIndices() override;

void updateIndices();
#endif
};
8 changes: 0 additions & 8 deletions radiantcore/patch/PatchNode.cpp
Expand Up @@ -364,14 +364,6 @@ void PatchNode::renderSolid(IRenderableCollector& collector, const VolumeTest& v
// Don't render invisible patches
if (!isForcedVisible() && !m_patch.hasVisibleMaterial()) return;

#ifdef RENDERABLE_GEOMETRY
if (isSelected())
{
// Send the patch geometry for rendering highlights
collector.addGeometry(const_cast<Patch&>(m_patch)._solidRenderable,
IRenderableCollector::Highlight::Primitives | IRenderableCollector::Highlight::Flags::Faces);
}
#endif
assert(_renderEntity); // patches rendered without parent - no way!

#if 0
Expand Down
60 changes: 0 additions & 60 deletions radiantcore/patch/PatchRenderables.cpp
Expand Up @@ -58,66 +58,6 @@ void RenderablePatchSolid::queueUpdate()
}
#endif

#ifdef RENDERABLE_GEOMETRY
RenderableGeometry::Type RenderablePatchSolid::getType() const
{
return RenderableGeometry::Type::Quads;
}

const Vector3& RenderablePatchSolid::getFirstVertex()
{
return _tess.vertices.front().vertex;
}

std::size_t RenderablePatchSolid::getVertexStride()
{
return sizeof(ArbitraryMeshVertex);
}

const unsigned int& RenderablePatchSolid::getFirstIndex()
{
updateIndices();
return _indices.front();
}

std::size_t RenderablePatchSolid::getNumIndices()
{
updateIndices();
return _indices.size();
}

void RenderablePatchSolid::updateIndices()
{
// To render the patch mesh as quads, we need 4 indices per quad
auto numRequiredIndices = (_tess.height - 1) * (_tess.width - 1) * 4;

if (_indices.size() == numRequiredIndices)
{
return;
}

if (_tess.height == 0 || _tess.width == 0)
{
_indices.clear();
return;
}

_indices.resize(numRequiredIndices);

auto index = 0;
for (auto h = 0; h < _tess.height - 1; ++h)
{
for (auto w = 0; w < _tess.width - 1; ++w)
{
_indices[index++] = static_cast<unsigned int>(h * _tess.width + w + 0);
_indices[index++] = static_cast<unsigned int>((h + 1) * _tess.width + w + 0);
_indices[index++] = static_cast<unsigned int>((h + 1) * _tess.width + w + 1);
_indices[index++] = static_cast<unsigned int>(h * _tess.width + w + 1);
}
}
}
#endif

const ShaderPtr& RenderablePatchVectorsNTB::getShader() const
{
return _shader;
Expand Down
14 changes: 0 additions & 14 deletions radiantcore/patch/PatchRenderables.h
Expand Up @@ -20,9 +20,6 @@
/// Helper class to render a PatchTesselation in solid mode
class RenderablePatchSolid :
public OpenGLRenderable
#ifdef RENDERABLE_GEOMETRY
, public RenderableGeometry
#endif
{
// Geometry source
PatchTesselation& _tess;
Expand All @@ -42,17 +39,6 @@ class RenderablePatchSolid :
void render(const RenderInfo& info) const;

void queueUpdate();

#ifdef RENDERABLE_GEOMETRY
Type getType() const override;
const Vector3& getFirstVertex() override;
std::size_t getVertexStride() override;
const unsigned int& getFirstIndex() override;
std::size_t getNumIndices() override;

private:
void updateIndices();
#endif
};
#endif

Expand Down
6 changes: 0 additions & 6 deletions radiantcore/rendersystem/OpenGLRenderSystem.cpp
Expand Up @@ -220,12 +220,6 @@ void OpenGLRenderSystem::render(RenderViewType renderViewType,
pair.second->clearRenderables();
}

#ifdef RENDERABLE_GEOMETRY
for (auto& shader : _shaders)
{
shader.second->clearGeometry();
}
#endif
glPopAttrib();
}

Expand Down
41 changes: 0 additions & 41 deletions radiantcore/rendersystem/backend/OpenGLShader.cpp
Expand Up @@ -173,40 +173,11 @@ void OpenGLShader::drawSurfaces()
// Render all windings
_windingRenderer->renderAllWindings();

#ifdef RENDERABLE_GEOMETRY
glFrontFace(GL_CW);
for (auto& geometry: _geometry)
{
GLenum mode = GL_TRIANGLES;

switch (geometry.get().getType())
{
case RenderableGeometry::Type::Quads:
mode = GL_QUADS;
break;

case RenderableGeometry::Type::Polygons:
mode = GL_POLYGON;
break;
}

glVertexPointer(3, GL_DOUBLE, static_cast<GLsizei>(geometry.get().getVertexStride()), &geometry.get().getFirstVertex());
glDrawElements(mode, static_cast<GLsizei>(geometry.get().getNumIndices()), GL_UNSIGNED_INT, &geometry.get().getFirstIndex());
}
#endif

glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
}

#ifdef RENDERABLE_GEOMETRY
void OpenGLShader::clearGeometry()
{
_geometry.clear();
}
#endif

bool OpenGLShader::hasSurfaces() const
{
return !_geometryRenderer.empty() || !_surfaceRenderer.empty() || _vertexBuffer && _vertexBuffer->getNumVertices() > 0;
Expand Down Expand Up @@ -279,18 +250,6 @@ void OpenGLShader::renderWinding(IWindingRenderer::RenderMode mode, IWindingRend
_windingRenderer->renderWinding(mode, slot);
}

#ifdef RENDERABLE_GEOMETRY
void OpenGLShader::addGeometry(RenderableGeometry& geometry)
{
_geometry.emplace_back(std::ref(geometry));
}

bool OpenGLShader::hasGeometry() const
{
return !_geometry.empty();
}
#endif

void OpenGLShader::setVisible(bool visible)
{
// Control visibility by inserting or removing our shader passes from the GL
Expand Down
10 changes: 0 additions & 10 deletions radiantcore/rendersystem/backend/OpenGLShader.h
Expand Up @@ -50,10 +50,6 @@ class OpenGLShader final :

std::unique_ptr<render::IndexedVertexBuffer<ArbitraryMeshVertex>> _vertexBuffer;

#ifdef RENDERABLE_GEOMETRY
std::vector<std::reference_wrapper<RenderableGeometry>> _geometry;
#endif

std::unique_ptr<IBackendWindingRenderer> _windingRenderer;
GeometryRenderer _geometryRenderer;
SurfaceRenderer _surfaceRenderer;
Expand Down Expand Up @@ -131,12 +127,6 @@ class OpenGLShader final :
void updateSurface(ISurfaceRenderer::Slot slot) override;
void renderSurface(ISurfaceRenderer::Slot slot) override;

#ifdef RENDERABLE_GEOMETRY
void addGeometry(RenderableGeometry& geometry) override;
bool hasGeometry() const;
void clearGeometry();
#endif

IWindingRenderer::Slot addWinding(const std::vector<ArbitraryMeshVertex>& vertices) override;
void removeWinding(IWindingRenderer::Slot slot) override;
void updateWinding(IWindingRenderer::Slot slot, const std::vector<ArbitraryMeshVertex>& vertices) override;
Expand Down

0 comments on commit 9448c35

Please sign in to comment.