18 vk::Pipeline intrinsic;
30 virtual void drawInCommandBuffer(vk::CommandBuffer commandBuffer,
draw_context const &context);
32 void buildForNewDevice();
33 void teardownForDeviceLost();
34 void buildForNewSurface();
35 void teardownForSurfaceLost();
36 void buildForNewSwapchain(vk::RenderPass renderPass, uint32_t renderSubpass, vk::Extent2D extent);
37 void teardownForSwapchainLost();
38 void teardownForWindowLost();
41 bool buffersInitialized =
false;
42 vk::DescriptorSet descriptorSet;
43 ssize_t descriptorSetVersion = 0;
45 vk::DescriptorSetLayout descriptorSetLayout;
46 vk::PipelineLayout pipelineLayout;
47 vk::DescriptorPool descriptorPool;
52 virtual ssize_t getDescriptorSetVersion()
const = 0;
57 virtual vk::VertexInputBindingDescription createVertexInputBindingDescription()
const
66 virtual vk::PipelineDepthStencilStateCreateInfo getPipelineDepthStencilStateCreateInfo()
const;
69 virtual void buildvertexBuffers(){};
70 virtual void teardownvertexBuffers(){};
71 virtual void buildDescriptorSets();
72 virtual void teardownDescriptorSets();
73 virtual void buildPipeline(vk::RenderPass renderPass, uint32_t renderSubpass, vk::Extent2D extent);
74 virtual void teardownPipeline();