Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
MousePick.hpp
1#pragma once
2
3#include <Common/Rendering/RendererFeature.hpp>
4#include <Common/Rendering/RenderGraphBuilder.hpp>
5#include <EngineCore/Assets/AssetReference.hpp>
6#include <EngineCore/Assets/PipelineSet/GraphicsPipelineAsset.hpp>
7
9 class MousePick : public Rendering::RendererFeature {
10 public:
11 MousePick() : Rendering::RendererFeature("MousePick", Rendering::DeferredRenderGraphOrderEvent::EndRendering - 3) {}
12 static const char* GetStaticFeatureName() { return "MousePick"; }
13 virtual void Initialize() override;
14 virtual void Bind(
17 ) override;
18
19 static uint32_t GetMousePickedEntity(GraphicsAPI::CommandBuffer* commandBuffer);
20
21 private:
22 GraphicsAPI::DescriptorSetLayout* mousePickDescriptorSetLayout = nullptr;
23
24 std::array<GraphicsAPI::Image*, 3> mousePickRenderTarget{};
25 std::array<GraphicsAPI::Framebuffer*, 3> mousePickFramebuffer{};
26 std::array<GraphicsAPI::DescriptorSet*, 3> mousePickDescriptorSet{};
27 std::array<GraphicsAPI::Buffer*, 3> mousePickMatrixBuffer{};
28 static std::array<GraphicsAPI::Buffer*, 3> mousePickResponseBuffer;
29 };
30}
Definition CommandBuffer.hpp:109
Definition DescriptorSetLayout.hpp:14
Definition RenderGraphBuilder.hpp:12
Definition RendererFeature.hpp:10
Definition RenderFrameContext.hpp:24