15 vk::Pipeline intrinsic;
25 virtual void drawInCommandBuffer(vk::CommandBuffer commandBuffer);
27 void buildForNewDevice(
GUIDevice *device);
28 void teardownForDeviceLost();
29 void buildForNewSurface();
30 void teardownForSurfaceLost();
31 void buildForNewSwapchain(vk::RenderPass renderPass, uint32_t renderSubpass, vk::Extent2D extent);
32 void teardownForSwapchainLost();
33 void teardownForWindowLost();
36 bool buffersInitialized =
false;
37 vk::DescriptorSet descriptorSet;
38 ssize_t descriptorSetVersion = 0;
40 vk::DescriptorSetLayout descriptorSetLayout;
41 vk::PipelineLayout pipelineLayout;
42 vk::DescriptorPool descriptorPool;
47 virtual ssize_t getDescriptorSetVersion()
const = 0;
49 virtual vk::VertexInputBindingDescription createVertexInputBindingDescription()
const {
return{}; }
52 virtual vk::PipelineDepthStencilStateCreateInfo getPipelineDepthStencilStateCreateInfo()
const;
55 virtual void buildVertexBuffers() {};
56 virtual void teardownVertexBuffers() {};
57 virtual void buildDescriptorSets();
58 virtual void teardownDescriptorSets();
59 virtual void buildPipeline(vk::RenderPass renderPass, uint32_t renderSubpass, vk::Extent2D extent);
60 virtual void teardownPipeline();