42 class VulkanRenderObject;
43 class VulkanRenderDefinition;
uint64_t VkDescriptorPool
Definition VulkanCameraManager.h:40
#define DEFINE_NON_DISPATCHABLE_HANDLE(object)
Definition VulkanInstance.h:49
uint64_t VkPipelineCache
Definition VulkanSession.h:39
The equivelent of std::vector but with a bit more control. The basic array unit of the library.
Definition Buffer.hpp:56
Provides a constant, unmodifiable pointer that has shared ownership of a dynamically allocated object...
Definition GraphicsPipeline.h:42
A hash-based key-value store, useful for quick associative lookups. Key features include:
Definition Dictionary.h:61
Provides a modifiable pointer that has shared ownership of a dynamically allocated object.
Definition Pointer.hpp:320
A core class within the model heirarchy containing vertex-based data (Usually 3D data) within a set c...
Definition Geometry.h:64
A physical or virtual device used with the NDEVR Rendering Engine. A device contains System specific ...
Definition GraphicsDevice.h:12
A GraphicsPipeline that is responsible for setting up and rendering the resources of a DesignObjectLo...
Definition GraphicsSession.h:19
Options that are used for performing an update on a Graphics Engine call.
Definition GraphicsUpdateArguments.h:43
Container responsible for storing and setting the appearance of a Model or Geometry within the NDEVR ...
Definition Material.h:51
A core class that represents a node on model heirarchy. This node may contain a Geometry or one or mo...
Definition Model.h:58
The root Model that is responsible for storing the underlying data for all Scene Models.
Definition Model.h:492
A universally unique identifier (UUID) is a 128-bit number used to identify information in computer s...
Definition UUID.h:60
A structure for managing Viewport interactions with in the Vulkan Graphics Space.
Definition VulkanCameraManager.h:53
A GraphicsDevice for managing Vulkan limitations and actions. See: https://docs.vulkan....
Definition VulkanDevice.h:12
Manages all images within the Vulkan space.
Definition VulkanImage.h:116
Logic for creating the data in Vulkan for a specific Material.
Definition VulkanMaterialManager.h:114
Creates specific information for performing a render pass within Vulkan.
Definition VulkanRenderDefinition.h:45
A root render Object for Vulkan, which consists of a set Material, Model, and Geometry that is used t...
Definition VulkanRenderObject.h:69
Creates and manages the resources necessary for converting a DesignObjectLookup into 3D rendered data...
Definition VulkanSession.h:49
uint04 m_num_of_materials
Definition VulkanSession.h:121
DynamicPointer< VulkanShaderManager > m_shader_manager
Definition VulkanSession.h:113
void commit(GraphicsUpdateArguments &args) final override
virtual const ConstPointer< GraphicsDevice > & device() const final override
Definition VulkanSession.h:56
Dictionary< UUID, DynamicPointer< VulkanVertexManager > > m_scene_managers
Definition VulkanSession.h:104
bool createDescriptorPool(GraphicsUpdateArguments &args)
void removeGeometry(const UUID &mesh) final override
bool hasCommand() const override
bool runCommand(GraphicsUpdateArguments &args) final override
bool m_update_model_pool
Definition VulkanSession.h:125
bool checkAddRenderObject(GraphicsUpdateArguments &args, Model &model)
void ensureCameraExists(const UUID &camera)
virtual void cleanResources() final override
Definition VulkanSession.h:85
virtual void ensureLastRenderComplete() final override
Definition VulkanSession.h:83
void setupScene(GraphicsUpdateArguments &args) override
DynamicPointer< VulkanImageManager > m_image_manager
Definition VulkanSession.h:112
DynamicPointer< GraphicsPipeline > createRenderPipeline() final override
virtual void postClearAll() final override
void destroyMaterialManager(const UUID &mat)
void destroyVertexManager(const UUID &mesh)
VkPipelineCache m_model_pipeline_cache
Definition VulkanSession.h:119
DynamicPointer< VulkanMaterialManager > getMaterialManager(const Material &mat)
VulkanSession(const DynamicPointer< VulkanDevice > &instance)
Dictionary< UUID, Dictionary< UUID, Dictionary< PrimitiveMode, VulkanRenderObject * > > > m_render_objects[2]
Definition VulkanSession.h:109
Dictionary< UUID, DynamicPointer< VulkanVertexManager > > m_vertex_managers
Definition VulkanSession.h:105
bool checkAddRenderObject(const Scene &scene, const Model &model, const Material &mat, const Geometry &mesh, PrimitiveProperty property)
UUID uuid() const
Definition VulkanSession.h:71
VkDescriptorPool m_descriptor_pool
Definition VulkanSession.h:117
bool createPipeline(GraphicsUpdateArguments &args) final override
DynamicPointer< VulkanShaderManager > shaderManager()
Definition VulkanSession.h:79
void updateUniformBuffer(GraphicsUpdateArguments &args) final override
void createModelPipeline(GraphicsUpdateArguments &args)
void destroyCameraManager(const UUID &camera)
virtual void init(GraphicsUpdateArguments &) final override
Definition VulkanSession.h:86
void destroySceneManager(const UUID &scene)
virtual void drawFrame(GraphicsUpdateArguments &) final override
Definition VulkanSession.h:82
DynamicPointer< GraphicsDevice > m_graphics_device
Definition VulkanSession.h:115
DynamicPointer< VulkanDevice > m_device
Definition VulkanSession.h:116
bool checkScene(GraphicsUpdateArguments &args)
virtual const DynamicPointer< GraphicsDevice > & device() final override
Definition VulkanSession.h:57
Buffer< VulkanRenderObject * > m_pipelines
Definition VulkanSession.h:110
uint04 m_num_of_cameras
Definition VulkanSession.h:122
void cleanup() final override
void setRenderDefinition(const DynamicPointer< VulkanRenderDefinition > &def)
DynamicPointer< VulkanCameraManager > getCameraManager(const UUID &camera)
void cleanupOldPipelines(GraphicsUpdateArguments &args)
uint04 m_num_of_images
Definition VulkanSession.h:120
void ensureExists(const Geometry &mesh)
Dictionary< UUID, DynamicPointer< VulkanCameraManager > > m_camera_managers
Definition VulkanSession.h:107
virtual UUID uuid() final override
Definition VulkanSession.h:80
DynamicPointer< VulkanVertexManager > getVertexManager(const Geometry &mesh)
Dictionary< UUID, DynamicPointer< VulkanMaterialManager > > m_material_managers
Definition VulkanSession.h:106
void removeMaterial(const UUID &material) final override
DynamicPointer< VulkanRenderDefinition > m_render_definition
Definition VulkanSession.h:114
void addRenderObject(const Scene &scene, const Model &model, const Material &mat, const Geometry &mesh, PrimitiveProperty property) override
UUID m_uuid
Definition VulkanSession.h:124
void pipelineSort(GraphicsUpdateArguments &args)
virtual void setWindowInstance(WindowInstance *) final override
Definition VulkanSession.h:84
Manages all active shaders in a VulkanSession.
Definition VulkanShader.h:69
Manages all vertices in a specific Scene object for interfacing with Vulkan.
Definition VulkanVertexManager.h:49
PrimitiveProperty
Definition DesignObjectBase.h:44
PrimitiveMode
Used with Geometry to describe how vertices and indices are used to form shapes.
Definition DesignObjectBase.h:116
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:96