88 lines
2.9 KiB
Plaintext
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[]
|
|
|