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 <OSAllocator.h>
Inherits AZ::AllocatorBase.
Public Member Functions | |
OSAllocator (const OSAllocator &)=delete | |
OSAllocator (OSAllocator &&)=delete | |
OSAllocator & | operator= (const OSAllocator &)=delete |
OSAllocator & | operator= (OSAllocator &&)=delete |
bool | Create () |
void | Destroy () override |
All allocators must provide their deinitialization routine here. | |
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, align_type newAlignment) override |
size_type | get_allocated_size (pointer ptr, align_type alignment=1) const 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 size_type | max_size () const |
virtual void | GarbageCollect () |
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 Attributes | |
AZStd::atomic< size_type > | m_numAllocatedBytes = 0 |
Additional Inherited Members | |
Public Attributes inherited from AZ::IAllocator | |
size_type | newSize |
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! | |
OS allocator should be used for direct OS allocations (C heap) It's memory usage is NOT tracked. If you don't create this allocator, it will be implicitly created by the SystemAllocator when it is needed. In addition this allocator is used for debug data (like memory tracking, etc.)