Files
Commonwealth-Online-Public/plugin/lib/commonlibf4/include/Scaleform/A/Array.h
T
2026-05-30 18:33:24 +12:00

118 lines
3.0 KiB
C++

#pragma once
#include "Scaleform/A/Allocator.h"
#include "Scaleform/S/StatBasicValues.h"
namespace Scaleform
{
class MemoryHeap;
class ArrayDefaultPolicy
{
public:
~ArrayDefaultPolicy() noexcept {}
// members
std::size_t capacity; // 0
};
static_assert(sizeof(ArrayDefaultPolicy) == 0x8);
template <std::int32_t MinCapacity = 0, std::int32_t Granularity = 4, bool NeverShrink = false>
class ArrayConstPolicy
{
public:
~ArrayConstPolicy() noexcept {}
// members
std::size_t capacity; // 0
};
static_assert(sizeof(ArrayConstPolicy<>) == 0x8);
template <class T, class Allocator, class SizePolicy>
class ArrayDataBase
{
public:
// members
T* data; // 00
std::size_t size; // 08
SizePolicy policy; // 10
};
static_assert(sizeof(ArrayDataBase<void*, void*, ArrayDefaultPolicy>) == 0x18);
template <class T, class Allocator, class SizePolicy>
class ArrayData :
public ArrayDataBase<T, Allocator, SizePolicy>
{
public:
};
static_assert(sizeof(ArrayData<void*, void*, ArrayDefaultPolicy>) == 0x18);
template <class T, class Allocator, class SizePolicy>
class ArrayDataDH :
ArrayDataBase<T, Allocator, SizePolicy>
{
public:
// members
const MemoryHeap* pHeap;
};
static_assert(sizeof(ArrayDataDH<void*, void*, ArrayDefaultPolicy>) == 0x20);
template <class T, class Allocator, class SizePolicy>
class ArrayDataCC :
public ArrayDataBase<T, Allocator, SizePolicy>
{
public:
T defaultValue;
};
static_assert(sizeof(ArrayDataCC<void*, void*, ArrayDefaultPolicy>) == 0x20);
template <class T>
class ArrayBase
{
public:
// members
T data; // 00
};
static_assert(sizeof(ArrayBase<void*>) == 0x08);
template <class T, std::int32_t SID = kStat_Default_Mem, class SizePolicy = ArrayDefaultPolicy>
class Array :
public ArrayBase<ArrayData<T, AllocatorGH<T, SID>, SizePolicy>>
{
public:
};
static_assert(sizeof(Array<void*, kStat_Default_Mem, ArrayDefaultPolicy>) == 0x18);
template <class T, std::int32_t SID = kStat_Default_Mem, class SizePolicy = ArrayDefaultPolicy>
class ArrayLH :
public ArrayBase<ArrayData<T, AllocatorLH<T, SID>, SizePolicy>>
{
public:
};
static_assert(sizeof(ArrayLH<void*, kStat_Default_Mem, ArrayDefaultPolicy>) == 0x18);
template <class T, std::int32_t SID = kStat_Default_Mem, class SizePolicy = ArrayDefaultPolicy>
class ArrayDH :
public ArrayBase<ArrayDataDH<T, AllocatorDH<T, SID>, SizePolicy>>
{
public:
};
static_assert(sizeof(ArrayDH<void*, kStat_Default_Mem, ArrayDefaultPolicy>) == 0x20);
template <class T, std::int32_t SID = kStat_Default_Mem, class SizePolicy = ArrayDefaultPolicy>
class ArrayCC :
public ArrayBase<ArrayDataCC<T, AllocatorLH<T, SID>, SizePolicy>>
{
public:
};
static_assert(sizeof(ArrayCC<void*, kStat_Default_Mem, ArrayDefaultPolicy>) == 0x20);
template <class T, std::int32_t SID = kStat_Default_Mem, class SizePolicy = ArrayDefaultPolicy>
class ArrayPOD :
public ArrayBase<ArrayData<T, AllocatorGH_POD<T, SID>, SizePolicy>>
{
public:
};
static_assert(sizeof(ArrayPOD<void*, kStat_Default_Mem, ArrayDefaultPolicy>) == 0x18);
}