API Documentation
Loading...
Searching...
No Matches
VulkanVertexManager Class Reference

Manages all vertices in a specific Scene object for interfacing with Vulkan. More...

#include <VulkanVertexManager.h>

Collaboration diagram for VulkanVertexManager:
[legend]

Public Member Functions

Buffer< VkVertexInputAttributeDescription, uint04, ObjectAllocator< true > > attributeDescriptions (GraphicsUpdateArguments &args, const String &extra_property, uint04 offset) const
 
Buffer< VkVertexInputBindingDescription, uint04, ObjectAllocator< true > > bindingDescriptions (GraphicsUpdateArguments &args, const String &extra_property, uint04 offset) const
 
void commit ()
 
void createPipeline (GraphicsUpdateArguments &args, DynamicPointer< VulkanShaderManager > &shader_manager)
 
VkVertexInputAttributeDescription getAttribute (const Scene &scene, const String &channel, uint04 offset) const
 
VkVertexInputBindingDescription getDescription (const Scene &scene, const String &channel, uint04 offset) const
 
ConstPointer< GraphicsBuffergetRenderBuffer (const Scene &scene, const String &channel) const
 
Buffer< VkBuffer > getRenderBuffers (GraphicsUpdateArguments &args, const String &extra_property) const
 
ConstPointer< VulkanShadergetShader (PrimitiveMode mode, bool has_grid, bool has_image) const
 
void getShaderCreateInfo (PrimitiveMode mode, Buffer< VkPipelineShaderStageCreateInfo, uint04, ObjectAllocator< true > > &buffer, bool has_grid, bool has_image) const
 
ConstPointer< GraphicsBufferindexBuffer () const
 
VkIndexType indexType () const
 
Time lastDependencyUpdate () const
 
Time lastUpdateTime () const
 
UUID scene () const
 
void setScene (const Scene &scene)
 
void updateExtraBuffer (GraphicsUpdateArguments &args, const Scene &scene, const String &extra_property)
 
void updateExtraBuffer (GraphicsUpdateArguments &args, const String &extra_property)
 
void updateUniformBuffer (GraphicsUpdateArguments &args)
 
BitFlag vertexFlags () const
 
uint04 vertexSize () const
 
 VulkanVertexManager (const ConstPointer< VulkanDevice > &device)
 
 VulkanVertexManager (const VulkanVertexManager &m_pipeline)=delete
 
 ~VulkanVertexManager ()
 

Protected Member Functions

void updateBuffer (const Scene &scene, GraphicsUpdateArguments &args)
 
void updateIndexBuffer (const Scene &scene, GraphicsUpdateArguments &args)
 
void updateShader (const Scene &scene, GraphicsUpdateArguments &args, DynamicPointer< VulkanShaderManager > &shader_manager)
 
void updateVertexBuffer (const Scene &scene, GraphicsUpdateArguments &args, VertexProperty property)
 

Protected Attributes

ConstPointer< VulkanDevicem_device
 
Dictionary< String, DynamicPointer< GraphicsBuffer > > m_extra_properties
 
DynamicPointer< GraphicsBufferm_index_buffer
 
Time m_last_push_update_time
 
Time m_last_updated_time
 
bool m_needs_index_buffer_update
 
bool m_needs_pipeline_update
 
UUID m_scene
 
DynamicPointer< VulkanShaderManagerm_shader_manager
 
bool m_using_vertex_buffer [cast< uint04 >(VertexProperty::BitFlag)+1] = {false, false, false, false, false, false}
 
DynamicPointer< GraphicsBufferm_vertex_buffer [cast< uint04 >(VertexProperty::BitFlag)+1]
 
BitFlag m_vertex_flags
 
DynamicPointer< GraphicsBufferm_vertex_flags_buffer
 

Detailed Description

Manages all vertices in a specific Scene object for interfacing with Vulkan.


Constructor & Destructor Documentation

◆ VulkanVertexManager() [1/2]

◆ VulkanVertexManager() [2/2]

VulkanVertexManager ( const VulkanVertexManager & m_pipeline)
delete

◆ ~VulkanVertexManager()

Member Function Documentation

◆ attributeDescriptions()

Buffer< VkVertexInputAttributeDescription, uint04, ObjectAllocator< true > > attributeDescriptions ( GraphicsUpdateArguments & args,
const String & extra_property,
uint04 offset ) const

◆ bindingDescriptions()

Buffer< VkVertexInputBindingDescription, uint04, ObjectAllocator< true > > bindingDescriptions ( GraphicsUpdateArguments & args,
const String & extra_property,
uint04 offset ) const

◆ commit()

void commit ( )

◆ createPipeline()

void createPipeline ( GraphicsUpdateArguments & args,
DynamicPointer< VulkanShaderManager > & shader_manager )

◆ getAttribute()

VkVertexInputAttributeDescription getAttribute ( const Scene & scene,
const String & channel,
uint04 offset ) const

◆ getDescription()

VkVertexInputBindingDescription getDescription ( const Scene & scene,
const String & channel,
uint04 offset ) const

◆ getRenderBuffer()

ConstPointer< GraphicsBuffer > getRenderBuffer ( const Scene & scene,
const String & channel ) const

◆ getRenderBuffers()

Buffer< VkBuffer > getRenderBuffers ( GraphicsUpdateArguments & args,
const String & extra_property ) const

◆ getShader()

ConstPointer< VulkanShader > getShader ( PrimitiveMode mode,
bool has_grid,
bool has_image ) const

◆ getShaderCreateInfo()

void getShaderCreateInfo ( PrimitiveMode mode,
Buffer< VkPipelineShaderStageCreateInfo, uint04, ObjectAllocator< true > > & buffer,
bool has_grid,
bool has_image ) const

◆ indexBuffer()

ConstPointer< GraphicsBuffer > indexBuffer ( ) const

◆ indexType()

VkIndexType indexType ( ) const

◆ lastDependencyUpdate()

Time lastDependencyUpdate ( ) const
inline

◆ lastUpdateTime()

Time lastUpdateTime ( ) const
inline

◆ scene()

UUID scene ( ) const
inline

◆ setScene()

void setScene ( const Scene & scene)

◆ updateBuffer()

void updateBuffer ( const Scene & scene,
GraphicsUpdateArguments & args )
protected

◆ updateExtraBuffer() [1/2]

void updateExtraBuffer ( GraphicsUpdateArguments & args,
const Scene & scene,
const String & extra_property )

◆ updateExtraBuffer() [2/2]

void updateExtraBuffer ( GraphicsUpdateArguments & args,
const String & extra_property )

◆ updateIndexBuffer()

void updateIndexBuffer ( const Scene & scene,
GraphicsUpdateArguments & args )
protected

◆ updateShader()

void updateShader ( const Scene & scene,
GraphicsUpdateArguments & args,
DynamicPointer< VulkanShaderManager > & shader_manager )
protected

◆ updateUniformBuffer()

void updateUniformBuffer ( GraphicsUpdateArguments & args)

◆ updateVertexBuffer()

void updateVertexBuffer ( const Scene & scene,
GraphicsUpdateArguments & args,
VertexProperty property )
protected

◆ vertexFlags()

BitFlag vertexFlags ( ) const
inline

◆ vertexSize()

uint04 vertexSize ( ) const
inline

Member Data Documentation

◆ m_device

ConstPointer<VulkanDevice> m_device
protected

◆ m_extra_properties

Dictionary<String, DynamicPointer<GraphicsBuffer> > m_extra_properties
mutableprotected

◆ m_index_buffer

DynamicPointer<GraphicsBuffer> m_index_buffer
mutableprotected

◆ m_last_push_update_time

Time m_last_push_update_time
protected

◆ m_last_updated_time

Time m_last_updated_time
protected

◆ m_needs_index_buffer_update

bool m_needs_index_buffer_update
protected

◆ m_needs_pipeline_update

bool m_needs_pipeline_update
protected

◆ m_scene

UUID m_scene
protected

◆ m_shader_manager

DynamicPointer<VulkanShaderManager> m_shader_manager
protected

◆ m_using_vertex_buffer

bool m_using_vertex_buffer[cast< uint04 >(VertexProperty::BitFlag)+1] = {false, false, false, false, false, false}
mutableprotected

◆ m_vertex_buffer

DynamicPointer<GraphicsBuffer> m_vertex_buffer[cast< uint04 >(VertexProperty::BitFlag)+1]
mutableprotected

◆ m_vertex_flags

BitFlag m_vertex_flags
protected

◆ m_vertex_flags_buffer

DynamicPointer<GraphicsBuffer> m_vertex_flags_buffer
mutableprotected

The documentation for this class was generated from the following file: