-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathVKTextureCube.h
32 lines (31 loc) · 950 Bytes
/
VKTextureCube.h
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
#pragma once
class VKTextureCube : public VKShaderResource, public BearRHI::BearRHITextureCube
{
public:
VKTextureCube(size_t width, size_t height, size_t mips, size_t vount, BearTexturePixelFormat pixel_format, BearTextureUsage type_usage , void* data = 0);
VkImage Image;
VkDeviceMemory ImageMemory;
VkImageView ImageView;
VkDescriptorImageInfo DescriptorImageInfo;
VkImageCreateInfo ImageCreateInfo;
virtual ~VKTextureCube();
public:
virtual void SetAsSRV(VkWriteDescriptorSet* heap, size_t offset);
virtual void* QueryInterface(int type);
virtual BearTextureType GetType();
virtual void* Lock(size_t mip, size_t depth);
virtual void Unlock();
private:
void* m_Buffer;
size_t m_Mip;
size_t m_Depth;
private:
BearTextureType m_TextureType;
BearTextureUsage m_TextureUsage;
BearTexturePixelFormat m_Format;
private:
void AllocBuffer();
void FreeBuffer();
VkBuffer m_StagingBuffer;
VkDeviceMemory m_StagingBufferMemory;
};