19 vk::Pipeline intrinsic;
30 virtual void draw_in_command_buffer(vk::CommandBuffer commandBuffer, draw_context
const &context);
32 void build_for_new_device();
33 void teardown_for_device_lost();
34 void build_for_new_swapchain(vk::RenderPass renderPass, uint32_t renderSubpass, vk::Extent2D extent);
35 void teardown_for_swapchain_lost();
38 vk::DescriptorSet descriptorSet;
39 size_t descriptorSetVersion = 0;
41 vk::DescriptorSetLayout descriptorSetLayout;
42 vk::PipelineLayout pipelineLayout;
43 vk::DescriptorPool descriptorPool;
45 [[nodiscard]]
gfx_device *device()
const noexcept;
50 [[nodiscard]]
virtual size_t getDescriptorSetVersion()
const = 0;
55 [[nodiscard]]
virtual vk::VertexInputBindingDescription createVertexInputBindingDescription()
const
64 [[nodiscard]]
virtual vk::PipelineDepthStencilStateCreateInfo getPipelineDepthStencilStateCreateInfo()
const;
67 virtual void build_vertex_buffers(){};
68 virtual void teardown_vertex_buffers(){};
69 virtual void build_descriptor_sets();
70 virtual void teardown_descriptor_sets();
71 virtual void build_pipeline(vk::RenderPass renderPass, uint32_t renderSubpass, vk::Extent2D extent);
72 virtual void teardown_pipeline();