17 vk::Pipeline intrinsic;
29 virtual void drawInCommandBuffer(vk::CommandBuffer commandBuffer);
31 void buildForNewDevice();
32 void teardownForDeviceLost();
33 void buildForNewSurface();
34 void teardownForSurfaceLost();
35 void buildForNewSwapchain(vk::RenderPass renderPass, uint32_t renderSubpass, vk::Extent2D extent);
36 void teardownForSwapchainLost();
37 void teardownForWindowLost();
40 bool buffersInitialized =
false;
41 vk::DescriptorSet descriptorSet;
42 ssize_t descriptorSetVersion = 0;
44 vk::DescriptorSetLayout descriptorSetLayout;
45 vk::PipelineLayout pipelineLayout;
46 vk::DescriptorPool descriptorPool;
51 virtual ssize_t getDescriptorSetVersion()
const = 0;
53 virtual vk::VertexInputBindingDescription createVertexInputBindingDescription()
const {
return{}; }
56 virtual vk::PipelineDepthStencilStateCreateInfo getPipelineDepthStencilStateCreateInfo()
const;
59 virtual void buildvertexBuffers() {};
60 virtual void teardownvertexBuffers() {};
61 virtual void buildDescriptorSets();
62 virtual void teardownDescriptorSets();
63 virtual void buildPipeline(vk::RenderPass renderPass, uint32_t renderSubpass, vk::Extent2D extent);
64 virtual void teardownPipeline();