Foray Library
rapid prototyping framework for crossplatform development of vulkan hardware ray tracing applications
Loading...
Searching...
No Matches
foray_geometrymanager.hpp
Go to the documentation of this file.
1#pragma once
2#include "../../core/foray_managedbuffer.hpp"
3#include "../foray_component.hpp"
4#include "../foray_geo.hpp"
5#include "../foray_mesh.hpp"
6#include <set>
7
8namespace foray::scene::gcomp {
9
12 {
13 public:
15
18
19 void Destroy();
20
21 FORAY_PROPERTY_R(Indices)
22 FORAY_PROPERTY_R(Vertices)
23 FORAY_PROPERTY_R(IndicesBuffer)
24 FORAY_PROPERTY_R(VerticesBuffer)
25
26 virtual ~GeometryStore() { Destroy(); }
27
28 FORAY_PROPERTY_R(Meshes)
29
30 bool CmdBindBuffers(VkCommandBuffer commandBuffer);
31 VkDescriptorBufferInfo GetVertexBufferDescriptorInfo() const { return mVerticesBuffer.GetVkDescriptorBufferInfo(); }
32 VkDescriptorBufferInfo GetIndexBufferDescriptorInfo() const { return mIndicesBuffer.GetVkDescriptorBufferInfo(); }
33
34 protected:
37 std::vector<Vertex> mVertices;
38 std::vector<uint32_t> mIndices;
39
40 std::vector<std::unique_ptr<Mesh>> mMeshes;
41 };
42} // namespace foray::scene
Wraps allocation and lifetime functionality of a VkBuffer.
Definition foray_managedbuffer.hpp:12
VkDescriptorBufferInfo GetVkDescriptorBufferInfo() const
Fills VkDescriptorBufferInfo object with zero offset and full buffer size.
Definition foray_managedbuffer.hpp:93
Definition foray_component.hpp:95
Stores all geometry in a single set of index and vertex buffers.
Definition foray_geometrymanager.hpp:12
VkDescriptorBufferInfo GetIndexBufferDescriptorInfo() const
Definition foray_geometrymanager.hpp:32
VkDescriptorBufferInfo GetVertexBufferDescriptorInfo() const
Definition foray_geometrymanager.hpp:31
std::vector< std::unique_ptr< Mesh > > mMeshes
Definition foray_geometrymanager.hpp:40
std::vector< Vertex > mVertices
Definition foray_geometrymanager.hpp:37
bool CmdBindBuffers(VkCommandBuffer commandBuffer)
core::ManagedBuffer mIndicesBuffer
Definition foray_geometrymanager.hpp:35
std::vector< uint32_t > mIndices
Definition foray_geometrymanager.hpp:38
core::ManagedBuffer mVerticesBuffer
Definition foray_geometrymanager.hpp:36
void InitOrUpdate()
Rewrites Indices and Vertices from CPU side storage to the GPU buffers.
#define FORAY_PROPERTY_R(member)
Getter+Setter shorthand for reference types.
Definition foray_basics.hpp:86
Definition foray_scene_declares.hpp:16