The class definitions for the Vulkan state nodes of the scene graph can be found in the VulkanSceneGraph/include/vsg/state directory. Examples that illustrate use of various state classes can be found in the vsgExamples/examples/state directory,

Scene graph state nodes

Class Header Functionality
vsg::StateCommand StateCommand.h Base class for state commands - binding pipelines & descriptors
vsg::StateGroup StateGroup.h State group node that provides a list of StateCommands to decorate a subgraph
vsg::Light Light.h Light node provides all the settings for positioning a light source, and controlling its type and color

State commands

Class Header Functionality
vsg::BindComputePipeline ComputePipeline.h Bind the compute pipeline
vsg::BindGraphicsPipeline GraphicsPipeline.h Bind the graphics pipeline
vsg::BindDescriptorSet BindDescriptorSet.h Bind descriptor sets to current pipeline
vsg::PushConstants PushConstants.h Apply push constants using vkCmdPushConstants
vsg::StateSwitch StateSwitch.h applies child state commands which pass mask test

Shaders, Descriptor and Pipeline layout

Class Header Functionality
vsg::ShaderModule etc. ShaderModule.h Settings for vkShaderModule
vsg::ShaderStage ShaderStage.h Settings for vkShaderStage
vsg::DescriptorSetLayout DescriptorSetLayout.h Settings for VkDescriptorSetLayout
vsg::PipelineLayout PipelineLayout.h Settings for VkPipelineLayout

Graphics pipeline state

Class Header Functionality
vsg::ColorBlendState ColorBlendState.h VkPipelineColorBlendStateCreateInfo
vsg::DepthStencilState DepthStencilState.h VkPipelineDepthStencilStateCreateInfo
vsg::InputAssemblyState InputAssemblyState.h VkPipelineInputAssemblyStateCreateInfo
vsg::DynamicState DynamicState.h VkPipelineDynamicStateCreateInfo
vsg::MultisampleState MultisampleState.h VkPipelineMultisampleStateCreateInfo
vsg::RasterizationState RasterizationState.h VkPipelineRasterizationStateCreateInfo
vsg::TessellationState TessellationState.h VkPipelineTessellationStateCreateInfo
vsg::VertexInputState VertexInputState.h VkPipelineVertexInputStateCreateInfo
vsg::ViewportState ViewportState.h VkPipelineViewportStateCreateInfo

Descriptor state

Class Header Functionality
vsg::BindDescriptorSet etc. BindDescriptorSet.h Encapsulates vkCmdBindDescriptors
vsg::DescriptorSet DescriptorSet.h Encapsulates VkDescriptorSet
vsg::Descriptor Descriptor.h Base class for Descriptors
vsg::DescriptorBuffer DescriptorBuffer.h Encapsulates VkWriteDescriptorSet.pBufferInfo
vsg::DescriptorImage DescriptorImage.h Encapsulates VkWriteDescriptorSet.pImageInfo
vsg::DescriptorTexelBufferView DescriptorTexelBufferView.h Encapsulates VkWriteDescriptorSet.pTexelBufferViews
vsg::Buffer Buffer.h Encapsulates VkBuffer
vsg::material material.h Material vsg::Data types
vsg::BufferInfo BufferInfo.h Encapsulates VkDescriptorBufferInfo
vsg::BufferView BufferView.h Encapsulates VkBufferView
vsg::Sampler Sampler.h Encapsulates VkSampler
vsg::Image Image.h Encapsulation of VkImage
vsg::ImageView ImageView.h Encapsulation of VkImageView
vsg::ImageInfo ImageInfo.h Encapsulates VkDescriptorImageInfo

General support classes

Class Header Functionality
vsg::ResourceHints etc. ResourceHints.h Hints that can be assigned to a scene graph as user data to specify the GPU resources required.
vsg::ArrayState etc. ArrayState.h vsg::ArrayState base class for mapping vertex shader behavior on CPU
vsg::ViewDependentState etc. ViewDependentState.h View dependent state classes
vsg::QueryPool QueryPool.h Encapsulates VkQueryPool, used with vsg::BeginQuery etc.
Prev: Commands Next: Mesh Shaders