46struct VkCommandBuffer_T;
47struct VkDescriptorSetLayout_T;
48struct VkDescriptorPool_T;
49struct VkDescriptorSet_T;
51struct VkVertexInputAttributeDescription;
52struct VkVertexInputBindingDescription;
53struct VkPipelineShaderStageCreateInfo;
61 class VulkanVertexManager;
62 class VulkanMaterialManager;
67 struct ModelMatrixUniformObject
73 bool operator==(
const ModelMatrixUniformObject&
object)
const
75 return model_transform ==
object.model_transform
76 && flags ==
object.flags
77 && model_offset ==
object.model_offset
78 && custom_color ==
object.custom_color;
80 bool operator!=(
const ModelMatrixUniformObject&
object)
const
82 return model_transform !=
object.model_transform || flags !=
object.flags || model_offset !=
object.model_offset || custom_color !=
object.custom_color;
186 VkPipeline m_graphics_pipeline;
190 Time m_last_updated_time;
191 volatile mutable bool m_needs_matrix_commit;
196bool operator!=(
const VkVertexInputAttributeDescription& a,
const VkVertexInputAttributeDescription& b);
197bool operator!=(
const VkVertexInputBindingDescription& a,
const VkVertexInputBindingDescription& b);
198bool operator==(
const VkVertexInputAttributeDescription& a,
const VkVertexInputAttributeDescription& b);
199bool operator==(
const VkVertexInputBindingDescription& a,
const VkVertexInputBindingDescription& b);
#define DEFINE_NON_DISPATCHABLE_HANDLE(object)
Definition VulkanInstance.h:49
bool operator!=(const VkVertexInputAttributeDescription &a, const VkVertexInputAttributeDescription &b)
Definition VulkanRenderObject.cpp:10
bool operator==(const VkVertexInputAttributeDescription &a, const VkVertexInputAttributeDescription &b)
Definition VulkanRenderObject.cpp:18
The equivelent of std::vector but with a bit more control. The basic array unit of the library.
Definition Buffer.hpp:64
Definition GraphicsPipeline.h:42
Definition Dictionary.h:48
Definition Pointer.hpp:303
Definition GraphicsUpdateArguments.h:40
Definition Matrix.hpp:173
Represents a color in the RGB space with optional alpha transparency.
Definition RGBColor.h:53
Represents a timestamp with utilities for manipulation and conversion.
Definition Time.h:54
An element of a vector space. An element of the real coordinate space Rn Basis vector,...
Definition Vector.hpp:62
Definition VulkanRenderObject.h:66
bool hasOpacity() const
Definition VulkanRenderObject.cpp:590
bool hasImage() const
Definition VulkanRenderObject.cpp:595
void setMaterialManager(const DynamicPointer< VulkanMaterialManager > &material_manager)
Definition VulkanRenderObject.cpp:810
PrimitiveMode indexMode() const
Definition VulkanRenderObject.h:145
void clearInstances()
Definition VulkanRenderObject.cpp:376
const ConstPointer< VulkanMaterialManager > & materialManager() const
Definition VulkanRenderObject.h:143
uint01 parity() const
Definition VulkanRenderObject.h:124
bool isFilledShape() const
Definition VulkanRenderObject.cpp:508
void cleanup()
Definition VulkanRenderObject.cpp:339
static VkPipelineLayout pipelineLayout(ConstPointer< VulkanDevice > instance)
Definition VulkanRenderObject.cpp:706
fltp04 fadeDistance() const
Definition VulkanRenderObject.cpp:600
void commit(GraphicsUpdateArguments &args)
Definition VulkanRenderObject.cpp:327
Buffer< VkVertexInputBindingDescription, uint04, ObjectAllocator< true > > bindingDescriptions(GraphicsUpdateArguments &args) const
Definition VulkanRenderObject.cpp:749
void setPrimitiveMode(const PrimitiveMode &type)
Definition VulkanRenderObject.h:138
void addInstance(const Geometry &geo, const Model &parent, const Material &material)
Definition VulkanRenderObject.cpp:359
Buffer< VkVertexInputAttributeDescription, uint04, ObjectAllocator< true > > attributeDescriptions(GraphicsUpdateArguments &args) const
Definition VulkanRenderObject.cpp:740
PrimitiveProperty indexProperty() const
Definition VulkanRenderObject.h:146
void setVertexManager(const DynamicPointer< VulkanVertexManager > &vertex_manager)
Definition VulkanRenderObject.cpp:805
void setGraphicsPipeline(VkPipeline m_pipeline)
Definition VulkanRenderObject.cpp:733
void updateUniformBuffer(GraphicsUpdateArguments &args)
Definition VulkanRenderObject.cpp:176
VkPipeline getPipeline()
Definition VulkanRenderObject.h:117
bool hasCommand() const
Definition VulkanRenderObject.cpp:385
bool createPipeline(GraphicsUpdateArguments &args)
Definition VulkanRenderObject.cpp:605
VulkanRenderObject(const ConstPointer< VulkanDevice > &pipeline)
Definition VulkanRenderObject.cpp:28
~VulkanRenderObject()
Definition VulkanRenderObject.cpp:52
void setDevice(const DynamicPointer< VulkanDevice > &instance)
Definition VulkanRenderObject.cpp:170
Buffer< VkPipelineShaderStageCreateInfo, uint04, ObjectAllocator< true > > getShaderCreateInfo() const
Definition VulkanRenderObject.cpp:349
void setIndexProperty(const PrimitiveProperty &property)
Definition VulkanRenderObject.h:139
bool runCommand(GraphicsUpdateArguments &args, VkDescriptorSet camera_descriptor)
Definition VulkanRenderObject.cpp:392
void setParity(uint01 parity)
Definition VulkanRenderObject.cpp:815
const ConstPointer< VulkanVertexManager > & vertexManager() const
Definition VulkanRenderObject.h:144
PrimitiveProperty
Definition DesignObjectBase.h:44
float fltp04
Defines an alias representing a 4 byte floating-point number.
Definition BaseValues.hpp:157
uint8_t uint01
-Defines an alias representing a 1 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:98
PrimitiveMode
Definition DesignObjectBase.h:113
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:120
Definition BaseValues.hpp:272
Definition VulkanBitflagObject.h:38
Definition VulkanRenderObject.h:97
bool is_visible
Definition VulkanRenderObject.h:108
fltp04 pixel_thickness
Definition VulkanRenderObject.h:103
uint04 vertex_start
Definition VulkanRenderObject.h:104
GeoProperties(const Geometry &geo)
Definition VulkanRenderObject.h:98
Geometry geometry
Definition VulkanRenderObject.h:102
uint04 vertex_size
Definition VulkanRenderObject.h:105
uint04 index_start
Definition VulkanRenderObject.h:106
uint04 index_size
Definition VulkanRenderObject.h:107
Buffer< ModelProperties > model_parents
Definition VulkanRenderObject.h:101
Definition VulkanRenderObject.h:87
bool is_visible
Definition VulkanRenderObject.h:94
Material material
Definition VulkanRenderObject.h:93
Model model
Definition VulkanRenderObject.h:92
ModelProperties(const Model &model, const Material &material)
Definition VulkanRenderObject.h:88