Macro
VK_DEFINE_NON_DISPATCHABLE_HANDLE
Declare a non-dispatchable object handle
VK_DEFINE_NON_DISPATCHABLE_HANDLE
defines a
non-dispatchable handle type.
#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
#if (VK_USE_64_BIT_PTR_DEFINES==1)
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
#else
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
#endif
#endif
object
is the name of the resulting C type.
Most Vulkan handle types, such as VkBuffer, are non-dispatchable.
The vulkan_core.h
header allows the
VK_DEFINE_NON_DISPATCHABLE_HANDLE and VK_NULL_HANDLE definitions
to be overridden by the application.
If VK_DEFINE_NON_DISPATCHABLE_HANDLE is already defined when
vulkan_core.h
is compiled, the default definitions for
VK_DEFINE_NON_DISPATCHABLE_HANDLE and VK_NULL_HANDLE are
skipped.
This allows the application to define a binary-compatible custom handle
which may provide more type-safety or other features needed by the
application.
Applications must not define handles in a way that is not binary compatible
- where binary compatibility is platform dependent.