Polyphase Game Engine
Loading...
Searching...
No Matches
DescriptorSet.h
Go to the documentation of this file.
1
#pragma once
2
3
#if API_VULKAN
4
5
#include "
Graphics/GraphicsConstants.h
"
6
#include "
Graphics/Vulkan/VulkanConstants.h
"
7
8
#include "
Graphics/Vulkan/Image.h
"
9
10
#include <stdint.h>
11
#include <vulkan/vulkan.h>
12
13
class
Buffer;
14
class
UniformBuffer;
15
struct
UniformBlock;
16
17
struct
DescriptorBinding
18
{
19
VkDescriptorType mType = VK_DESCRIPTOR_TYPE_MAX_ENUM;
20
void
* mObject =
nullptr
;
21
uint32_t mOffset = 0;
22
uint32_t mSize = 0;
// Only filled for Uniform Blocks
23
uint32_t mCount = 1;
24
std::vector<Image*> mImageArray;
25
26
int32_t mBinding = -1;
27
};
28
29
class
DescriptorSet
30
{
31
public
:
32
33
static
DescriptorSet Begin(
const
char
* name =
""
);
34
35
// Updates the current frame's descriptor.
36
DescriptorSet& WriteImage(int32_t binding, Image* image);
37
DescriptorSet& WriteImageArray(int32_t binding,
const
std::vector<Image*>& imageArray);
38
DescriptorSet& WriteUniformBuffer(int32_t binding, UniformBuffer* uniformBuffer);
39
DescriptorSet& WriteUniformBuffer(int32_t binding,
const
UniformBlock& block);
40
DescriptorSet& WriteStorageBuffer(int32_t binding, Buffer* storageBuffer);
41
DescriptorSet& WriteStorageImage(int32_t binding, Image* storageImage);
42
43
DescriptorSet&
Build
();
44
45
void
Bind(VkCommandBuffer cb, uint32_t index);
46
47
VkDescriptorSet
Get
()
const
;
48
VkDescriptorSetLayout GetLayout()
const
;
49
50
private
:
51
52
void
UpdateDescriptors();
53
54
std::vector<DescriptorBinding> mBindings;
55
//std::vector<VkDescriptorImageInfo> mImages;
56
//std::vector<VkDescriptorBufferInfo> mBuffers;
57
58
VkDescriptorSet mDescriptorSet = VK_NULL_HANDLE;
59
VkDescriptorSetLayout mLayout = VK_NULL_HANDLE;
60
uint32_t mFrameBuilt = UINT_MAX;
61
const
char
* mName =
nullptr
;
62
};
63
64
#endif
// API_VULKAN
GraphicsConstants.h
HttpVerb::Get
@ Get
Image.h
VulkanConstants.h
ContentPak::Build
bool Build(const char *pakPath, const std::vector< SourceFile > &files, uint32_t &outEntryCount)
Definition
ContentPak.cpp:363
Engine
Source
Graphics
Vulkan
DescriptorSet.h
Generated by
1.9.8