nothing actually done

This commit is contained in:
MihailRis
2024-04-24 07:35:46 +03:00
parent 051f0b8c6a
commit 1ecc608ead
19 changed files with 44 additions and 48 deletions
+50
View File
@@ -0,0 +1,50 @@
#ifndef GRAPHICS_RENDER_CHUNKSRENDERER_HPP_
#define GRAPHICS_RENDER_CHUNKSRENDERER_HPP_
#include <queue>
#include <memory>
#include <vector>
#include <unordered_map>
#include <glm/glm.hpp>
#include "../../voxels/Block.h"
#include "../../voxels/ChunksStorage.h"
#include "../../util/ThreadPool.hpp"
#include "../../settings.h"
class Mesh;
class Chunk;
class Level;
class BlocksRenderer;
class ContentGfxCache;
struct RendererResult {
glm::ivec2 key;
BlocksRenderer* renderer;
};
class ChunksRenderer {
Level* level;
std::unique_ptr<BlocksRenderer> renderer;
std::unordered_map<glm::ivec2, std::shared_ptr<Mesh>> meshes;
std::unordered_map<glm::ivec2, bool> inwork;
util::ThreadPool<Chunk, RendererResult> threadPool;
public:
ChunksRenderer(
Level* level,
const ContentGfxCache* cache,
const EngineSettings& settings
);
virtual ~ChunksRenderer();
std::shared_ptr<Mesh> render(std::shared_ptr<Chunk> chunk, bool important);
void unload(const Chunk* chunk);
std::shared_ptr<Mesh> getOrRender(std::shared_ptr<Chunk> chunk, bool important);
std::shared_ptr<Mesh> get(Chunk* chunk);
void update();
};
#endif // GRAPHICS_RENDER_CHUNKSRENDERER_HPP_