Interface VkReallocationFunctionI

  • All Superinterfaces:
    org.lwjgl.system.CallbackI, 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
    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 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 
      Modifier and Type Field Description
      static org.lwjgl.system.libffi.FFICIF CIF  
      • 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 void callback​(long ret, long args)  
      default org.lwjgl.system.libffi.FFICIF getCallInterface()  
      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

      • CIF

        static final org.lwjgl.system.libffi.FFICIF CIF
    • Method Detail

      • getCallInterface

        default org.lwjgl.system.libffi.FFICIF getCallInterface()
        Specified by:
        getCallInterface in interface org.lwjgl.system.CallbackI
      • callback

        default void callback​(long ret,
                              long args)
        Specified by:
        callback in interface org.lwjgl.system.CallbackI
      • 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.