15#include <vsg/core/ConstVisitor.h>
16#include <vsg/core/Data.h>
17#include <vsg/core/Inherit.h>
18#include <vsg/state/BufferInfo.h>
19#include <vsg/state/Sampler.h>
27 class VSG_DECLSPEC ArrayState :
public Inherit<ConstVisitor, ArrayState>
30 ArrayState() =
default;
31 ArrayState(
const ArrayState& rhs,
const CopyOp& copyop = {});
36 return ArrayState::create(*
this);
42 return ArrayState::create(*arrayState);
51 VkVertexInputRate inputRate = VK_VERTEX_INPUT_RATE_VERTEX;
54 std::vector<dmat4> localToWorldStack;
55 std::vector<dmat4> worldToLocalStack;
57 VkPrimitiveTopology topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
58 uint32_t vertex_attribute_location = 0;
68 using ConstVisitor::apply;
74 void apply(
const Geometry& geometry)
override;
78 void apply(
const BufferInfo& bufferInfo)
override;
80 void apply(
const vec3Array& array)
override;
81 void apply(
const Data& array)
override;
83 virtual void applyArrays(uint32_t firstBinding,
const BufferInfoList& in_arrays);
84 virtual void applyArrays(uint32_t firstBinding,
const DataList& in_arrays);
88 virtual ~ArrayState() {}
96 class VSG_DECLSPEC NullArrayState :
public Inherit<ArrayState, NullArrayState>
100 explicit NullArrayState(
const ArrayState& as);
105 using ArrayState::apply;
107 void apply(
const vec3Array&)
override;
108 void apply(
const Data&)
override;
113 class VSG_DECLSPEC PositionArrayState :
public Inherit<ArrayState, PositionArrayState>
116 PositionArrayState();
117 PositionArrayState(
const PositionArrayState& rhs);
118 explicit PositionArrayState(
const ArrayState& rhs);
123 uint32_t position_attribute_location = 4;
126 using ArrayState::apply;
134 class VSG_DECLSPEC DisplacementMapArrayState :
public Inherit<ArrayState, DisplacementMapArrayState>
137 DisplacementMapArrayState();
138 DisplacementMapArrayState(
const DisplacementMapArrayState& rhs);
139 explicit DisplacementMapArrayState(
const ArrayState& rhs);
145 uint32_t normal_attribute_location = 1;
146 uint32_t texcoord_attribute_location = 2;
148 uint32_t dm_binding = 6;
156 using ArrayState::apply;
168 class VSG_DECLSPEC PositionAndDisplacementMapArrayState :
public Inherit<DisplacementMapArrayState, PositionAndDisplacementMapArrayState>
171 PositionAndDisplacementMapArrayState();
172 PositionAndDisplacementMapArrayState(
const PositionAndDisplacementMapArrayState& rhs);
173 explicit PositionAndDisplacementMapArrayState(
const ArrayState& rhs);
175 uint32_t position_attribute_location = 4;
187 class VSG_DECLSPEC BillboardArrayState :
public Inherit<ArrayState, BillboardArrayState>
190 BillboardArrayState();
191 BillboardArrayState(
const BillboardArrayState& rhs);
192 explicit BillboardArrayState(
const ArrayState& rhs);
197 uint32_t position_attribute_location = 4;
200 using ArrayState::apply;
Definition ArrayState.h:28
virtual ref_ptr< ArrayState > cloneArrayState()
clone self
Definition ArrayState.h:34
BillboardArrayState is an ArrayState subclass for mapping vertex array data for billboard instanced g...
Definition ArrayState.h:188
ref_ptr< ArrayState > cloneArrayState() override
clone self
Definition BindDescriptorSet.h:92
BindDescriptorSets state command encapsulates vkCmdBindDescriptorSets call and associated settings fo...
Definition BindDescriptorSet.h:25
BindGraphicsPipeline state command encapsulates the vkCmdBindPipeline call for a GraphicsPipeline.
Definition GraphicsPipeline.h:109
BindVertexBuffers command encapsulates vkCmdBindVertexBuffers call and associated settings.
Definition BindVertexBuffers.h:25
BufferInfo encapsulates the settings that map to VkDescriptorBufferInfo.
Definition BufferInfo.h:27
Definition DescriptorImage.h:24
DescriptorSet encapsulates VkDescriptorSet and VkDescriptorSetAllocateInfo settings used to describe ...
Definition DescriptorSet.h:26
DisplacementMapArrayState is an ArrayState subclass for mapping vertex array data for displacement ma...
Definition ArrayState.h:135
ref_ptr< ArrayState > cloneArrayState() override
clone self
Definition ArrayState.h:97
ref_ptr< ArrayState > cloneArrayState() override
clone self
PositionAndDisplacementMapArrayState is an ArrayState subclass for mapping vertex array data for inst...
Definition ArrayState.h:169
ref_ptr< ArrayState > cloneArrayState() override
clone self
PositionArrayState is an ArrayState subclass for mapping vertex array data for instanced geometries.
Definition ArrayState.h:114
ref_ptr< ArrayState > cloneArrayState() override
clone self
Definition VertexDraw.h:25
Definition VertexIndexDraw.h:25
Definition ArrayState.h:46