The type of
typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)( void* pUserData, void* pOriginal, size_t size, size_t alignment, VkSystemAllocationScope allocationScope);
pUserDatais the value specified for VkAllocationCallbacks::
pUserDatain the allocator specified by the application.
pOriginalmust be either
NULLor a pointer previously returned by
pfnAllocationof the same allocator.
sizeis the size in bytes of the requested allocation.
alignmentis the requested alignment of the allocation in bytes and must be a power of two.
pfnReallocation must return an allocation with enough space for
size bytes, and the contents of the original allocation from bytes
zero to min(original size, new size) - 1 must be preserved in the
size is larger than the old size, the contents of the additional
space are undefined.
If satisfying these requirements involves creating a new allocation, then
the old allocation should be freed.
pfnReallocation must behave
equivalently to a call to PFN_vkAllocationFunction with the same
parameter values (without
size is zero, then
pfnReallocation must behave equivalently
to a call to PFN_vkFreeFunction with the same
parameter value, and
pMemory equal to
pOriginal is non-
NULL, the implementation must ensure that
alignment is equal to the
alignment used to originally allocate
If this function fails and
pOriginal is non-
NULL the application
must not free the old allocation.
pfnReallocation must follow the same
rules for return values as
For more information, see the Vulkan Specification at URL
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.
Copyright (c) 2014-2017 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.