Blender V5.0
GHOST_Types.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include <stdint.h>
12#include <string>
13
14#ifdef WITH_VULKAN_BACKEND
15# include <vulkan/vulkan_core.h>
16VK_DEFINE_HANDLE(VmaAllocator)
17#endif
18
19/* This is used by `GHOST_C-api.h` too, cannot use C++ conventions. */
20// NOLINTBEGIN: modernize-use-using
21
22#include "MEM_guardedalloc.h"
23
24#if defined(__cplusplus)
25# define GHOST_DECLARE_HANDLE(name) \
26 typedef struct name##__ { \
27 int unused; \
28 MEM_CXX_CLASS_ALLOC_FUNCS(#name) \
29 } *name
30#else
31# define GHOST_DECLARE_HANDLE(name) \
32 typedef struct name##__ { \
33 int unused; \
34 } *name
35#endif
36
43
44GHOST_DECLARE_HANDLE(GHOST_SystemHandle);
45GHOST_DECLARE_HANDLE(GHOST_TimerTaskHandle);
46GHOST_DECLARE_HANDLE(GHOST_WindowHandle);
47GHOST_DECLARE_HANDLE(GHOST_EventHandle);
48GHOST_DECLARE_HANDLE(GHOST_RectangleHandle);
49GHOST_DECLARE_HANDLE(GHOST_EventConsumerHandle);
50GHOST_DECLARE_HANDLE(GHOST_ContextHandle);
51GHOST_DECLARE_HANDLE(GHOST_XrContextHandle);
52
53typedef void (*GHOST_TBacktraceFn)(void *file_handle);
54
55typedef void *GHOST_TUserDataPtr;
56
58
62typedef struct {
64 const uint8_t *data;
65 int data_size[2];
66 int hot_spot[2];
68
73typedef struct GHOST_CursorGenerator {
92 uint8_t *(*generate_fn)(const struct GHOST_CursorGenerator *cursor_generator,
93 int cursor_size,
94 int cursor_size_max,
95 uint8_t *(*alloc_fn)(size_t size),
96 int r_bitmap_size[2],
97 int r_hot_spot[2],
98 bool *r_can_invert_color);
103 void (*free_fn)(struct GHOST_CursorGenerator *cursor_generator);
109
111
118
123
188
193#define GHOST_CAPABILITY_FLAG_ALL \
194 (GHOST_kCapabilityCursorWarp | GHOST_kCapabilityWindowPosition | \
195 GHOST_kCapabilityClipboardPrimary | GHOST_kCapabilityGPUReadFrontBuffer | \
196 GHOST_kCapabilityClipboardImage | GHOST_kCapabilityDesktopSample | GHOST_kCapabilityInputIME | \
197 GHOST_kCapabilityTrackpadPhysicalDirection | GHOST_kCapabilityWindowDecorationStyles | \
198 GHOST_kCapabilityKeyboardHyperKey | GHOST_kCapabilityCursorRGBA | \
199 GHOST_kCapabilityCursorGenerator | GHOST_kCapabilityMultiMonitorPlacement)
200
201/* Xtilt and Ytilt represent how much the pen is tilted away from
202 * vertically upright in either the X or Y direction, with X and Y the
203 * axes of the tablet surface.
204 * In other words, Xtilt and Ytilt are components of a vector created by projecting
205 * the pen's angle in 3D space vertically downwards on to the XY plane
206 * --Matt
207 */
213
214typedef enum {
216 /* Show as Windows Ink to users to match "Use Windows Ink" in tablet utilities,
217 * but we use the dependent Windows Pointer API. */
221
222typedef struct GHOST_TabletData {
223 GHOST_TTabletMode Active; /* 0=None, 1=Stylus, 2=Eraser */
224 float Pressure; /* range 0.0 (not touching) to 1.0 (full pressure) */
225 float Xtilt; /* range -1.0 (left) to +1.0 (right) */
226 float Ytilt; /* range -1.0 (away from user) to +1.0 (toward user) */
228
230 GHOST_kTabletModeNone, /* No cursor in range */
231 1.0f, /* Pressure */
232 0.0f, /* Xtilt */
233 0.0f}; /* Ytilt */
234
240
241typedef enum { GHOST_kFireTimeNever = 0xFFFFFFFF } GHOST_TFireTimeConstant;
242
256
267
274
276
277typedef enum {
279#if defined(WITH_OPENGL_BACKEND)
280 GHOST_kDrawingContextTypeOpenGL,
281#endif
282#ifdef WIN32
283 GHOST_kDrawingContextTypeD3D,
284#endif
285#if defined(__APPLE__) && defined(WITH_METAL_BACKEND)
286 GHOST_kDrawingContextTypeMetal,
287#endif
288#ifdef WITH_VULKAN_BACKEND
289 GHOST_kDrawingContextTypeVulkan,
290#endif
292
306
384
385typedef enum {
386#define GHOST_kStandardCursorFirstCursor int(GHOST_kStandardCursorDefault)
438
439#define GHOST_kStandardCursorNumCursors (int(GHOST_kStandardCursorCustom) + 1)
441
442typedef enum {
449
458
459 /* Number keys. */
470
473
474 /* Character keys. */
501
506
507#define _GHOST_KEY_MODIFIER_MIN GHOST_kKeyLeftShift
508 /* Modifiers: See #GHOST_KEY_MODIFIER_CHECK. */
515 GHOST_kKeyLeftOS, /* Command key on Apple, Windows key(s) on Windows. */
517
518 GHOST_kKeyLeftHyper, /* Additional modifier on Wayland & X11, see !136340. */
520#define _GHOST_KEY_MODIFIER_MAX GHOST_kKeyRightHyper
521
522 GHOST_kKeyGrLess, /* German PC only! */
523 GHOST_kKeyApp, /* Also known as menu key. */
524
528
533
536
543
544 /* Numpad keys. */
561
562 /* Function keys. */
587
588 /* Multimedia keypad buttons. */
593} GHOST_TKey;
594
595#define GHOST_KEY_MODIFIER_NUM ((_GHOST_KEY_MODIFIER_MAX - _GHOST_KEY_MODIFIER_MIN) + 1)
596#define GHOST_KEY_MODIFIER_TO_INDEX(key) ((unsigned int)(key) - _GHOST_KEY_MODIFIER_MIN)
597#define GHOST_KEY_MODIFIER_FROM_INDEX(key) \
598 (GHOST_TKey)(((unsigned int)(key) + _GHOST_KEY_MODIFIER_MIN))
599#define GHOST_KEY_MODIFIER_CHECK(key) (GHOST_KEY_MODIFIER_TO_INDEX(key) < GHOST_KEY_MODIFIER_NUM)
600
614
615#define GHOST_GRAB_NEEDS_SOFTWARE_CURSOR_FOR_WARP(grab) ((grab) == GHOST_kGrabWrap)
616
617typedef enum {
620 GHOST_kAxisX = (1 << 0),
621 GHOST_kAxisY = (1 << 1),
623
624typedef const void *GHOST_TEventDataPtr;
625
634
641
646
653
662
677
678typedef enum {
680 GHOST_kDragnDropTypeFilenames, /* Array of strings representing file names (full path). */
681 GHOST_kDragnDropTypeString, /* Unformatted text UTF8 string. */
682 GHOST_kDragnDropTypeBitmap /* Bitmap image data. */
684
686
697
712
713typedef struct {
714 int count;
715 uint8_t **strings;
717
728
729#ifdef WITH_INPUT_NDOF
730typedef struct {
732 /* Each component normally ranges from -1 to +1, but can exceed that.
733 * These use blender standard view coordinates,
734 * with positive rotations being CCW about the axis. */
735 /* translation: */
736 float tx, ty, tz;
737 /* rotation:
738 * - `axis = (rx,ry,rz).normalized`
739 * - `amount = (rx,ry,rz).magnitude` [in revolutions, 1.0 = 360 deg]. */
740 float rx, ry, rz;
742 float dt;
744 GHOST_TProgress progress;
745} GHOST_TEventNDOFMotionData;
746
747typedef enum { GHOST_kPress, GHOST_kRelease } GHOST_TButtonAction;
748/* Good for mouse or other buttons too? */
749
750typedef struct {
751 GHOST_TButtonAction action;
752 short button;
753} GHOST_TEventNDOFButtonData;
754#endif // WITH_INPUT_NDOF
755
756typedef struct {
759
761 char utf8_buf[6];
762
771
782
787
796
813
825
826#define GHOST_CONTEXT_PARAMS_NONE \
827 { \
828 /*is_stereo_visual*/ false, \
829 /*is_debug*/ false, \
830 /*vsync*/ GHOST_kVSyncModeUnset, \
831 }
832
833#define GHOST_CONTEXT_PARAMS_FROM_GPU_SETTINGS_OFFSCREEN(gpu_settings) \
834 { \
835 /*is_stereo_visual*/ false, \
836 /*is_debug*/ (((gpu_settings).flags & GHOST_gpuDebugContext) != 0), \
837 /*vsync*/ GHOST_kVSyncModeUnset, \
838 }
839
840#define GHOST_CONTEXT_PARAMS_FROM_GPU_SETTINGS(gpu_settings) \
841 { \
842 /*is_stereo_visual*/ (((gpu_settings).flags & GHOST_gpuStereoVisual) != 0), \
843 /*is_debug*/ (((gpu_settings).flags & GHOST_gpuDebugContext) != 0), /*vsync*/ \
844 (((gpu_settings).flags & GHOST_gpuVSyncIsOverridden) ? (gpu_settings).vsync : \
845 GHOST_kVSyncModeUnset), \
846 }
847
858
862
863typedef struct {
864 /* Is HDR enabled for this Window? */
866 /* Is wide gamut enabled for this Window? */
868 /* Scale factor to display SDR content in HDR. */
871
872#define GHOST_WINDOW_HDR_INFO_NONE \
873 { \
874 /*hdr_enabled*/ false, \
875 /*wide_gamut_enabled*/ false, \
876 /*sdr_white_level*/ 1.0f, \
877 }
878
879#ifdef WITH_VULKAN_BACKEND
880typedef struct {
882 VkImage image;
884 VkSurfaceFormatKHR surface_format;
886 VkExtent2D extent;
888 VkSemaphore acquire_semaphore;
890 VkSemaphore present_semaphore;
892 VkFence submission_fence;
893 /* Factor to scale SDR content to HDR. */
894 float sdr_scale;
895} GHOST_VulkanSwapChainData;
896
897typedef enum {
904 GHOST_kVulkanXRModeCPU,
905
912 GHOST_kVulkanXRModeFD,
913
920 GHOST_kVulkanXRModeWin32,
921} GHOST_TVulkanXRModes;
922
923typedef struct {
928 GHOST_TVulkanXRModes data_transfer_mode;
929
933 VkExtent2D extent;
934
935 union {
936 struct {
937
942 void *image_data;
943 } cpu;
944 struct {
949 VkImage vk_image_blender;
950
955 bool new_handle;
956
961 uint64_t image_handle;
962
966 VkFormat image_format;
967
971 VkDeviceSize memory_size;
972
976 VkDeviceSize memory_offset;
977 } gpu;
978 };
979
980} GHOST_VulkanOpenXRData;
981
987typedef struct {
989 VkInstance instance;
991 VkPhysicalDevice physical_device;
993 VkDevice device;
995 uint32_t graphic_queue_family;
997 VkQueue queue;
999 void *queue_mutex;
1001 VmaAllocator vma_allocator;
1002} GHOST_VulkanHandles;
1003
1004#endif
1005
1006typedef enum {
1011
1012typedef struct {
1014} GHOST_Debug;
1015
1016#ifdef _WIN32
1017typedef void *GHOST_TEmbedderWindowID;
1018#endif // _WIN32
1019
1020#ifndef _WIN32
1021/* I can't use "Window" from `X11/Xlib.h`
1022 * because it conflicts with Window defined in `winlay.h`. */
1024#endif // _WIN32
1025
1031#ifdef __cplusplus
1032class GHOST_ITimerTask;
1033typedef void (*GHOST_TimerProcPtr)(GHOST_ITimerTask *task, uint64_t time);
1034#else
1035struct GHOST_TimerTaskHandle__;
1036typedef void (*GHOST_TimerProcPtr)(struct GHOST_TimerTaskHandle__ *task, uint64_t time);
1037#endif
1038
1039#ifdef WITH_XR_OPENXR
1040
1041struct GHOST_XrDrawViewInfo;
1042struct GHOST_XrError;
1050typedef enum GHOST_TXrGraphicsBinding {
1051 GHOST_kXrGraphicsUnknown = 0,
1052 GHOST_kXrGraphicsOpenGL,
1053 GHOST_kXrGraphicsVulkan,
1054# ifdef WIN32
1055 GHOST_kXrGraphicsOpenGLD3D11,
1056 GHOST_kXrGraphicsVulkanD3D11,
1057# endif
1058 /* For later */
1059 // GHOST_kXrGraphicsVulkan,
1060} GHOST_TXrGraphicsBinding;
1061
1062typedef void (*GHOST_XrErrorHandlerFn)(const struct GHOST_XrError *);
1063
1064typedef void (*GHOST_XrSessionCreateFn)(void);
1065typedef void (*GHOST_XrSessionExitFn)(void *customdata);
1066typedef void (*GHOST_XrCustomdataFreeFn)(void *customdata);
1067
1068typedef void *(*GHOST_XrGraphicsContextBindFn)(void);
1069typedef void (*GHOST_XrGraphicsContextUnbindFn)(GHOST_ContextHandle graphics_context);
1070typedef void (*GHOST_XrDrawViewFn)(const struct GHOST_XrDrawViewInfo *draw_view, void *customdata);
1071typedef bool (*GHOST_XrPassthroughEnabledFn)(void *customdata);
1072typedef void (*GHOST_XrDisablePassthroughFn)(void *customdata);
1073
1078typedef const GHOST_TXrGraphicsBinding *GHOST_XrGraphicsBindingCandidates;
1079
1080typedef struct {
1081 bool is_active;
1082 float position[3];
1083 /* Blender convention (w, x, y, z) */
1084 float orientation_quat[4];
1085} GHOST_XrPose;
1086
1087enum {
1088 GHOST_kXrContextDebug = (1 << 0),
1089 GHOST_kXrContextDebugTime = (1 << 1),
1090# ifdef WIN32
1091 /* Needed to avoid issues with the SteamVR OpenGL graphics binding
1092 * (use DirectX fallback instead). */
1093 GHOST_kXrContextGpuNVIDIA = (1 << 2),
1094# endif
1095};
1096
1097typedef struct {
1098 const GHOST_XrGraphicsBindingCandidates gpu_binding_candidates;
1099 unsigned int gpu_binding_candidates_count;
1100
1101 unsigned int context_flag;
1102} GHOST_XrContextCreateInfo;
1103
1104typedef struct {
1105 GHOST_XrPose base_pose;
1106
1107 GHOST_XrSessionCreateFn create_fn;
1108 GHOST_XrSessionExitFn exit_fn;
1109 void *exit_customdata;
1110} GHOST_XrSessionBeginInfo;
1111
1113typedef enum GHOST_TXrSwapchainFormat {
1114 GHOST_kXrSwapchainFormatRGBA8,
1115 GHOST_kXrSwapchainFormatRGBA16,
1116 GHOST_kXrSwapchainFormatRGBA16F,
1117 GHOST_kXrSwapchainFormatRGB10_A2,
1118} GHOST_TXrSwapchainFormat;
1119
1120typedef struct GHOST_XrDrawViewInfo {
1121 int ofsx, ofsy;
1122 int width, height;
1123
1124 GHOST_XrPose eye_pose;
1125 GHOST_XrPose local_pose;
1126
1127 struct {
1128 float angle_left, angle_right;
1129 float angle_up, angle_down;
1130 } fov;
1131
1132 GHOST_TXrSwapchainFormat swapchain_format;
1134 char expects_srgb_buffer;
1135
1138 char view_idx;
1139} GHOST_XrDrawViewInfo;
1140
1141typedef struct GHOST_XrError {
1142 const char *user_message;
1143
1144 void *customdata;
1145} GHOST_XrError;
1146
1147typedef struct GHOST_XrActionSetInfo {
1148 const char *name;
1149
1150 GHOST_XrCustomdataFreeFn customdata_free_fn;
1151 void *customdata; /* wmXrActionSet */
1152} GHOST_XrActionSetInfo;
1153
1156typedef enum GHOST_XrActionType {
1157 GHOST_kXrActionTypeBooleanInput = 1,
1158 GHOST_kXrActionTypeFloatInput = 2,
1159 GHOST_kXrActionTypeVector2fInput = 3,
1160 GHOST_kXrActionTypePoseInput = 4,
1161 GHOST_kXrActionTypeVibrationOutput = 100,
1162} GHOST_XrActionType;
1163
1164typedef struct GHOST_XrActionInfo {
1165 const char *name;
1166 GHOST_XrActionType type;
1167 uint32_t count_subaction_paths;
1168 const char **subaction_paths;
1170 void *states;
1172 float *float_thresholds;
1173 int16_t *axis_flags;
1174
1175 GHOST_XrCustomdataFreeFn customdata_free_fn;
1176 void *customdata; /* wmXrAction */
1177} GHOST_XrActionInfo;
1178
1179typedef struct GHOST_XrActionBindingInfo {
1180 const char *component_path;
1181 float float_threshold;
1182 int16_t axis_flag;
1183 GHOST_XrPose pose;
1184} GHOST_XrActionBindingInfo;
1185
1186typedef struct GHOST_XrActionProfileInfo {
1187 const char *action_name;
1188 const char *profile_path;
1189 uint32_t count_subaction_paths;
1190 const char **subaction_paths;
1192 const GHOST_XrActionBindingInfo *bindings;
1193} GHOST_XrActionProfileInfo;
1194
1195typedef struct GHOST_XrControllerModelVertex {
1196 float position[3];
1197 float normal[3];
1198} GHOST_XrControllerModelVertex;
1199
1200typedef struct GHOST_XrControllerModelComponent {
1202 float transform[4][4];
1203 uint32_t vertex_offset;
1204 uint32_t vertex_count;
1205 uint32_t index_offset;
1206 uint32_t index_count;
1207} GHOST_XrControllerModelComponent;
1208
1209typedef struct GHOST_XrControllerModelData {
1210 uint32_t count_vertices;
1211 const GHOST_XrControllerModelVertex *vertices;
1213 const uint32_t *indices;
1214 uint32_t count_components;
1215 const GHOST_XrControllerModelComponent *components;
1216} GHOST_XrControllerModelData;
1217
1218#endif /* WITH_XR_OPENXR */
1219
1220// NOLINTEND: modernize-use-using
1221
1230typedef enum {
1231
1233 /* Used internally, never sent or used as an index. */
1235
1236 /* These two are available from any 3Dconnexion device. */
1239
1240 /* Standard views. */
1247
1248 /* 90 degrees rotations. */
1251
1252 /* More views. */
1255
1256 /* General-purpose buttons.
1257 * Users can assign functions via keymap editor. */
1268
1269 /* Keyboard keys. */
1274
1275 /* Device control. */
1281
1282 /* New spin buttons. */
1287
1288 /* Keyboard keys. */
1291
1292 /* Keyboard Pro special buttons. */
1305
1306 /* General-purpose buttons.
1307 * Users can assign functions via keymap editor. */
1310
1311 /* Store views. */
1318
1319 /* Keyboard keys. */
1322
1323 /* Numpad Pro special buttons. */
1328
1330
unsigned int uint
GHOST_TEventWheelAxis
@ GHOST_kEventWheelAxisVertical
@ GHOST_kEventWheelAxisHorizontal
GHOST_TTrackpadEventSubTypes
@ GHOST_kTrackpadEventSwipe
@ GHOST_kTrackpadEventMagnify
@ GHOST_kTrackpadEventSmartMagnify
@ GHOST_kTrackpadEventUnknown
@ GHOST_kTrackpadEventRotate
@ GHOST_kTrackpadEventScroll
GHOST_TWindowState
@ GHOST_kWindowStateMinimized
@ GHOST_kWindowStateMaximized
@ GHOST_kWindowStateNormal
@ GHOST_kWindowStateFullScreen
void * GHOST_TUserDataPtr
Definition GHOST_Types.h:55
GHOST_TStandardCursor
@ 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_kStandardCursorSlip
@ 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_ButtonT
@ GHOST_NDOF_BUTTON_KBP_F11
@ GHOST_NDOF_BUTTON_TILT_CCW
@ GHOST_NDOF_BUTTON_FRONT
@ GHOST_NDOF_BUTTON_CTRL
@ GHOST_NDOF_BUTTON_NONE
@ GHOST_NDOF_BUTTON_KBP_F7
@ GHOST_NDOF_BUTTON_FIT
@ GHOST_NDOF_BUTTON_DOMINANT
@ GHOST_NDOF_BUTTON_SPIN_CW
@ GHOST_NDOF_BUTTON_SPACE
@ GHOST_NDOF_BUTTON_DELETE
@ GHOST_NDOF_BUTTON_1
@ 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_ISO1
@ GHOST_NDOF_BUTTON_SAVE_V1
@ GHOST_NDOF_BUTTON_9
@ GHOST_NDOF_BUTTON_PANZOOM
@ GHOST_NDOF_BUTTON_MENU
@ GHOST_NDOF_BUTTON_ROLL_CW
@ GHOST_NDOF_BUTTON_KBP_F1
@ GHOST_NDOF_BUTTON_ROLL_CCW
@ GHOST_NDOF_BUTTON_V1
@ GHOST_NDOF_BUTTON_BACK
@ GHOST_NDOF_BUTTON_ISO2
@ GHOST_NDOF_BUTTON_KBP_F12
@ GHOST_NDOF_BUTTON_V2
@ GHOST_NDOF_BUTTON_3
@ GHOST_NDOF_BUTTON_SPIN_CCW
@ GHOST_NDOF_BUTTON_TOP
@ GHOST_NDOF_BUTTON_PLUS
@ GHOST_NDOF_BUTTON_2
@ GHOST_NDOF_BUTTON_TILT_CW
@ GHOST_NDOF_BUTTON_SAVE_V3
@ GHOST_NDOF_BUTTON_8
@ GHOST_NDOF_BUTTON_SAVE_V2
@ GHOST_NDOF_BUTTON_TAB
@ GHOST_NDOF_BUTTON_10
@ GHOST_NDOF_BUTTON_ALT
@ GHOST_NDOF_BUTTON_USER
@ 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_4
@ GHOST_NDOF_BUTTON_V3
@ GHOST_NDOF_BUTTON_7
@ GHOST_NDOF_BUTTON_ESC
@ GHOST_NDOF_BUTTON_NP_F4
@ GHOST_NDOF_BUTTON_NP_F3
@ GHOST_NDOF_BUTTON_KBP_F3
@ GHOST_NDOF_BUTTON_12
@ GHOST_NDOF_BUTTON_11
@ GHOST_NDOF_BUTTON_5
@ 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_6
@ GHOST_NDOF_BUTTON_SHIFT
@ GHOST_NDOF_BUTTON_LEFT
GHOST_TEventType
@ GHOST_kEventWindowClose
@ GHOST_kEventWheel
@ GHOST_kEventWindowMove
@ GHOST_kEventWindowSize
@ GHOST_kEventDraggingDropDone
@ GHOST_kEventDraggingExited
@ GHOST_kEventNativeResolutionChange
@ GHOST_kEventImeComposition
@ GHOST_kEventCursorMove
@ GHOST_kEventDraggingUpdated
@ GHOST_kEventOpenMainFile
@ GHOST_kEventDraggingEntered
@ GHOST_kEventButtonUp
@ GHOST_kEventWindowActivate
@ GHOST_kEventWindowUpdateDecor
@ GHOST_kEventTrackpad
@ GHOST_kEventWindowUpdate
@ GHOST_kEventWindowDeactivate
@ GHOST_kEventButtonDown
@ GHOST_kEventKeyDown
@ GHOST_kEventImeCompositionStart
@ GHOST_kEventImeCompositionEnd
@ GHOST_kEventWindowDPIHintChanged
@ GHOST_kEventUnknown
@ GHOST_kEventKeyUp
@ GHOST_kEventQuitRequest
static const GHOST_TabletData GHOST_TABLET_DATA_NONE
GHOST_TDebugFlags
@ GHOST_kDebugDefault
@ GHOST_kDebugWintab
GHOST_TTabletMode
@ GHOST_kTabletModeEraser
@ GHOST_kTabletModeStylus
@ GHOST_kTabletModeNone
GHOST_TCapabilityFlag
@ GHOST_kCapabilityWindowPosition
@ GHOST_kCapabilityClipboardPrimary
@ GHOST_kCapabilityKeyboardHyperKey
@ GHOST_kCapabilityCursorRGBA
@ GHOST_kCapabilityGPUReadFrontBuffer
@ GHOST_kCapabilityCursorWarp
@ GHOST_kCapabilityInputIME
@ GHOST_kCapabilityCursorGenerator
@ GHOST_kCapabilityTrackpadPhysicalDirection
@ GHOST_kCapabilityMultiMonitorPlacement
@ GHOST_kCapabilityClipboardImage
@ GHOST_kCapabilityWindowDecorationStyles
@ GHOST_kCapabilityDesktopSample
GHOST_TVisibility
@ GHOST_kFullyVisible
@ GHOST_kPartiallyVisible
@ GHOST_kNotVisible
GHOST_TAxisFlag
@ GHOST_kAxisX
@ GHOST_kAxisY
@ GHOST_kAxisNone
void * GHOST_TDragnDropDataPtr
void(* GHOST_TimerProcPtr)(struct GHOST_TimerTaskHandle__ *task, uint64_t time)
#define GHOST_DECLARE_HANDLE(name)
Definition GHOST_Types.h:31
GHOST_TKey
@ GHOST_kKeyLeftOS
@ GHOST_kKeyInsert
@ GHOST_kKeySemicolon
@ GHOST_kKey5
@ GHOST_kKeyMediaPlay
@ GHOST_kKeyZ
@ GHOST_kKeyQuote
@ GHOST_kKey4
@ GHOST_kKeyT
@ GHOST_kKeyNumpad3
@ GHOST_kKeyAccentGrave
@ GHOST_kKeyNumpad1
@ GHOST_kKeyW
@ GHOST_kKeyLeftAlt
@ GHOST_kKey3
@ GHOST_kKeyG
@ GHOST_kKeyF23
@ GHOST_kKeyF9
@ GHOST_kKeyC
@ GHOST_kKeyRightShift
@ GHOST_kKeyNumLock
@ GHOST_kKeyI
@ GHOST_kKeyEnter
@ GHOST_kKeyF20
@ GHOST_kKeyP
@ GHOST_kKeyJ
@ GHOST_kKeyNumpadSlash
@ GHOST_kKeyRightArrow
@ GHOST_kKeyF13
@ GHOST_kKeyF6
@ GHOST_kKeyNumpad4
@ GHOST_kKeyF11
@ GHOST_kKeyR
@ GHOST_kKeyF24
@ GHOST_kKeyN
@ GHOST_kKeyPause
@ GHOST_kKeyCapsLock
@ GHOST_kKeyApp
@ GHOST_kKeyMinus
@ GHOST_kKeyO
@ GHOST_kKey6
@ GHOST_kKeyMediaStop
@ GHOST_kKeyBackSpace
@ GHOST_kKey0
@ GHOST_kKeyF5
@ GHOST_kKeyF19
@ GHOST_kKeyDownPage
@ GHOST_kKeyGrLess
@ GHOST_kKeyDownArrow
@ GHOST_kKeyRightOS
@ GHOST_kKeyQ
@ GHOST_kKeyClear
@ GHOST_kKeyNumpadPeriod
@ GHOST_kKeyF12
@ GHOST_kKeyF1
@ GHOST_kKeyF
@ GHOST_kKeyU
@ GHOST_kKeyNumpadAsterisk
@ GHOST_kKeyF22
@ GHOST_kKeyB
@ GHOST_kKeyPrintScreen
@ GHOST_kKeyLeftControl
@ GHOST_kKeyLeftBracket
@ GHOST_kKey1
@ GHOST_kKeyM
@ GHOST_kKeyTab
@ GHOST_kKey8
@ GHOST_kKeyComma
@ GHOST_kKeyRightBracket
@ GHOST_kKeyBackslash
@ GHOST_kKeyLinefeed
@ GHOST_kKeyNumpad2
@ GHOST_kKeyLeftHyper
@ GHOST_kKeyX
@ GHOST_kKeyL
@ GHOST_kKeyRightAlt
@ GHOST_kKeyY
@ GHOST_kKeyPeriod
@ GHOST_kKeyNumpadPlus
@ GHOST_kKeyUpPage
@ GHOST_kKey9
@ GHOST_kKeyNumpad5
@ GHOST_kKeyLeftArrow
@ GHOST_kKeyF17
@ GHOST_kKeyD
@ GHOST_kKeyEqual
@ GHOST_kKey7
@ GHOST_kKeyS
@ GHOST_kKeyF8
@ GHOST_kKeyF18
@ GHOST_kKeyHome
@ GHOST_kKeyNumpad6
@ GHOST_kKeyF14
@ GHOST_kKeyNumpad8
@ GHOST_kKeyNumpad9
@ GHOST_kKeyF15
@ GHOST_kKeyEnd
@ GHOST_kKeyUpArrow
@ GHOST_kKeyH
@ GHOST_kKeyDelete
@ GHOST_kKeyF16
@ GHOST_kKeyNumpad0
@ GHOST_kKeyA
@ GHOST_kKey2
@ GHOST_kKeyMediaFirst
@ GHOST_kKeyK
@ GHOST_kKeyNumpad7
@ GHOST_kKeyRightControl
@ GHOST_kKeyEsc
@ GHOST_kKeyPlus
@ GHOST_kKeyUnknown
@ GHOST_kKeyScrollLock
@ GHOST_kKeySlash
@ GHOST_kKeyV
@ GHOST_kKeyF7
@ GHOST_kKeyNumpadEnter
@ GHOST_kKeyNumpadMinus
@ GHOST_kKeyRightHyper
@ GHOST_kKeyF10
@ GHOST_kKeyLeftShift
@ GHOST_kKeyF3
@ GHOST_kKeyF2
@ GHOST_kKeyMediaLast
@ GHOST_kKeyF4
@ GHOST_kKeyE
@ GHOST_kKeySpace
@ GHOST_kKeyF21
const void * GHOST_TEventDataPtr
int GHOST_TEmbedderWindowID
GHOST_TDrawingContextType
@ GHOST_kDrawingContextTypeNone
GHOST_TWindowOrder
@ GHOST_kWindowOrderTop
@ GHOST_kWindowOrderBottom
GHOST_TModifierKey
@ GHOST_kModifierKeyNum
@ GHOST_kModifierKeyRightControl
@ GHOST_kModifierKeyLeftControl
@ GHOST_kModifierKeyRightHyper
@ GHOST_kModifierKeyRightAlt
@ GHOST_kModifierKeyRightShift
@ GHOST_kModifierKeyLeftAlt
@ GHOST_kModifierKeyLeftShift
@ GHOST_kModifierKeyLeftOS
@ GHOST_kModifierKeyRightOS
@ GHOST_kModifierKeyLeftHyper
GHOST_TSuccess
Definition GHOST_Types.h:57
@ GHOST_kFailure
Definition GHOST_Types.h:57
@ GHOST_kSuccess
Definition GHOST_Types.h:57
GHOST_TFireTimeConstant
@ GHOST_kFireTimeNever
GHOST_GPUFlags
@ GHOST_gpuVSyncIsOverridden
@ GHOST_gpuStereoVisual
@ GHOST_gpuDebugContext
void(* GHOST_TBacktraceFn)(void *file_handle)
Definition GHOST_Types.h:53
GHOST_TUserSpecialDirTypes
@ GHOST_kUserSpecialDirDesktop
@ GHOST_kUserSpecialDirMusic
@ GHOST_kUserSpecialDirPictures
@ GHOST_kUserSpecialDirVideos
@ GHOST_kUserSpecialDirDownloads
@ GHOST_kUserSpecialDirCaches
@ GHOST_kUserSpecialDirDocuments
GHOST_TGrabCursorMode
@ GHOST_kGrabWrap
@ GHOST_kGrabDisable
@ GHOST_kGrabHide
@ GHOST_kGrabNormal
GHOST_TDragnDropTypes
@ GHOST_kDragnDropTypeUnknown
@ GHOST_kDragnDropTypeFilenames
@ GHOST_kDragnDropTypeBitmap
@ GHOST_kDragnDropTypeString
GHOST_TButton
@ GHOST_kButtonMaskRight
@ GHOST_kButtonMaskButton4
@ GHOST_kButtonMaskNone
@ GHOST_kButtonMaskLeft
@ GHOST_kButtonMaskButton7
@ GHOST_kButtonMaskButton6
@ GHOST_kButtonMaskButton5
@ GHOST_kButtonMaskMiddle
GHOST_TVSyncModes
@ GHOST_kVSyncModeUnset
@ GHOST_kVSyncModeAuto
@ GHOST_kVSyncModeOff
@ GHOST_kVSyncModeOn
GHOST_TProgress
@ GHOST_kStarting
@ GHOST_kNotStarted
@ GHOST_kFinishing
@ GHOST_kFinished
@ GHOST_kInProgress
GHOST_TConsoleWindowState
@ GHOST_kConsoleWindowStateShow
@ GHOST_kConsoleWindowStateHideForNonConsoleLaunch
@ GHOST_kConsoleWindowStateHide
@ GHOST_kConsoleWindowStateToggle
GHOST_TTabletAPI
@ GHOST_kTabletAutomatic
@ GHOST_kTabletWinPointer
@ GHOST_kTabletWintab
GHOST_DialogOptions
@ GHOST_DialogError
@ GHOST_DialogWarning
GHOST_TWindowDecorationStyleFlags
@ GHOST_kDecorationNone
@ GHOST_kDecorationColoredTitleBar
Read Guarded memory(de)allocation.
SIMD_FORCE_INLINE btVector3 transform(const btVector3 &point) const
unsigned long long int uint64_t
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition btDbvt.cpp:52
static ushort indices[]
void count_indices(Span< int > indices, MutableSpan< int > counts)
const char * name
GHOST_TVSyncModes vsync
const uint8_t * data
Definition GHOST_Types.h:64
void(* free_fn)(struct GHOST_CursorGenerator *cursor_generator)
GHOST_TUserDataPtr user_data
GHOST_TVSyncModes vsync
GHOST_TDrawingContextType context_type
GHOST_GPUDevice preferred_device
GHOST_TabletData tablet
GHOST_TabletData tablet
GHOST_TDragnDropTypes dataType
GHOST_TDragnDropDataPtr data
std::string composite
GHOST_TTrackpadEventSubTypes subtype
GHOST_TEventWheelAxis axis
GHOST_TTabletMode Active