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 "../geometry/axis_aligned_rectangle.hpp"
9#include <vk_mem_alloc.h>
10#include <vulkan/vulkan.hpp>
11#include <mutex>
12
13namespace tt {
14class gui_device_vulkan;
15}
16
17namespace tt::pipeline_tone_mapper {
18
19struct Image;
20
21struct device_shared final {
22 gui_device_vulkan const &device;
23
24 vk::ShaderModule vertexShaderModule;
25 vk::ShaderModule fragmentShaderModule;
27
28 device_shared(gui_device_vulkan const &device);
30
31 device_shared(device_shared const &) = delete;
32 device_shared &operator=(device_shared const &) = delete;
33 device_shared(device_shared &&) = delete;
34 device_shared &operator=(device_shared &&) = delete;
35
39 void destroy(gui_device_vulkan *vulkanDevice);
40
41 void drawInCommandBuffer(vk::CommandBuffer &commandBuffer);
42
43private:
44 void buildShaders();
45 void teardownShaders(gui_device_vulkan *vulkanDevice);
46};
47
48}
Definition gui_device_vulkan.hpp:23
Definition pipeline_tone_mapper_device_shared.hpp:21
void destroy(gui_device_vulkan *vulkanDevice)