21 vk::Pipeline intrinsic;
32 virtual void draw_in_command_buffer(vk::CommandBuffer commandBuffer, draw_context
const &context);
34 void build_for_new_device();
35 void teardown_for_device_lost();
36 void build_for_new_swapchain(vk::RenderPass renderPass, uint32_t renderSubpass, vk::Extent2D extent);
37 void teardown_for_swapchain_lost();
40 vk::DescriptorSet descriptorSet;
41 size_t descriptorSetVersion = 0;
43 vk::DescriptorSetLayout descriptorSetLayout;
44 vk::PipelineLayout pipelineLayout;
45 vk::DescriptorPool descriptorPool;
47 [[nodiscard]]
gfx_device *device()
const noexcept;
52 [[nodiscard]]
virtual size_t getDescriptorSetVersion()
const = 0;
57 [[nodiscard]]
virtual vk::VertexInputBindingDescription createVertexInputBindingDescription()
const
66 [[nodiscard]]
virtual vk::PipelineDepthStencilStateCreateInfo getPipelineDepthStencilStateCreateInfo()
const;
69 virtual void build_vertex_buffers(){};
70 virtual void teardown_vertex_buffers(){};
71 virtual void build_descriptor_sets();
72 virtual void teardown_descriptor_sets();
73 virtual void build_pipeline(vk::RenderPass renderPass, uint32_t renderSubpass, vk::Extent2D extent);
74 virtual void teardown_pipeline();