Interface VkReallocationFunctionI

  • All Superinterfaces:
    org.lwjgl.system.CallbackI, org.lwjgl.system.CallbackI.P, org.lwjgl.system.Pointer
    All Known Implementing Classes:
    VkReallocationFunction
    Functional Interface:
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

    @FunctionalInterface
    public interface VkReallocationFunctionI
    extends org.lwjgl.system.CallbackI.P
    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

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

    See Also

    VkAllocationCallbacks

    • Nested Class Summary

      • Nested classes/interfaces inherited from interface org.lwjgl.system.CallbackI

        org.lwjgl.system.CallbackI.B, org.lwjgl.system.CallbackI.D, org.lwjgl.system.CallbackI.F, org.lwjgl.system.CallbackI.I, org.lwjgl.system.CallbackI.J, org.lwjgl.system.CallbackI.N, org.lwjgl.system.CallbackI.P, org.lwjgl.system.CallbackI.S, org.lwjgl.system.CallbackI.V, org.lwjgl.system.CallbackI.Z
      • Nested classes/interfaces inherited from interface org.lwjgl.system.Pointer

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

      Fields 
      Modifier and Type Field Description
      static java.lang.String SIGNATURE  
      • Fields inherited from interface org.lwjgl.system.Pointer

        BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      default long callback​(long args)  
      default java.lang.String getSignature()  
      long invoke​(long pUserData, long pOriginal, long size, long alignment, int allocationScope)
      Application-defined memory reallocation function.
      • Methods inherited from interface org.lwjgl.system.CallbackI

        address
    • Field Detail

      • SIGNATURE

        static final java.lang.String SIGNATURE
    • Method Detail

      • getSignature

        default java.lang.String getSignature()
        Specified by:
        getSignature in interface org.lwjgl.system.CallbackI
      • callback

        default long callback​(long args)
        Specified by:
        callback in interface org.lwjgl.system.CallbackI.P
      • invoke

        long invoke​(long pUserData,
                    long pOriginal,
                    long size,
                    long alignment,
                    int allocationScope)
        Application-defined memory reallocation function.
        Parameters:
        pUserData - the value specified for VkAllocationCallbacks::pUserData in the allocator specified by the application.
        pOriginal - must be either NULL or a pointer previously returned by pfnReallocation or pfnAllocation of a compatible allocator.
        size - the size in bytes of the requested allocation.
        alignment - the requested alignment of the allocation in bytes and must be a power of two.
        allocationScope - a VkSystemAllocationScope value specifying the allocation scope of the lifetime of the allocation, as described here.