39struct VkVertexInputAttributeDescription;
40struct VkVertexInputBindingDescription;
41struct VkPipelineShaderStageCreateInfo;
44 class GraphicsUpdateArguments;
72#ifdef VULKAN_FAN_CONVERSION
74 void clearFanToStripBounds();
75 void removeFanToStripBounds(
UUID bounds_id);
101#ifdef VULKAN_FAN_CONVERSION
A bitset that stores 8 bits (elements with only two possible values: 0 or 1, true or false,...
Definition BitFlag.hpp:55
A specification of upper and lower bounds in N-dimensions.
Definition Bounds.hpp:52
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
Options that are used for performing an update on a Graphics Engine call.
Definition GraphicsUpdateArguments.h:43
Definition MemoryManager.h:261
The root Model that is responsible for storing the underlying data for all Scene Models.
Definition Model.h:492
The core String class for the NDEVR API.
Definition String.h:69
Represents a timestamp with utilities for manipulation and conversion.
Definition Time.h:54
A universally unique identifier (UUID) is a 128-bit number used to identify information in computer s...
Definition UUID.h:60
Manages all vertices in a specific Scene object for interfacing with Vulkan.
Definition VulkanVertexManager.h:49
DynamicPointer< GraphicsBuffer > m_index_buffer
Definition VulkanVertexManager.h:90
ConstPointer< GraphicsBuffer > indexBuffer() const
void updateBuffer(const Scene &scene, GraphicsUpdateArguments &args)
DynamicPointer< VulkanShaderManager > m_shader_manager
Definition VulkanVertexManager.h:94
void updateVertexBuffer(const Scene &scene, GraphicsUpdateArguments &args, VertexProperty property)
Buffer< VkVertexInputBindingDescription, uint04, ObjectAllocator< true > > bindingDescriptions(GraphicsUpdateArguments &args, const String &extra_property, uint04 offset) const
ConstPointer< GraphicsBuffer > getRenderBuffer(const Scene &scene, const String &channel) const
void createPipeline(GraphicsUpdateArguments &args, DynamicPointer< VulkanShaderManager > &shader_manager)
Time lastDependencyUpdate() const
Definition VulkanVertexManager.h:54
VkIndexType indexType() const
VulkanVertexManager(const ConstPointer< VulkanDevice > &device)
ConstPointer< VulkanShader > getShader(PrimitiveMode mode, bool has_grid, bool has_image) const
void updateExtraBuffer(GraphicsUpdateArguments &args, const String &extra_property)
DynamicPointer< GraphicsBuffer > m_vertex_buffer[cast< uint04 >(VertexProperty::BitFlag)+1]
Definition VulkanVertexManager.h:92
void updateExtraBuffer(GraphicsUpdateArguments &args, const Scene &scene, const String &extra_property)
Time m_last_push_update_time
Definition VulkanVertexManager.h:98
Buffer< VkVertexInputAttributeDescription, uint04, ObjectAllocator< true > > attributeDescriptions(GraphicsUpdateArguments &args, const String &extra_property, uint04 offset) const
void updateIndexBuffer(const Scene &scene, GraphicsUpdateArguments &args)
BitFlag vertexFlags() const
Definition VulkanVertexManager.h:70
bool m_using_vertex_buffer[cast< uint04 >(VertexProperty::BitFlag)+1]
Definition VulkanVertexManager.h:93
VulkanVertexManager(const VulkanVertexManager &m_pipeline)=delete
bool m_needs_pipeline_update
Definition VulkanVertexManager.h:99
ConstPointer< VulkanDevice > m_device
Definition VulkanVertexManager.h:89
Time m_last_updated_time
Definition VulkanVertexManager.h:97
void updateUniformBuffer(GraphicsUpdateArguments &args)
UUID m_scene
Definition VulkanVertexManager.h:83
UUID scene() const
Definition VulkanVertexManager.h:81
BitFlag m_vertex_flags
Definition VulkanVertexManager.h:96
bool m_needs_index_buffer_update
Definition VulkanVertexManager.h:100
VkVertexInputAttributeDescription getAttribute(const Scene &scene, const String &channel, uint04 offset) const
VkVertexInputBindingDescription getDescription(const Scene &scene, const String &channel, uint04 offset) const
Time lastUpdateTime() const
Definition VulkanVertexManager.h:55
DynamicPointer< GraphicsBuffer > m_vertex_flags_buffer
Definition VulkanVertexManager.h:91
void getShaderCreateInfo(PrimitiveMode mode, Buffer< VkPipelineShaderStageCreateInfo, uint04, ObjectAllocator< true > > &buffer, bool has_grid, bool has_image) const
void setScene(const Scene &scene)
void updateShader(const Scene &scene, GraphicsUpdateArguments &args, DynamicPointer< VulkanShaderManager > &shader_manager)
uint04 vertexSize() const
Definition VulkanVertexManager.h:80
Dictionary< String, DynamicPointer< GraphicsBuffer > > m_extra_properties
Definition VulkanVertexManager.h:95
Buffer< VkBuffer > getRenderBuffers(GraphicsUpdateArguments &args, const String &extra_property) const
VertexProperty
Definition DesignObjectBase.h:52
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
constexpr t_to cast(const Angle< t_from > &value)
Definition Angle.h:375