15 #include <vsg/nodes/Light.h>
16 #include <vsg/state/BindDescriptorSet.h>
17 #include <vsg/state/DescriptorBuffer.h>
30 VkDescriptorSetLayout
vk(uint32_t deviceID)
const override {
return _viewDescriptorSetLayout ? _viewDescriptorSetLayout->vk(deviceID) : 0; }
34 void read(
Input& input)
override;
35 void write(
Output& output)
const override;
37 void compile(
Context& context)
override;
54 pipelineBindPoint(in_bindPoint),
55 layout(in_pipelineLayout),
61 VkPipelineBindPoint pipelineBindPoint;
67 template<
class N,
class V>
68 static void t_traverse(N& bds, V& visitor)
70 if (bds.layout) bds.layout->accept(visitor);
73 void traverse(
Visitor& visitor)
override { t_traverse(*
this, visitor); }
74 void traverse(ConstVisitor& visitor)
const override { t_traverse(*
this, visitor); }
76 void read(Input& input)
override;
77 void write(Output& output)
const override;
80 void compile(Context& context)
override;
82 void record(CommandBuffer& commandBuffer)
const override;
85 virtual ~BindViewDescriptorSets() {}
101 template<
class N,
class V>
102 static void t_traverse(N& node, V& visitor)
104 node.descriptorSet->accept(visitor);
107 void traverse(
Visitor& visitor)
override { t_traverse(*
this, visitor); }
108 void traverse(
ConstVisitor& visitor)
const override { t_traverse(*
this, visitor); }
111 std::vector<std::pair<dmat4, const AmbientLight*>> ambientLights;
112 std::vector<std::pair<dmat4, const DirectionalLight*>> directionalLights;
113 std::vector<std::pair<dmat4, const PointLight*>> pointLights;
114 std::vector<std::pair<dmat4, const SpotLight*>> spotLights;
116 virtual void compile(
Context& context);
117 virtual void clear();
119 virtual void bindDescriptorSets(
CommandBuffer& commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet);
Definition: ViewDependentState.h:48
int compare(const Object &rhs_object) const override
compare two objects, return -1 if this object is less than rhs, return 0 if it's equal,...
CommandBuffer encapsulates VkCommandBuffer.
Definition: CommandBuffer.h:27
Definition: ConstVisitor.h:140
PipelineLayout encapsulates VkPipelineLayout and the VkPipelineLayoutCreateInfo settings used to set ...
Definition: PipelineLayout.h:27
Definition: ViewDependentState.h:97
Definition: ViewDependentState.h:26
VkDescriptorSetLayout vk(uint32_t deviceID) const override
Vulkan VkDescriptorSetLayout handle.
Definition: ViewDependentState.h:30
int compare(const Object &rhs_object) const override
compare two objects, return -1 if this object is less than rhs, return 0 if it's equal,...
Definition: Visitor.h:140