State
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 |