HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
PipelineFlat_DeviceShared.hpp
1// Copyright 2019 Pokitec
2// All rights reserved.
3
4#pragma once
5
6#include "TTauri/GUI/GUIDevice_forward.hpp"
7#include "TTauri/Foundation/required.hpp"
8#include "TTauri/Foundation/aarect.hpp"
9#include "TTauri/Foundation/vec.hpp"
10#include "TTauri/Foundation/R16G16B16A16SFloat.hpp"
11#include <vma/vk_mem_alloc.h>
12#include <vulkan/vulkan.hpp>
13#include <mutex>
14
15namespace tt {
16template<typename T> struct PixelMap;
17}
18
19namespace tt::PipelineFlat {
20
21struct Image;
22
23struct DeviceShared final {
24 GUIDevice const &device;
25
26 vk::ShaderModule vertexShaderModule;
27 vk::ShaderModule fragmentShaderModule;
29
30 DeviceShared(GUIDevice const &device);
32
33 DeviceShared(DeviceShared const &) = delete;
34 DeviceShared &operator=(DeviceShared const &) = delete;
35 DeviceShared(DeviceShared &&) = delete;
36 DeviceShared &operator=(DeviceShared &&) = delete;
37
41 void destroy(GUIDevice *vulkanDevice);
42
43 void drawInCommandBuffer(vk::CommandBuffer &commandBuffer);
44
45private:
46 void buildShaders();
47 void teardownShaders(GUIDevice_vulkan *vulkanDevice);
48};
49
50}
Definition GUIDevice_vulkan.hpp:22
Definition PipelineFlat_DeviceShared.hpp:23
void destroy(GUIDevice *vulkanDevice)