#pragma once #include #include #include #include #include #include #include "AssetManager.hpp" #include "Section.hpp" #include "World.hpp" #include "Vector.hpp" #include "Renderer.hpp" class RendererSection : Renderer { Vector sectionPosition; World *world; GLuint Vao, VboTextures, VboModels, VboColors; std::vector models; std::vector textures; std::vector colors; static GLuint VboVertices, VboUvs; static std::map refCounterVbo; static std::map refCounterVao; size_t numOfFaces = 0; bool isEnabled = true; size_t hash = 0; public: RendererSection(World *world, Vector position); RendererSection(const RendererSection &other); ~RendererSection() override; void Render(RenderState &renderState) override; void PrepareResources() override; void PrepareRender() override; void SetEnabled(bool isEnabled); Section *GetSection(); bool IsNeedResourcesPrepare() override; };