Vulkan-Docs/doc/specs/vulkan/man/PFN_vkReallocationFunction.txt

88 lines
2.9 KiB
Plaintext

// Copyright (c) 2014-2016 Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/
PFN_vkReallocationFunction(3)
=============================
Name
----
PFN_vkReallocationFunction - application-defined memory reallocation function
C Specification
---------------
// refBegin PFN_vkReallocationFunction application-defined memory reallocation function
The type of pname:pfnReallocation is:
include::../api/funcpointers/PFN_vkReallocationFunction.txt[]
Parameters
----------
* pname:pUserData is the value specified for
slink:VkAllocationCallbacks::pname:pUserData in the allocator specified by the
application.
* pname:pOriginal must: be either `NULL` or a pointer previously returned
by pname:pfnReallocation or pname:pfnAllocation of the same allocator.
* pname:size is the size in bytes of the requested allocation.
* pname:alignment is the requested alignment of the allocation in bytes
and must: be a power of two.
* pname:allocationScope is a elink:VkSystemAllocationScope value
specifying the scope of the lifetime of the allocation, as described
<<memory-host-allocation-scope,here>>.
Description
-----------
pname:pfnReallocation must: return an allocation with enough space for
pname:size bytes, and the contents of the original allocation from bytes
zero to latexmath:[$\min(\textrm{original size, new size})-1$] must: be
preserved in the returned allocation. If pname: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.
If pname:pOriginal is `NULL`, then pname:pfnReallocation must: behave
equivalently to a call to tlink:PFN_vkAllocationFunction with the same
parameter values (without pname:pOriginal).
If pname:size is zero, then pname:pfnReallocation must: behave
equivalently to a call to tlink:PFN_vkFreeFunction with the same
pname:pUserData parameter value, and pname:pMemory equal to pname:pOriginal.
If pname:pOriginal is non-`NULL`, the implementation must: ensure that
pname:alignment is equal to the pname:alignment used to originally allocate
pname:pOriginal.
If this function fails and pname:pOriginal is non-`NULL` the application
must: not free the old allocation.
pname:pfnReallocation must: follow the same <<vkAllocationFunction_return_rules,
rules for return values as tname:PFN_vkAllocationFunction>>.
// refEnd PFN_vkReallocationFunction VkAllocationCallbacks
See Also
--------
slink:VkAllocationCallbacks
Document Notes
--------------
For more information, see the Vulkan Specification at URL
https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#PFN_vkReallocationFunction
This page is extracted from the Vulkan Specification.
Fixes and changes should be made to the Specification,not directly.
include::footer.txt[]