Lugdunum
0.1.0
include
lug
Graphics
Vulkan
API
PipelineLayout.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <memory>
4
#include <vector>
5
6
#include <
lug/Graphics/Export.hpp
>
7
#include <
lug/Graphics/Vulkan/API/DescriptorSetLayout.hpp
>
8
#include <
lug/Graphics/Vulkan/Vulkan.hpp
>
9
10
namespace
lug
{
11
namespace
Graphics {
12
namespace
Vulkan
{
13
namespace
API {
14
15
namespace
Builder {
16
class
PipelineLayout;
17
}
// Builder
18
19
class
Device;
20
21
class
LUG_GRAPHICS_API
PipelineLayout
{
22
friend
class
Builder::PipelineLayout
;
23
24
public
:
25
PipelineLayout
() =
default
;
26
27
PipelineLayout
(
const
PipelineLayout
&) =
delete
;
28
PipelineLayout
(
PipelineLayout
&& device);
29
30
PipelineLayout
& operator=(
const
PipelineLayout
&) =
delete
;
31
PipelineLayout
& operator=(
PipelineLayout
&& device);
32
33
~
PipelineLayout
();
34
35
explicit
operator
VkPipelineLayout()
const
{
36
return
_pipelineLayout;
37
}
38
45
const
std::vector<DescriptorSetLayout>& getDescriptorSetLayouts()
const
;
46
52
const
Device
* getDevice()
const
;
53
54
void
destroy();
55
56
private
:
57
explicit
PipelineLayout
(
58
VkPipelineLayout pipelineLayout,
59
const
Device
* device,
60
std::vector<DescriptorSetLayout> descriptorSetLayouts
61
);
62
63
private
:
64
VkPipelineLayout _pipelineLayout{VK_NULL_HANDLE};
65
const
Device
* _device{
nullptr
};
66
67
std::vector<DescriptorSetLayout> _descriptorSetLayouts{};
68
};
69
70
#include <
lug/Graphics/Vulkan/API/PipelineLayout.inl
>
71
72
}
// API
73
}
// Vulkan
74
}
// Graphics
75
}
// lug
LUG_GRAPHICS_API
#define LUG_GRAPHICS_API
Definition:
Export.hpp:11
Vulkan
Definition:
Vulkan.hpp:155
lug::Graphics::Vulkan::API::Device
Definition:
Device.hpp:16
lug::Graphics::Vulkan::API::PipelineLayout
Definition:
PipelineLayout.hpp:21
DescriptorSetLayout.hpp
PipelineLayout.inl
Vulkan.hpp
lug::Graphics::Vulkan::API::Builder::PipelineLayout
Definition:
PipelineLayout.hpp:17
lug
Definition:
Application.hpp:11
Export.hpp
Generated by
1.8.13