Class VkReallocationFunction

java.lang.Object
org.lwjgl.system.Callback
org.lwjgl.vulkan.VkReallocationFunction
All Implemented Interfaces:
AutoCloseable, org.lwjgl.system.CallbackI, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer, VkReallocationFunctionI

public abstract class VkReallocationFunction extends org.lwjgl.system.Callback implements VkReallocationFunctionI
Application-defined memory reallocation function.
C Specification

The type of pfnReallocation is:


 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
     void*                                       pUserData,
     void*                                       pOriginal,
     size_t                                      size,
     size_t                                      alignment,
     VkSystemAllocationScope                     allocationScope);
Description

If the reallocation was successful, 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 returned allocation. If 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 pOriginal is NULL, then pfnReallocation must behave equivalently to a call to VkAllocationFunction with the same parameter values (without pOriginal).

If size is zero, then pfnReallocation must behave equivalently to a call to VkFreeFunction with the same pUserData parameter value, and pMemory equal to pOriginal.

If pOriginal is non-NULL, the implementation must ensure that alignment is equal to the alignment used to originally allocate pOriginal.

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 PFN_vkAllocationFunction.

See Also

VkAllocationCallbacks

  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.lwjgl.system.Pointer

    org.lwjgl.system.Pointer.Default
  • Field Summary

    Fields inherited from interface org.lwjgl.system.Pointer

    BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE

    Fields inherited from interface org.lwjgl.vulkan.VkReallocationFunctionI

    CIF
  • Method Summary

    Modifier and Type
    Method
    Description
    create(long functionPointer)
    Creates a VkReallocationFunction instance from the specified function pointer.
    Creates a VkReallocationFunction instance that delegates to the specified VkReallocationFunctionI instance.
    static @Nullable VkReallocationFunction
    createSafe(long functionPointer)
    Like create, but returns null if functionPointer is NULL.

    Methods inherited from class org.lwjgl.system.Callback

    address, equals, free, free, get, getSafe, hashCode, toString

    Methods inherited from class java.lang.Object

    getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface org.lwjgl.system.CallbackI

    address

    Methods inherited from interface org.lwjgl.system.NativeResource

    close

    Methods inherited from interface org.lwjgl.vulkan.VkReallocationFunctionI

    callback, getCallInterface, invoke
  • Method Details

    • create

      public static VkReallocationFunction create(long functionPointer)
      Creates a VkReallocationFunction instance from the specified function pointer.
      Returns:
      the new VkReallocationFunction
    • createSafe

      public static @Nullable VkReallocationFunction createSafe(long functionPointer)
      Like create, but returns null if functionPointer is NULL.
    • create

      public static VkReallocationFunction create(VkReallocationFunctionI instance)
      Creates a VkReallocationFunction instance that delegates to the specified VkReallocationFunctionI instance.