46struct VkCommandBuffer_T;
47struct VkDescriptorSetLayout_T;
48struct VkDescriptorPool_T;
49struct VkDescriptorSet_T;
51struct VkVertexInputAttributeDescription;
52struct VkVertexInputBindingDescription;
53struct VkPipelineShaderStageCreateInfo;
61 class VulkanVertexManager;
62 class VulkanMaterialManager;
70 struct ModelMatrixUniformObject
76 bool operator==(
const ModelMatrixUniformObject&
object)
const
78 return model_transform ==
object.model_transform
79 && flags ==
object.flags
80 && model_offset ==
object.model_offset
81 && custom_color ==
object.custom_color;
83 bool operator!=(
const ModelMatrixUniformObject&
object)
const
85 return model_transform !=
object.model_transform || flags !=
object.flags || model_offset !=
object.model_offset || custom_color !=
object.custom_color;
193 Time m_last_updated_time;
194 volatile mutable bool m_needs_matrix_commit;
199bool operator!=(
const VkVertexInputAttributeDescription& a,
const VkVertexInputAttributeDescription& b);
200bool operator!=(
const VkVertexInputBindingDescription& a,
const VkVertexInputBindingDescription& b);
201bool operator==(
const VkVertexInputAttributeDescription& a,
const VkVertexInputAttributeDescription& b);
202bool operator==(
const VkVertexInputBindingDescription& a,
const VkVertexInputBindingDescription& b);
uint64_t VkDescriptorSet
Definition VulkanCameraManager.h:41
#define DEFINE_NON_DISPATCHABLE_HANDLE(object)
Definition VulkanInstance.h:49
uint64_t VkPipelineLayout
Definition VulkanRenderObject.h:56
bool operator!=(const VkVertexInputAttributeDescription &a, const VkVertexInputAttributeDescription &b)
uint64_t VkPipeline
Definition VulkanRenderObject.h:55
bool operator==(const VkVertexInputAttributeDescription &a, const VkVertexInputAttributeDescription &b)
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
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
Definition Matrix.hpp:176
A core class that represents a node on model heirarchy. This node may contain a Geometry or one or mo...
Definition Model.h:58
Represents a color in the RGB space with optional alpha transparency.
Definition RGBColor.h:54
Represents a timestamp with utilities for manipulation and conversion.
Definition Time.h:54
A fixed-size array with better performance compared to dynamic containers.
Definition Vector.hpp:60
A root render Object for Vulkan, which consists of a set Material, Model, and Geometry that is used t...
Definition VulkanRenderObject.h:69
void setMaterialManager(const DynamicPointer< VulkanMaterialManager > &material_manager)
PrimitiveMode indexMode() const
Definition VulkanRenderObject.h:148
const ConstPointer< VulkanMaterialManager > & materialManager() const
Definition VulkanRenderObject.h:146
VulkanRenderObject(const VulkanRenderObject &instance)
uint01 parity() const
Definition VulkanRenderObject.h:127
bool isFilledShape() const
fltp04 fadeDistance() const
void commit(GraphicsUpdateArguments &args)
Buffer< VkVertexInputBindingDescription, uint04, ObjectAllocator< true > > bindingDescriptions(GraphicsUpdateArguments &args) const
void setPrimitiveMode(const PrimitiveMode &type)
Definition VulkanRenderObject.h:141
void addInstance(const Geometry &geo, const Model &parent, const Material &material)
Buffer< VkVertexInputAttributeDescription, uint04, ObjectAllocator< true > > attributeDescriptions(GraphicsUpdateArguments &args) const
PrimitiveProperty indexProperty() const
Definition VulkanRenderObject.h:149
static VkPipelineLayout pipelineLayout(ConstPointer< VulkanDevice > instance)
void setVertexManager(const DynamicPointer< VulkanVertexManager > &vertex_manager)
void setGraphicsPipeline(VkPipeline m_pipeline)
void updateUniformBuffer(GraphicsUpdateArguments &args)
VkPipeline getPipeline()
Definition VulkanRenderObject.h:120
bool createPipeline(GraphicsUpdateArguments &args)
VulkanRenderObject(const ConstPointer< VulkanDevice > &pipeline)
void setDevice(const DynamicPointer< VulkanDevice > &instance)
Buffer< VkPipelineShaderStageCreateInfo, uint04, ObjectAllocator< true > > getShaderCreateInfo() const
void setIndexProperty(const PrimitiveProperty &property)
Definition VulkanRenderObject.h:142
bool runCommand(GraphicsUpdateArguments &args, VkDescriptorSet camera_descriptor)
void setParity(uint01 parity)
const ConstPointer< VulkanVertexManager > & vertexManager() const
Definition VulkanRenderObject.h:147
PrimitiveProperty
Definition DesignObjectBase.h:44
float fltp04
Defines an alias representing a 4 byte floating-point number Bit layout is as follows: -Sign: 1 bit a...
Definition BaseValues.hpp:127
uint8_t uint01
-Defines an alias representing a 1 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:80
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
Defines for a given type (such as sint04, fltp08, UUID, etc) a maximum, minimum, and reserved 'invali...
Definition BaseValues.hpp:233
Stores bools to be sent to both the Vertex and Fragment shaders in the Vulkan space.
Definition VulkanBitflagObject.h:41
Definition VulkanRenderObject.h:100
bool is_visible
Definition VulkanRenderObject.h:111
fltp04 pixel_thickness
Definition VulkanRenderObject.h:106
uint04 vertex_start
Definition VulkanRenderObject.h:107
GeoProperties(const Geometry &geo)
Definition VulkanRenderObject.h:101
Geometry geometry
Definition VulkanRenderObject.h:105
uint04 vertex_size
Definition VulkanRenderObject.h:108
uint04 index_start
Definition VulkanRenderObject.h:109
uint04 index_size
Definition VulkanRenderObject.h:110
Buffer< ModelProperties > model_parents
Definition VulkanRenderObject.h:104
Definition VulkanRenderObject.h:90
bool is_visible
Definition VulkanRenderObject.h:97
Material material
Definition VulkanRenderObject.h:96
Model model
Definition VulkanRenderObject.h:95
ModelProperties(const Model &model, const Material &material)
Definition VulkanRenderObject.h:91