HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
PipelineSDF.hpp
1// Copyright 2019 Pokitec
2// All rights reserved.
3
4#pragma once
5
6#include "TTauri/GUI/Pipeline_vulkan.hpp"
7#include "TTauri/GUI/PipelineSDF_PushConstants.hpp"
8#include "TTauri/GUI/PipelineSDF_Vertex.hpp"
9#include "TTauri/GUI/globals.hpp"
10#include "TTauri/GUI/GUIDevice_forward.hpp"
11#include "TTauri/Foundation/vspan.hpp"
12#include <vma/vk_mem_alloc.h>
13#include <nonstd/span>
14
15namespace tt::PipelineSDF {
16
21public:
22 vspan<Vertex> vertexBufferData;
23
24 PipelineSDF(Window const &window);
25 ~PipelineSDF() {};
26
27 PipelineSDF(const PipelineSDF &) = delete;
28 PipelineSDF &operator=(const PipelineSDF &) = delete;
29 PipelineSDF(PipelineSDF &&) = delete;
30 PipelineSDF &operator=(PipelineSDF &&) = delete;
31
32 void drawInCommandBuffer(vk::CommandBuffer commandBuffer) override;
33
34protected:
35 PushConstants pushConstants;
36 int numberOfAtlasImagesInDescriptor = 0;
37
38 vk::Buffer vertexBuffer;
39 VmaAllocation vertexBufferAllocation;
40
41 std::vector<vk::PipelineShaderStageCreateInfo> createShaderStages() const override;
42 std::vector<vk::DescriptorSetLayoutBinding> createDescriptorSetLayoutBindings() const override;
43 std::vector<vk::WriteDescriptorSet> createWriteDescriptorSet() const override;
44 ssize_t getDescriptorSetVersion() const override;
45 std::vector<vk::PushConstantRange> createPushConstantRanges() const override;
46 vk::VertexInputBindingDescription createVertexInputBindingDescription() const override;
47 std::vector<vk::VertexInputAttributeDescription> createVertexInputAttributeDescriptions() const override;
48 std::vector<vk::PipelineColorBlendAttachmentState> getPipelineColorBlendAttachmentStates() const override;
49
50private:
51 void buildVertexBuffers() override;
52 void teardownVertexBuffers() override;
53};
54
55}
Definition vspan.hpp:72
Definition Pipeline_vulkan.hpp:13
Definition PipelineSDF.hpp:20
Definition PipelineSDF_PushConstants.hpp:11
Definition Window_vulkan_win32.hpp:15