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::../funcpointers/PFN_vkReallocationFunction.txt[]
|
||
|
|
||
|
|
||
|
Parameters
|
||
|
----------
|
||
|
|
||
|
* pname:pUserData is the value specified for
|
||
|
slink:VkAllocationCallbacks.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[]
|
||
|
|