Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
AssetRendererManager.hpp
1#pragma once
2
3#include <vector>
4#include <map>
5#include <entt/fwd.hpp>
6
7#include "BaseAssetRenderer.hpp"
8
9namespace Grindstone {
10 namespace GraphicsAPI {
11 class CommandBuffer;
12 class DescriptorSet;
13 }
14
16 public:
17 void AddAssetRenderer(BaseAssetRenderer* assetRenderer);
18 void RemoveAssetRenderer(BaseAssetRenderer* assetRenderer);
19 void AddQueue(const char* name, DrawSortMode sortType);
20 void SetEngineDescriptorSet(GraphicsAPI::DescriptorSet* descriptorSet);
21 RenderQueueIndex GetIndexOfRenderQueue(const std::string& renderQueue) const;
22 void RenderShadowMap(
23 GraphicsAPI::CommandBuffer* commandBuffer,
24 GraphicsAPI::DescriptorSet* lightingDescriptorSet,
25 entt::registry& registry,
26 glm::vec3 lightSourcePosition
27 );
28 void RenderQueue(GraphicsAPI::CommandBuffer* commandBuffer, const char* name);
29 void CacheRenderTasksAndFrustumCull(glm::vec3 eyePosition, entt::registry& registry);
30 void SortQueues();
31
32 std::map<std::string, BaseAssetRenderer*> assetRenderers;
33 private:
34 std::map<std::string, DrawSortMode> queueDrawSortModes;
35 std::vector<std::string> assetQueuesNames;
36 };
37}
Definition AssetRendererManager.hpp:15
Definition BaseAssetRenderer.hpp:25
Definition CommandBuffer.hpp:21
Definition DescriptorSet.hpp:11