summaryrefslogtreecommitdiffstats
path: root/src/RendererSection.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/RendererSection.hpp')
-rw-r--r--src/RendererSection.hpp25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/RendererSection.hpp b/src/RendererSection.hpp
index 0a03f44..8125e4e 100644
--- a/src/RendererSection.hpp
+++ b/src/RendererSection.hpp
@@ -7,26 +7,39 @@ class RenderState;
class RendererSectionData;
class RendererSection {
- std::shared_ptr<Gal::PipelineInstance> pipelineInstance;
- std::shared_ptr<Gal::Buffer> buffer;
- size_t hash;
+ std::shared_ptr<Gal::PipelineInstance> solidPipelineInstance;
+ std::shared_ptr<Gal::Buffer> solidBuffer;
+ std::shared_ptr<Gal::PipelineInstance> liquidPipelineInstance;
+ std::shared_ptr<Gal::Buffer> liquidBuffer;
Vector sectionPos;
+ size_t hash = 0;
+ size_t solidFacesCount = 0;
+ size_t liquidFacesCount = 0;
RendererSection(const RendererSection &other) = delete;
public:
- RendererSection(const RendererSectionData& data, std::shared_ptr<Gal::Pipeline> pipeline, std::shared_ptr<Gal::BufferBinding> bufferBinding);
+ RendererSection(
+ const RendererSectionData& data,
+ std::shared_ptr<Gal::Pipeline> solidPipeline,
+ std::shared_ptr<Gal::BufferBinding> solidBufferBinding,
+ std::shared_ptr<Gal::Pipeline> liquidPipeline,
+ std::shared_ptr<Gal::BufferBinding> liquidBufferBinding);
RendererSection(RendererSection &&other);
~RendererSection();
- void Render();
+ void RenderSolid();
+
+ void RenderLiquid();
Vector GetPosition();
size_t GetHash();
- size_t numOfFaces;
+ inline size_t GetSolidFacesCount() { return solidFacesCount; }
+
+ inline size_t GetLiquidFacesCount() { return liquidFacesCount; }
friend void swap(RendererSection &lhs, RendererSection &rhs);