Open 3D Engine AzCore API Reference
2305.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
|
#include <SystemAllocator.h>
Inherits AZ::AllocatorBase.
Public Member Functions | |
AZ_TYPE_INFO_WITH_NAME_DECL (SystemAllocator) | |
AZ_RTTI_NO_TYPE_INFO_DECL () | |
bool | Create () |
AllocatorDebugConfig | GetDebugConfig () override |
Returns the debug configuration for this allocator. | |
pointer | allocate (size_type byteSize, size_type alignment) override |
void | deallocate (pointer ptr, size_type byteSize=0, size_type alignment=0) override |
pointer | reallocate (pointer ptr, size_type newSize, size_type newAlignment) override |
size_type | get_allocated_size (pointer ptr, size_type alignment) const override |
void | GarbageCollect () override |
size_type | NumAllocatedBytes () const override |
Public Member Functions inherited from AZ::AllocatorBase | |
const Debug::AllocationRecords * | GetRecords () const override |
Returns a pointer to the allocation records. They might be available or not depending on the build type. Debug::AllocationRecords. | |
void | SetRecords (Debug::AllocationRecords *records) final |
bool | IsReady () const final |
Returns true if this allocator is ready to use. | |
void | PostCreate () override |
All conforming allocators must call PostCreate() after their custom Create() method in order to be properly registered. | |
void | PreDestroy () final |
All conforming allocators must call PreDestroy() before their custom Destroy() method in order to be properly deregistered. | |
void | SetProfilingActive (bool active) final |
bool | IsProfilingActive () const final |
Returns true if profiling calls will be made. | |
Public Member Functions inherited from AZ::IAllocator | |
AZ_RTTI (IAllocator,"{0A3C59AE-169C-45F6-9423-3B8C89245E2E}") | |
IAllocator (const IAllocator &)=delete | |
IAllocator (IAllocator &&)=delete | |
IAllocator & | operator= (const IAllocator &)=delete |
IAllocator & | operator= (IAllocator &&)=delete |
virtual pointer | allocate (size_type byteSize, align_type alignment=1)=0 |
virtual void | deallocate (pointer ptr, size_type byteSize=0, align_type alignment=0)=0 |
virtual pointer | reallocate (pointer ptr, size_type newSize, align_type newAlignment=1)=0 |
virtual size_type | max_size () const |
virtual size_type | get_allocated_size (pointer ptr, align_type alignment=1) const =0 |
const char * | GetName () const |
pointer | Allocate (size_type byteSize, size_type alignment=1, [[maybe_unused]] int flags=0, [[maybe_unused]] const char *name=nullptr, [[maybe_unused]] const char *fileName=nullptr, [[maybe_unused]] int lineNum=0, [[maybe_unused]] unsigned int suppressStackRecord=0) |
void | DeAllocate (pointer ptr, size_type byteSize=0, [[maybe_unused]] size_type alignment=0) |
AZ_DEPRECATED_MESSAGE ("Resize no longer supported, use reallocate instead, note that the pointer address could change, ""Allocators should do best effort to keep the ptr at the same address") size_type Resize([[maybe_unused]] pointer ptr | |
pointer | ReAllocate (pointer ptr, size_type newSize, size_type newAlignment) |
size_type | AllocationSize ([[maybe_unused]] pointer ptr) |
Returns allocation size for given address. 0 if the address doesn't belong to the allocator. | |
size_type | Capacity () const |
size_type | GetMaxAllocationSize () const |
Returns max allocation size if possible. If not returned value is 0. | |
size_type | GetMaxContiguousAllocationSize () const |
Returns the maximum contiguous allocation size of a single allocation. | |
size_type | GetUnAllocatedMemory ([[maybe_unused]] bool isPrint=false) const |
Debug::AllocationRecords * | GetRecords () |
virtual void | SetRecords ([[maybe_unused]] Debug::AllocationRecords *records) |
Sets the allocation records. | |
virtual void | SetProfilingActive ([[maybe_unused]] bool active) |
Protected Member Functions | |
SystemAllocator (const SystemAllocator &) | |
SystemAllocator & | operator= (const SystemAllocator &) |
Protected Member Functions inherited from AZ::AllocatorBase | |
AZ_FORCE_INLINE size_t | MemorySizeAdjustedUp (size_t byteSize) const |
Returns the size of a memory allocation after adjusting for tracking. | |
AZ_FORCE_INLINE size_t | MemorySizeAdjustedDown (size_t byteSize) const |
Returns the size of a memory allocation, removing any tracking overhead. | |
void | DisableRegistration () |
void | ProfileAllocation (void *ptr, size_t byteSize, size_t alignment, int suppressStackRecord) |
Records an allocation for profiling. | |
void | ProfileDeallocation (void *ptr, size_t byteSize, size_t alignment, Debug::AllocationInfo *info) |
Records a deallocation for profiling. | |
void | ProfileReallocation (void *ptr, void *newPtr, size_t newSize, size_t newAlignment) |
Records a reallocation for profiling. | |
void | ProfileResize (void *ptr, size_t newSize) |
Records a resize for profiling. | |
bool | OnOutOfMemory (size_t byteSize, size_t alignment) |
User allocator should call this function when they run out of memory! | |
Protected Member Functions inherited from AZ::IAllocator | |
virtual void | Destroy () |
All allocators must provide their deinitialization routine here. | |
Protected Attributes | |
AZStd::unique_ptr< IAllocator > | m_subAllocator |
Additional Inherited Members | |
Public Attributes inherited from AZ::IAllocator | |
size_type | newSize |
System allocator The system allocator is the base allocator for AZ memory lib. It is a singleton (like all other allocators), but must be initialized first and destroyed last. All other allocators will use them for internal allocations. This doesn't mean all other allocators will be sub allocators, because we might have different memory system on consoles. But the allocator utility system will use the system allocator.