14#ifdef WITH_VULKAN_BACKEND
16# include <MoltenVK/vk_mvk_moltenvk.h>
18# include <vulkan/vulkan_core.h>
27#if defined(__cplusplus)
28# define GHOST_DECLARE_HANDLE(name) \
29 typedef struct name##__ { \
31 MEM_CXX_CLASS_ALLOC_FUNCS(#name) \
34# define GHOST_DECLARE_HANDLE(name) \
35 typedef struct name##__ { \
138#define GHOST_CAPABILITY_FLAG_ALL \
139 (GHOST_kCapabilityCursorWarp | GHOST_kCapabilityWindowPosition | \
140 GHOST_kCapabilityPrimaryClipboard | GHOST_kCapabilityGPUReadFrontBuffer | \
141 GHOST_kCapabilityClipboardImages | GHOST_kCapabilityDesktopSample | \
142 GHOST_kCapabilityInputIME | GHOST_kCapabilityTrackpadPhysicalDirection | \
143 GHOST_kCapabilityWindowDecorationStyles | GHOST_kCapabilityKeyboardHyperKey)
223#if defined(WITH_OPENGL_BACKEND)
224 GHOST_kDrawingContextTypeOpenGL,
227 GHOST_kDrawingContextTypeD3D,
229#if defined(__APPLE__) && defined(WITH_METAL_BACKEND)
230 GHOST_kDrawingContextTypeMetal,
232#ifdef WITH_VULKAN_BACKEND
233 GHOST_kDrawingContextTypeVulkan,
248#define GHOST_kButtonNum (int(GHOST_kButtonMaskButton7) + 1)
276#ifdef WITH_INPUT_NDOF
282 GHOST_kEventNDOFMotion,
288 GHOST_kEventNDOFButton,
326#define GHOST_kNumEventTypes (GHOST_kEventImeCompositionEnd + 1)
330#define GHOST_kStandardCursorFirstCursor int(GHOST_kStandardCursorDefault)
378#define GHOST_kStandardCursorNumCursors (int(GHOST_kStandardCursorCustom) + 1)
446#define _GHOST_KEY_MODIFIER_MIN GHOST_kKeyLeftShift
459#define _GHOST_KEY_MODIFIER_MAX GHOST_kKeyRightHyper
534#define GHOST_KEY_MODIFIER_NUM ((_GHOST_KEY_MODIFIER_MAX - _GHOST_KEY_MODIFIER_MIN) + 1)
535#define GHOST_KEY_MODIFIER_TO_INDEX(key) ((unsigned int)(key)-_GHOST_KEY_MODIFIER_MIN)
536#define GHOST_KEY_MODIFIER_FROM_INDEX(key) \
537 (GHOST_TKey)(((unsigned int)(key) + _GHOST_KEY_MODIFIER_MIN))
538#define GHOST_KEY_MODIFIER_CHECK(key) (GHOST_KEY_MODIFIER_TO_INDEX(key) < GHOST_KEY_MODIFIER_NUM)
554#define GHOST_GRAB_NEEDS_SOFTWARE_CURSOR_FOR_WARP(grab) ((grab) == GHOST_kGrabWrap)
668#ifdef WITH_INPUT_NDOF
684} GHOST_TEventNDOFMotionData;
686typedef enum { GHOST_kPress, GHOST_kRelease } GHOST_TButtonAction;
690 GHOST_TButtonAction action;
692} GHOST_TEventNDOFButtonData;
747#ifdef WITH_VULKAN_BACKEND
752 VkSurfaceFormatKHR surface_format;
756 VkSemaphore acquire_semaphore;
758 VkSemaphore present_semaphore;
760 VkFence submission_fence;
761} GHOST_VulkanSwapChainData;
770 GHOST_kVulkanXRModeCPU,
778 GHOST_kVulkanXRModeFD,
786 GHOST_kVulkanXRModeWin32,
787} GHOST_TVulkanXRModes;
794 GHOST_TVulkanXRModes data_transfer_mode;
815 VkImage vk_image_blender;
832 VkFormat image_format;
837 VkDeviceSize memory_size;
842 VkDeviceSize memory_offset;
846} GHOST_VulkanOpenXRData;
850 VkPhysicalDevice physical_device;
855} GHOST_VulkanHandles;
888struct GHOST_TimerTaskHandle__;
894struct GHOST_XrDrawViewInfo;
903typedef enum GHOST_TXrGraphicsBinding {
904 GHOST_kXrGraphicsUnknown = 0,
905 GHOST_kXrGraphicsOpenGL,
906 GHOST_kXrGraphicsVulkan,
908 GHOST_kXrGraphicsOpenGLD3D11,
909 GHOST_kXrGraphicsVulkanD3D11,
913} GHOST_TXrGraphicsBinding;
915typedef void (*GHOST_XrErrorHandlerFn)(
const struct GHOST_XrError *);
917typedef void (*GHOST_XrSessionCreateFn)(void);
918typedef void (*GHOST_XrSessionExitFn)(
void *customdata);
919typedef void (*GHOST_XrCustomdataFreeFn)(
void *customdata);
921typedef void *(*GHOST_XrGraphicsContextBindFn)(void);
922typedef void (*GHOST_XrGraphicsContextUnbindFn)(GHOST_ContextHandle graphics_context);
923typedef void (*GHOST_XrDrawViewFn)(
const struct GHOST_XrDrawViewInfo *draw_view,
void *customdata);
924typedef bool (*GHOST_XrPassthroughEnabledFn)(
void *customdata);
925typedef void (*GHOST_XrDisablePassthroughFn)(
void *customdata);
931typedef const GHOST_TXrGraphicsBinding *GHOST_XrGraphicsBindingCandidates;
937 float orientation_quat[4];
941 GHOST_kXrContextDebug = (1 << 0),
942 GHOST_kXrContextDebugTime = (1 << 1),
946 GHOST_kXrContextGpuNVIDIA = (1 << 2),
951 const GHOST_XrGraphicsBindingCandidates gpu_binding_candidates;
952 unsigned int gpu_binding_candidates_count;
954 unsigned int context_flag;
955} GHOST_XrContextCreateInfo;
958 GHOST_XrPose base_pose;
960 GHOST_XrSessionCreateFn create_fn;
961 GHOST_XrSessionExitFn exit_fn;
962 void *exit_customdata;
963} GHOST_XrSessionBeginInfo;
966typedef enum GHOST_TXrSwapchainFormat {
967 GHOST_kXrSwapchainFormatRGBA8,
968 GHOST_kXrSwapchainFormatRGBA16,
969 GHOST_kXrSwapchainFormatRGBA16F,
970 GHOST_kXrSwapchainFormatRGB10_A2,
971} GHOST_TXrSwapchainFormat;
973typedef struct GHOST_XrDrawViewInfo {
977 GHOST_XrPose eye_pose;
978 GHOST_XrPose local_pose;
981 float angle_left, angle_right;
982 float angle_up, angle_down;
985 GHOST_TXrSwapchainFormat swapchain_format;
987 char expects_srgb_buffer;
992} GHOST_XrDrawViewInfo;
994typedef struct GHOST_XrError {
995 const char *user_message;
1000typedef struct GHOST_XrActionSetInfo {
1003 GHOST_XrCustomdataFreeFn customdata_free_fn;
1005} GHOST_XrActionSetInfo;
1009typedef enum GHOST_XrActionType {
1010 GHOST_kXrActionTypeBooleanInput = 1,
1011 GHOST_kXrActionTypeFloatInput = 2,
1012 GHOST_kXrActionTypeVector2fInput = 3,
1013 GHOST_kXrActionTypePoseInput = 4,
1014 GHOST_kXrActionTypeVibrationOutput = 100,
1015} GHOST_XrActionType;
1017typedef struct GHOST_XrActionInfo {
1019 GHOST_XrActionType type;
1021 const char **subaction_paths;
1025 float *float_thresholds;
1028 GHOST_XrCustomdataFreeFn customdata_free_fn;
1030} GHOST_XrActionInfo;
1032typedef struct GHOST_XrActionBindingInfo {
1033 const char *component_path;
1034 float float_threshold;
1037} GHOST_XrActionBindingInfo;
1039typedef struct GHOST_XrActionProfileInfo {
1040 const char *action_name;
1041 const char *profile_path;
1043 const char **subaction_paths;
1045 const GHOST_XrActionBindingInfo *bindings;
1046} GHOST_XrActionProfileInfo;
1048typedef struct GHOST_XrControllerModelVertex {
1051} GHOST_XrControllerModelVertex;
1053typedef struct GHOST_XrControllerModelComponent {
1060} GHOST_XrControllerModelComponent;
1062typedef struct GHOST_XrControllerModelData {
1064 const GHOST_XrControllerModelVertex *vertices;
1068 const GHOST_XrControllerModelComponent *components;
1069} GHOST_XrControllerModelData;
@ GHOST_kEventWheelAxisVertical
@ GHOST_kEventWheelAxisHorizontal
GHOST_TTrackpadEventSubTypes
@ GHOST_kTrackpadEventSwipe
@ GHOST_kTrackpadEventMagnify
@ GHOST_kTrackpadEventSmartMagnify
@ GHOST_kTrackpadEventUnknown
@ GHOST_kTrackpadEventRotate
@ GHOST_kTrackpadEventScroll
@ GHOST_kWindowStateMinimized
@ GHOST_kWindowStateMaximized
@ GHOST_kWindowStateNormal
@ GHOST_kWindowStateFullScreen
void * GHOST_TUserDataPtr
@ GHOST_kStandardCursorLeftHandle
@ GHOST_kStandardCursorHandClosed
@ GHOST_kStandardCursorHandOpen
@ GHOST_kStandardCursorBottomLeftCorner
@ GHOST_kStandardCursorZoomIn
@ GHOST_kStandardCursorVerticalSplit
@ GHOST_kStandardCursorHelp
@ GHOST_kStandardCursorCopy
@ GHOST_kStandardCursorWait
@ GHOST_kStandardCursorRightHandle
@ GHOST_kStandardCursorHorizontalSplit
@ GHOST_kStandardCursorTopSide
@ GHOST_kStandardCursorStop
@ GHOST_kStandardCursorCrosshair
@ GHOST_kStandardCursorCustom
@ GHOST_kStandardCursorNSEWScroll
@ GHOST_kStandardCursorLeftRight
@ GHOST_kStandardCursorPencil
@ GHOST_kStandardCursorNSScroll
@ GHOST_kStandardCursorCrosshairA
@ GHOST_kStandardCursorUpDown
@ GHOST_kStandardCursorUpArrow
@ GHOST_kStandardCursorHandPoint
@ GHOST_kStandardCursorBottomSide
@ GHOST_kStandardCursorBothHandles
@ GHOST_kStandardCursorInfo
@ GHOST_kStandardCursorTopLeftCorner
@ GHOST_kStandardCursorEyedropper
@ GHOST_kStandardCursorKnife
@ GHOST_kStandardCursorMove
@ GHOST_kStandardCursorCrosshairB
@ GHOST_kStandardCursorBlade
@ GHOST_kStandardCursorBottomRightCorner
@ GHOST_kStandardCursorDownArrow
@ GHOST_kStandardCursorEraser
@ GHOST_kStandardCursorDefault
@ GHOST_kStandardCursorEWScroll
@ GHOST_kStandardCursorRightSide
@ GHOST_kStandardCursorRightArrow
@ GHOST_kStandardCursorTopRightCorner
@ GHOST_kStandardCursorDestroy
@ GHOST_kStandardCursorCrosshairC
@ GHOST_kStandardCursorZoomOut
@ GHOST_kStandardCursorLeftSide
@ GHOST_kStandardCursorText
@ GHOST_kStandardCursorLeftArrow
@ GHOST_NDOF_BUTTON_KBP_F11
@ GHOST_NDOF_BUTTON_TILT_CCW
@ GHOST_NDOF_BUTTON_FRONT
@ GHOST_NDOF_BUTTON_KBP_F7
@ GHOST_NDOF_BUTTON_DOMINANT
@ GHOST_NDOF_BUTTON_SPIN_CW
@ GHOST_NDOF_BUTTON_SPACE
@ GHOST_NDOF_BUTTON_DELETE
@ GHOST_NDOF_BUTTON_NP_F2
@ GHOST_NDOF_BUTTON_RIGHT
@ GHOST_NDOF_BUTTON_INVALID
@ GHOST_NDOF_BUTTON_KBP_F9
@ GHOST_NDOF_BUTTON_MINUS
@ GHOST_NDOF_BUTTON_SAVE_V1
@ GHOST_NDOF_BUTTON_PANZOOM
@ GHOST_NDOF_BUTTON_ROLL_CW
@ GHOST_NDOF_BUTTON_KBP_F1
@ GHOST_NDOF_BUTTON_ROLL_CCW
@ GHOST_NDOF_BUTTON_KBP_F12
@ GHOST_NDOF_BUTTON_SPIN_CCW
@ GHOST_NDOF_BUTTON_TILT_CW
@ GHOST_NDOF_BUTTON_SAVE_V3
@ GHOST_NDOF_BUTTON_SAVE_V2
@ GHOST_NDOF_BUTTON_KBP_F8
@ GHOST_NDOF_BUTTON_KBP_F5
@ GHOST_NDOF_BUTTON_KBP_F6
@ GHOST_NDOF_BUTTON_NP_F1
@ GHOST_NDOF_BUTTON_KBP_F2
@ GHOST_NDOF_BUTTON_NP_F4
@ GHOST_NDOF_BUTTON_NP_F3
@ GHOST_NDOF_BUTTON_KBP_F3
@ GHOST_NDOF_BUTTON_BOTTOM
@ GHOST_NDOF_BUTTON_ROTATE
@ GHOST_NDOF_BUTTON_KBP_F10
@ GHOST_NDOF_BUTTON_ENTER
@ GHOST_NDOF_BUTTON_KBP_F4
@ GHOST_NDOF_BUTTON_SHIFT
@ GHOST_kEventWindowClose
@ GHOST_kEventDraggingDropDone
@ GHOST_kEventDraggingExited
@ GHOST_kEventNativeResolutionChange
@ GHOST_kEventImeComposition
@ GHOST_kEventDraggingUpdated
@ GHOST_kEventOpenMainFile
@ GHOST_kEventDraggingEntered
@ GHOST_kEventWindowActivate
@ GHOST_kEventWindowUpdateDecor
@ GHOST_kEventWindowUpdate
@ GHOST_kEventWindowDeactivate
@ GHOST_kEventImeCompositionStart
@ GHOST_kEventImeCompositionEnd
@ GHOST_kEventWindowDPIHintChanged
@ GHOST_kEventQuitRequest
static const GHOST_TabletData GHOST_TABLET_DATA_NONE
@ GHOST_kTabletModeEraser
@ GHOST_kTabletModeStylus
@ GHOST_kCapabilityWindowPosition
@ GHOST_kCapabilityKeyboardHyperKey
@ GHOST_kCapabilityGPUReadFrontBuffer
@ GHOST_kCapabilityCursorWarp
@ GHOST_kCapabilityInputIME
@ GHOST_kCapabilityTrackpadPhysicalDirection
@ GHOST_kCapabilityClipboardImages
@ GHOST_kCapabilityPrimaryClipboard
@ GHOST_kCapabilityWindowDecorationStyles
@ GHOST_kCapabilityDesktopSample
@ GHOST_kPartiallyVisible
void * GHOST_TDragnDropDataPtr
void(* GHOST_TimerProcPtr)(struct GHOST_TimerTaskHandle__ *task, uint64_t time)
#define GHOST_DECLARE_HANDLE(name)
@ GHOST_kKeyNumpadAsterisk
const void * GHOST_TEventDataPtr
int GHOST_TEmbedderWindowID
GHOST_TDrawingContextType
@ GHOST_kDrawingContextTypeNone
@ GHOST_kWindowOrderBottom
@ GHOST_kModifierKeyRightControl
@ GHOST_kModifierKeyLeftControl
@ GHOST_kModifierKeyRightHyper
@ GHOST_kModifierKeyRightAlt
@ GHOST_kModifierKeyRightShift
@ GHOST_kModifierKeyLeftAlt
@ GHOST_kModifierKeyLeftShift
@ GHOST_kModifierKeyLeftOS
@ GHOST_kModifierKeyRightOS
@ GHOST_kModifierKeyLeftHyper
void(* GHOST_TBacktraceFn)(void *file_handle)
GHOST_TUserSpecialDirTypes
@ GHOST_kUserSpecialDirDesktop
@ GHOST_kUserSpecialDirMusic
@ GHOST_kUserSpecialDirPictures
@ GHOST_kUserSpecialDirVideos
@ GHOST_kUserSpecialDirDownloads
@ GHOST_kUserSpecialDirCaches
@ GHOST_kUserSpecialDirDocuments
@ GHOST_kDragnDropTypeUnknown
@ GHOST_kDragnDropTypeFilenames
@ GHOST_kDragnDropTypeBitmap
@ GHOST_kDragnDropTypeString
@ GHOST_kButtonMaskButton4
@ GHOST_kButtonMaskButton7
@ GHOST_kButtonMaskButton6
@ GHOST_kButtonMaskButton5
@ GHOST_kButtonMaskMiddle
GHOST_TConsoleWindowState
@ GHOST_kConsoleWindowStateShow
@ GHOST_kConsoleWindowStateHideForNonConsoleLaunch
@ GHOST_kConsoleWindowStateHide
@ GHOST_kConsoleWindowStateToggle
@ GHOST_kTabletWinPointer
GHOST_TWindowDecorationStyleFlags
@ GHOST_kDecorationColoredTitleBar
Read Guarded memory(de)allocation.
SIMD_FORCE_INLINE btVector3 transform(const btVector3 &point) const
unsigned long long int uint64_t
void count_indices(Span< int > indices, MutableSpan< int > counts)
GHOST_TDrawingContextType context_type
GHOST_GPUDevice preferred_device
GHOST_TDragnDropTypes dataType
GHOST_TDragnDropDataPtr data
GHOST_TTrackpadEventSubTypes subtype
GHOST_TEventWheelAxis axis
float colored_titlebar_bg_color[3]
float colored_titlebar_fg_color[3]