Interface VkReallocationFunctionI

  • All Superinterfaces:
    CallbackI, CallbackI.P, 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 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

    • Field Detail

      • SIGNATURE

        static final java.lang.String SIGNATURE
    • Method Detail

      • getSignature

        default java.lang.String getSignature()
        Description copied from interface: CallbackI
        Returns the dyncall signature for this callback function. [INTERNAL API]
        Specified by:
        getSignature in interface CallbackI
        Returns:
        the dyncall signature
      • callback

        default long callback​(long args)
        Description copied from interface: CallbackI.P
        Will be called by native code.
        Specified by:
        callback in interface CallbackI.P
        Parameters:
        args - pointer to a DCArgs iterator
        Returns:
        the value to store to the result DCValue
      • 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 the same 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.