HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
pipeline_tone_mapper_device_shared.hpp
1// Copyright Take Vos 2020.
2// Distributed under the Boost Software License, Version 1.0.
3// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
4
5#pragma once
6
7#include "../required.hpp"
8#include "../aarect.hpp"
9#include "../numeric_array.hpp"
10#include <vma/vk_mem_alloc.h>
11#include <vulkan/vulkan.hpp>
12#include <mutex>
13
14namespace tt {
15class gui_device_vulkan;
16}
17
18namespace tt::pipeline_tone_mapper {
19
20struct Image;
21
22struct device_shared final {
23 gui_device_vulkan const &device;
24
25 vk::ShaderModule vertexShaderModule;
26 vk::ShaderModule fragmentShaderModule;
28
29 device_shared(gui_device_vulkan const &device);
31
32 device_shared(device_shared const &) = delete;
33 device_shared &operator=(device_shared const &) = delete;
34 device_shared(device_shared &&) = delete;
35 device_shared &operator=(device_shared &&) = delete;
36
40 void destroy(gui_device_vulkan *vulkanDevice);
41
42 void drawInCommandBuffer(vk::CommandBuffer &commandBuffer);
43
44private:
45 void buildShaders();
46 void teardownShaders(gui_device_vulkan *vulkanDevice);
47};
48
49}
Definition gui_device_vulkan.hpp:23
Definition pipeline_tone_mapper_device_shared.hpp:22
void destroy(gui_device_vulkan *vulkanDevice)