HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
PipelineToneMapper_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 <vma/vk_mem_alloc.h>
11#include <vulkan/vulkan.hpp>
12#include <mutex>
13
14namespace tt {
15template<typename T> struct PixelMap;
16}
17
18namespace tt::PipelineToneMapper {
19
20struct Image;
21
22struct DeviceShared final {
23 GUIDevice const &device;
24
25 vk::ShaderModule vertexShaderModule;
26 vk::ShaderModule fragmentShaderModule;
28
29 DeviceShared(GUIDevice const &device);
31
32 DeviceShared(DeviceShared const &) = delete;
33 DeviceShared &operator=(DeviceShared const &) = delete;
34 DeviceShared(DeviceShared &&) = delete;
35 DeviceShared &operator=(DeviceShared &&) = delete;
36
40 void destroy(GUIDevice *vulkanDevice);
41
42 void drawInCommandBuffer(vk::CommandBuffer &commandBuffer);
43
44private:
45 void buildShaders();
46 void teardownShaders(GUIDevice_vulkan *vulkanDevice);
47};
48
49}
Definition GUIDevice_vulkan.hpp:22
Definition PipelineToneMapper_DeviceShared.hpp:22
void destroy(GUIDevice *vulkanDevice)