59 lines
1.2 KiB
C++
59 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include "RE/B/BSFixedString.h"
|
|
#include "RE/B/BSResource_ID.h"
|
|
|
|
namespace RE
|
|
{
|
|
namespace BSTextureStreamer
|
|
{
|
|
class LocalHeap
|
|
{
|
|
public:
|
|
class FreeBlock;
|
|
|
|
// members
|
|
std::byte* memoryBase; // 00
|
|
FreeBlock* freeList; // 08
|
|
std::uint32_t freeBlocks; // 10
|
|
std::uint32_t allocatedBlocks; // 14
|
|
};
|
|
static_assert(sizeof(LocalHeap) == 0x18);
|
|
|
|
class ChunkDesc
|
|
{
|
|
public:
|
|
// members
|
|
std::uint64_t dataFileOffset; // 00
|
|
std::uint32_t size; // 08
|
|
std::uint32_t uncompressedSize; // 0C
|
|
std::uint16_t mipFirst; // 10
|
|
std::uint16_t mipLast; // 12
|
|
std::uint32_t padding; // 14
|
|
};
|
|
static_assert(sizeof(ChunkDesc) == 0x18);
|
|
|
|
class TextureDescHeader
|
|
{
|
|
public:
|
|
// members
|
|
BSResource::ID id; // 00
|
|
std::uint8_t dataFileIndex; // 0C
|
|
std::uint8_t chunkCount; // 0D
|
|
std::uint16_t chunkOffset; // 0E
|
|
};
|
|
static_assert(sizeof(TextureDescHeader) == 0x10);
|
|
|
|
template <class T>
|
|
class NativeDesc :
|
|
public TextureDescHeader // 00
|
|
{
|
|
public:
|
|
// members
|
|
T info; // 10
|
|
ChunkDesc chunks[4]; // ??
|
|
BSFixedString streamName; // ??
|
|
};
|
|
}
|
|
}
|