1#pragma once
2
3#include <nn/gfx/gfx_DescriptorSlot.h>
4#include <nn/gfx/gfx_ResUserData.h>
5#include <nn/gfx/gfx_TextureInfoData.h>
6#include <nn/util/util_BinaryFormat.h>
7#include <nn/util/util_ResDic.h>
8
9namespace nn::gfx {
10
11class ResTexture;
12struct ResTextureContainerData;
13
14struct ResTextureData {
15 nn::util::BinaryBlockHeader blockHeader;
16 TextureInfoData textureInfoData;
17 uint32_t textureDataSize;
18 uint32_t alignment;
19 Bit8 channelMapping[4];
20 Bit8 imageDimension;
21 char reserved[3];
22 nn::util::BinPtrToString pName;
23 nn::util::BinTPtr<ResTextureContainerData> pResTextureContainerData;
24 nn::util::BinTPtr<nn::util::BinTPtr<void>> pMipPtrArray;
25 nn::util::BinTPtr<ResUserData> pUserDataArray;
26 nn::util::BinTPtr<void> pTexture;
27 nn::util::BinTPtr<void> pTextureView;
28 DescriptorSlotData userDescriptorSlot;
29 nn::util::BinTPtr<nn::util::ResDic> pUserDataDic;
30};
31
32struct ResTextureContainerData {
33 char targetPlatform[4];
34 uint32_t textureCount;
35 nn::util::BinTPtr<nn::util::BinTPtr<ResTexture>> pTexturePtrArray;
36 nn::util::BinTPtr<void> pTextureData;
37 nn::util::BinTPtr<nn::util::ResDic> pTextureDic;
38 nn::util::BinTPtr<void> pTextureMemoryPool;
39 nn::util::BinTPtr<void> pCurrentMemoryPool;
40 uint32_t memoryPoolOffsetBase;
41 char reserved[4];
42};
43
44struct ResTextureFileData {
45 nn::util::BinaryFileHeader fileHeader;
46 ResTextureContainerData textureContainerData;
47};
48
49} // namespace nn::gfx