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 <vma/vk_mem_alloc.h>
10#include <vulkan/vulkan.hpp>
11#include <mutex>
12
13namespace hi::inline v1 {
14class gfx_device_vulkan;
15
16namespace pipeline_tone_mapper {
17struct Image;
18
19struct device_shared final {
20 gfx_device_vulkan const &device;
21
22 vk::ShaderModule vertexShaderModule;
23 vk::ShaderModule fragmentShaderModule;
25
26 device_shared(gfx_device_vulkan const &device);
28
29 device_shared(device_shared const &) = delete;
30 device_shared &operator=(device_shared const &) = delete;
31 device_shared(device_shared &&) = delete;
32 device_shared &operator=(device_shared &&) = delete;
33
38 void destroy(gfx_device_vulkan *vulkanDevice);
39
40 void drawInCommandBuffer(vk::CommandBuffer &commandBuffer);
41
42private:
43 void buildShaders();
44 void teardownShaders(gfx_device_vulkan *vulkanDevice);
45};
46
47} // namespace pipeline_tone_mapper
48} // namespace hi::inline v1
This file includes required definitions.
Definition gfx_device_vulkan.hpp:21
Definition pipeline_tone_mapper_device_shared.hpp:19
void destroy(gfx_device_vulkan *vulkanDevice)