-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathVKDescriptorHeap.h
More file actions
39 lines (33 loc) · 1.53 KB
/
VKDescriptorHeap.h
File metadata and controls
39 lines (33 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#pragma once
class VKDescriptorHeap :public BearRHI::BearRHIDescriptorHeap
{
//BEAR_CLASS_WITHOUT_COPY(VKDescriptorHeap);
public:
VKDescriptorHeap(const BearDescriptorHeapDescription& description);
virtual ~VKDescriptorHeap();
virtual void SetUniformBuffer(size_t slot, BearFactoryPointer<BearRHI::BearRHIUniformBuffer> uniform_buffer, size_t offset = 0);
virtual void SetShaderResource(size_t slot, BearFactoryPointer<BearRHI::BearRHIShaderResource> shader_resource, size_t offset = 0);
virtual void SetSampler(size_t slot, BearFactoryPointer<BearRHI::BearRHISampler> sampler);
virtual void SetUnorderedAccess(bsize slot, BearFactoryPointer<BearRHI::BearRHIUnorderedAccess> unordered_access, bsize offset = 0);
VkDescriptorSet DescriptorSet;
BearFactoryPointer<BearRHI::BearRHIRootSignature> RootSignature;
VKRootSignature* RootSignaturePointer;
VkDescriptorPool DescriptorPool;
BearFactoryPointer<BearRHI::BearRHIUniformBuffer> UniformBuffers[16];
size_t UniformBufferOffsets[16];
size_t ShaderResourcesOffsets[16];
size_t UnorderedAccessOffsets[16];
size_t CountBuffers;
BearFactoryPointer<BearRHI::BearRHIShaderResource> ShaderResources[16];
size_t CountSRVs;
BearFactoryPointer<BearRHI::BearRHISampler> Samplers[16];
size_t CountSamplers;
BearFactoryPointer<BearRHI::BearRHIUnorderedAccess> UnorderedAccess[16];
size_t CountUAVs;
size_t SlotBuffers[16];
size_t SlotSRVs[16];
size_t SlotSamplers[16];
size_t SlotUAVs[16];
void SetGraphics(VkCommandBuffer command_line);
void SetRayTracing(VkCommandBuffer command_line);
};