Interface GLFWAllocateCallbackI
- All Superinterfaces:
org.lwjgl.system.CallbackI,org.lwjgl.system.Pointer
- All Known Implementing Classes:
GLFWAllocateCallback
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
This is the function pointer type for memory allocation callbacks. A memory allocation callback function has the following signature:
void* function_name(size_t size, void* user)
This function must return either a memory block at least size bytes long, or NULL if allocation failed. Note that not all parts of GLFW
handle allocation failures gracefully yet.
This function must support being called during Init but before the library is flagged as initialized, as well as during Terminate after the
library is no longer flagged as initialized.
Any memory allocated via this function will be deallocated via the same allocator during library termination or earlier.
Any memory allocated via this function must be suitably aligned for any object type. If you are using C99 or earlier, this alignment is
platform-dependent but will be the same as what malloc provides. If you are using C11 or later, this is the value of
alignof(max_align_t).
The size will always be greater than zero. Allocations of size zero are filtered out before reaching the custom allocator.
If this function returns NULL, GLFW will emit OUT_OF_MEMORY.
Note
- The returned memory block must be valid at least until it is deallocated.
- This function must not call any GLFW function.
- This function must support being called from any thread that calls GLFW functions.
Type
void * (*invoke(long, long)) (
size_t size,
void *user
)- Since:
- version 3.4
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.lwjgl.system.Pointer
org.lwjgl.system.Pointer.Default -
Field Summary
FieldsFields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE -
Method Summary
Methods inherited from interface org.lwjgl.system.CallbackI
address
-
Field Details
-
CIF
static final org.lwjgl.system.libffi.FFICIF CIF
-
-
Method Details
-
getCallInterface
default org.lwjgl.system.libffi.FFICIF getCallInterface()- Specified by:
getCallInterfacein interfaceorg.lwjgl.system.CallbackI
-
callback
default void callback(long ret, long args) - Specified by:
callbackin interfaceorg.lwjgl.system.CallbackI
-
invoke
long invoke(long size, long user) Will be called for memory allocation requests.- Parameters:
size- the minimum size, in bytes, of the memory blockuser- the user-defined pointer from the allocator- Returns:
- the address of the newly allocated memory block, or
NULLif an error occurred
-