41struct VkWriteDescriptorSet;
42struct VkDescriptorImageInfo;
43struct VkPipelineShaderStageCreateInfo;
50 class GraphicsUpdateArguments;
103 static_assert(
sizeof(FragUniformObject) == 176,
"Bad FragUniformSize");
#define vk_null
Definition VulkanDefines.h:11
#define DEFINE_NON_DISPATCHABLE_HANDLE(object)
Definition VulkanInstance.h:49
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 Pointer.hpp:303
Definition GraphicsUpdateArguments.h:40
ShadingModel
Definition Material.h:48
TextureCoordMode
Definition Material.h:98
Definition MemoryManager.h:283
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 VulkanMaterialManager.h:106
DynamicPointer< VulkanBuffer > m_frag_uniform_buffer
Definition VulkanMaterialManager.h:191
bool m_is_wireframe
Definition VulkanMaterialManager.h:223
bool m_has_image_opacity
Definition VulkanMaterialManager.h:219
VertexUniformObject getVertexUniformObject(const Material &material, const GraphicsUpdateArguments &args) const
Definition VulkanMaterialManager.cpp:180
void addMaterial(const Material &material)
Definition VulkanMaterialManager.cpp:378
bool hasOpacity() const
Definition VulkanMaterialManager.h:124
bool hasImage() const
Definition VulkanMaterialManager.cpp:424
DynamicPointer< VulkanShaderManager > m_shader_manager
Definition VulkanMaterialManager.h:209
void updateShader(const Material &mat, const GraphicsUpdateArguments &args, DynamicPointer< VulkanShaderManager > &shader_manager)
Definition VulkanMaterialManager.cpp:401
bool m_use_model_color
Definition VulkanMaterialManager.h:227
VkDescriptorSet m_descriptor_set
Definition VulkanMaterialManager.h:205
VulkanMaterialManager(const ConstPointer< VulkanDevice > &device)
Definition VulkanMaterialManager.cpp:126
void resetPool()
Definition VulkanMaterialManager.h:161
VkSampler m_sampler
Definition VulkanMaterialManager.h:182
bool m_needs_to_commit_vert_buffer
Definition VulkanMaterialManager.h:215
Time lastDependencyUpdate() const
Definition VulkanMaterialManager.h:153
VulkanBitflagObject uvImageFlags() const
Definition VulkanMaterialManager.h:114
void getShaderCreateInfo(PrimitiveMode property, Buffer< VkPipelineShaderStageCreateInfo, uint04, ObjectAllocator< true > > &buffer) const
Definition VulkanMaterialManager.cpp:765
String getColorByChannel(GraphicsUpdateArguments &args) const
Definition VulkanMaterialManager.cpp:481
bool useNormalForTexture() const
Definition VulkanMaterialManager.h:158
ConstPointer< VulkanShader > getFragmentShader(PrimitiveMode property) const
Definition VulkanMaterialManager.cpp:497
String getExtraPropertyChannel() const
Definition VulkanMaterialManager.h:140
bool m_write_to_depth
Definition VulkanMaterialManager.h:230
void createDescriptorSet(VkDescriptorPool pool, const GraphicsUpdateArguments &args)
Definition VulkanMaterialManager.cpp:667
bool usesLayerColor() const
Definition VulkanMaterialManager.h:129
bool usesModelColor() const
Definition VulkanMaterialManager.h:128
VertexUniformObject m_vert_uniform
Definition VulkanMaterialManager.h:187
void cleanup()
Definition VulkanMaterialManager.cpp:154
UUID id() const
Definition VulkanMaterialManager.cpp:611
ConstPointer< VulkanImageView > m_uv_view[cast< uint04 >(UVType::e_uv_size)]
Definition VulkanMaterialManager.h:196
bool useLighting() const
Definition VulkanMaterialManager.cpp:881
void createSampler(const GraphicsUpdateArguments &args)
Definition VulkanMaterialManager.cpp:532
VulkanBitflagObject m_last_image_flag_object
Definition VulkanMaterialManager.h:183
VulkanMaterialManager(const VulkanMaterialManager &m_pipeline)=delete
fltp04 fadeDistance() const
Definition VulkanMaterialManager.cpp:420
Time m_last_push_update_time
Definition VulkanMaterialManager.h:200
String m_shader_name
Definition VulkanMaterialManager.h:211
bool m_smooth_normals
Definition VulkanMaterialManager.h:222
UUID m_id
Definition VulkanMaterialManager.h:232
bool m_has_grid
Definition VulkanMaterialManager.h:225
String m_image_address[cast< uint04 >(UVType::e_uv_size)]
Definition VulkanMaterialManager.h:202
bool m_needs_to_commit_frag_buffer
Definition VulkanMaterialManager.h:214
bool m_ignore_depth
Definition VulkanMaterialManager.h:229
VkDescriptorPool m_descriptor_pool
Definition VulkanMaterialManager.h:184
VulkanBitflagObject getUVImageFlags(const Material &material) const
Definition VulkanMaterialManager.cpp:159
uint04 m_layer_number
Definition VulkanMaterialManager.h:231
Vector< 3, Material::TileTextureMode > m_texture_tile_mode
Definition VulkanMaterialManager.h:207
~VulkanMaterialManager()
Definition VulkanMaterialManager.cpp:150
Buffer< Material > m_materials
Definition VulkanMaterialManager.h:181
bool m_needs_pipeline_update
Definition VulkanMaterialManager.h:216
bool isDynamic() const
Definition VulkanMaterialManager.h:127
UUID material() const
Definition VulkanMaterialManager.cpp:777
ConstPointer< VulkanDevice > m_device
Definition VulkanMaterialManager.h:185
void clearMaterials()
Definition VulkanMaterialManager.cpp:397
Time m_last_updated_time
Definition VulkanMaterialManager.h:198
bool needsToUpdateShader(const Material &material)
Definition VulkanMaterialManager.cpp:876
void updateUniformBuffer(GraphicsUpdateArguments &args)
Definition VulkanMaterialManager.cpp:212
uint04 getNumberOfImages(const GraphicsUpdateArguments &args) const
Definition VulkanMaterialManager.cpp:464
bool hasGrid() const
Definition VulkanMaterialManager.h:115
bool m_has_opacity
Definition VulkanMaterialManager.h:217
String m_extra_channel
Definition VulkanMaterialManager.h:206
static VkDescriptorSetLayout descriptorSetLayout(ConstPointer< VulkanDevice > device)
Definition VulkanMaterialManager.cpp:566
DynamicPointer< VulkanBuffer > m_vertex_uniform_buffer
Definition VulkanMaterialManager.h:190
fltp04 m_depth_bias
Definition VulkanMaterialManager.h:212
bool m_use_layer_color
Definition VulkanMaterialManager.h:228
bool ignoreDepth() const
Definition VulkanMaterialManager.h:125
bool m_is_dynamic
Definition VulkanMaterialManager.h:224
bool isWireframe() const
Definition VulkanMaterialManager.h:156
fltp04 depthBias() const
Definition VulkanMaterialManager.h:131
bool needsToUpdateImage(const Material &material)
Definition VulkanMaterialManager.cpp:856
bool overrideCamera() const
Definition VulkanMaterialManager.h:157
bool writeToDepth() const
Definition VulkanMaterialManager.h:126
void getDescriptorWrites(Buffer< VkWriteDescriptorSet, uint04, ObjectAllocator< true > > &descriptor_writes, Buffer< VkDescriptorImageInfo, uint04, ObjectAllocator< true > > &image_info) const
Definition VulkanMaterialManager.cpp:718
bool m_use_normal_for_texture
Definition VulkanMaterialManager.h:226
void commit()
Definition VulkanMaterialManager.cpp:433
FragUniformObject getFragUniformObject(const Material &material) const
Definition VulkanMaterialManager.cpp:187
bool m_is_two_sided
Definition VulkanMaterialManager.h:220
void checkImages()
Definition VulkanMaterialManager.cpp:175
const VertexUniformObject & vertexUniform() const
Definition VulkanMaterialManager.h:118
uint04 m_number_of_uniforms
Definition VulkanMaterialManager.h:197
bool smoothNormals() const
Definition VulkanMaterialManager.cpp:891
Material::ShadingModel m_shade_model
Definition VulkanMaterialManager.h:210
bool m_override_camera
Definition VulkanMaterialManager.h:221
void createPipeline(GraphicsUpdateArguments &args, DynamicPointer< VulkanShaderManager > &shader_manager, DynamicPointer< VulkanImageManager > &image_manager, VkDescriptorPool pool)
Definition VulkanMaterialManager.cpp:450
bool m_has_image
Definition VulkanMaterialManager.h:218
VkDescriptorSet descriptorSet() const
Definition VulkanMaterialManager.h:147
FragUniformObject m_frag_uniform
Definition VulkanMaterialManager.h:188
bool isTwoSided() const
Definition VulkanMaterialManager.h:155
static UUID MaterialID(const Material &material)
Definition VulkanMaterialManager.cpp:615
uint04 getLayerNumber(const Material &material) const
Definition VulkanMaterialManager.cpp:896
void updateImages(const Material &mat, const GraphicsUpdateArguments &args, DynamicPointer< VulkanImageManager > &image_manager)
Definition VulkanMaterialManager.cpp:785
VulkanBitflagObject getBitflagObject() const
Definition VulkanMaterialManager.cpp:196
ConstPointer< VulkanImageData > m_uv_data[cast< uint04 >(UVType::e_uv_size)]
Definition VulkanMaterialManager.h:195
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
constexpr t_to cast(const Angle< t_from > &value)
Definition Angle.h:514
Definition BaseValues.hpp:272
Definition VulkanBitflagObject.h:38