Blender V4.5
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# ifdef __APPLE__
16# include <MoltenVK/vk_mvk_moltenvk.h>
17# else
18# include <vulkan/vulkan_core.h>
19# endif
20#endif
21
22/* This is used by `GHOST_C-api.h` too, cannot use C++ conventions. */
23// NOLINTBEGIN: modernize-use-using
24
25#include "MEM_guardedalloc.h"
26
27#if defined(__cplusplus)
28# define GHOST_DECLARE_HANDLE(name) \
29 typedef struct name##__ { \
30 int unused; \
31 MEM_CXX_CLASS_ALLOC_FUNCS(#name) \
32 } *name
33#else
34# define GHOST_DECLARE_HANDLE(name) \
35 typedef struct name##__ { \
36 int unused; \
37 } *name
38#endif
39
46
47GHOST_DECLARE_HANDLE(GHOST_SystemHandle);
48GHOST_DECLARE_HANDLE(GHOST_TimerTaskHandle);
49GHOST_DECLARE_HANDLE(GHOST_WindowHandle);
50GHOST_DECLARE_HANDLE(GHOST_EventHandle);
51GHOST_DECLARE_HANDLE(GHOST_RectangleHandle);
52GHOST_DECLARE_HANDLE(GHOST_EventConsumerHandle);
53GHOST_DECLARE_HANDLE(GHOST_ContextHandle);
54GHOST_DECLARE_HANDLE(GHOST_XrContextHandle);
55
56typedef void (*GHOST_TBacktraceFn)(void *file_handle);
57
61typedef struct {
63 const uint8_t *data;
64 int data_size[2];
65 int hot_spot[2];
67
68typedef enum {
72
77
78typedef void *GHOST_TUserDataPtr;
79
81
133
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)
144
145/* Xtilt and Ytilt represent how much the pen is tilted away from
146 * vertically upright in either the X or Y direction, with X and Y the
147 * axes of the tablet surface.
148 * In other words, Xtilt and Ytilt are components of a vector created by projecting
149 * the pen's angle in 3D space vertically downwards on to the XY plane
150 * --Matt
151 */
157
158typedef enum {
160 /* Show as Windows Ink to users to match "Use Windows Ink" in tablet utilities,
161 * but we use the dependent Windows Pointer API. */
165
166typedef struct GHOST_TabletData {
167 GHOST_TTabletMode Active; /* 0=None, 1=Stylus, 2=Eraser */
168 float Pressure; /* range 0.0 (not touching) to 1.0 (full pressure) */
169 float Xtilt; /* range -1.0 (left) to +1.0 (right) */
170 float Ytilt; /* range -1.0 (away from user) to +1.0 (toward user) */
172
174 GHOST_kTabletModeNone, /* No cursor in range */
175 1.0f, /* Pressure */
176 0.0f, /* Xtilt */
177 0.0f}; /* Ytilt */
178
184
185typedef enum { GHOST_kFireTimeNever = 0xFFFFFFFF } GHOST_TFireTimeConstant;
186
200
211
218
220
221typedef enum {
223#if defined(WITH_OPENGL_BACKEND)
224 GHOST_kDrawingContextTypeOpenGL,
225#endif
226#ifdef WIN32
227 GHOST_kDrawingContextTypeD3D,
228#endif
229#if defined(__APPLE__) && defined(WITH_METAL_BACKEND)
230 GHOST_kDrawingContextTypeMetal,
231#endif
232#ifdef WITH_VULKAN_BACKEND
233 GHOST_kDrawingContextTypeVulkan,
234#endif
236
250
328
329typedef enum {
330#define GHOST_kStandardCursorFirstCursor int(GHOST_kStandardCursorDefault)
377
378#define GHOST_kStandardCursorNumCursors (int(GHOST_kStandardCursorCustom) + 1)
380
381typedef enum {
388
397
398 /* Number keys. */
409
412
413 /* Character keys. */
440
445
446#define _GHOST_KEY_MODIFIER_MIN GHOST_kKeyLeftShift
447 /* Modifiers: See #GHOST_KEY_MODIFIER_CHECK. */
454 GHOST_kKeyLeftOS, /* Command key on Apple, Windows key(s) on Windows. */
456
457 GHOST_kKeyLeftHyper, /* Additional modifier on Wayland & X11, see !136340. */
459#define _GHOST_KEY_MODIFIER_MAX GHOST_kKeyRightHyper
460
461 GHOST_kKeyGrLess, /* German PC only! */
462 GHOST_kKeyApp, /* Also known as menu key. */
463
467
472
475
482
483 /* Numpad keys. */
500
501 /* Function keys. */
526
527 /* Multimedia keypad buttons. */
532} GHOST_TKey;
533
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)
539
553
554#define GHOST_GRAB_NEEDS_SOFTWARE_CURSOR_FOR_WARP(grab) ((grab) == GHOST_kGrabWrap)
555
556typedef enum {
559 GHOST_kAxisX = (1 << 0),
560 GHOST_kAxisY = (1 << 1),
562
563typedef const void *GHOST_TEventDataPtr;
564
573
580
585
592
601
616
617typedef enum {
619 GHOST_kDragnDropTypeFilenames, /* Array of strings representing file names (full path). */
620 GHOST_kDragnDropTypeString, /* Unformatted text UTF8 string. */
621 GHOST_kDragnDropTypeBitmap /* Bitmap image data. */
623
625
636
651
652typedef struct {
653 int count;
654 uint8_t **strings;
656
667
668#ifdef WITH_INPUT_NDOF
669typedef struct {
671 /* Each component normally ranges from -1 to +1, but can exceed that.
672 * These use blender standard view coordinates,
673 * with positive rotations being CCW about the axis. */
674 /* translation: */
675 float tx, ty, tz;
676 /* rotation:
677 * - `axis = (rx,ry,rz).normalized`
678 * - `amount = (rx,ry,rz).magnitude` [in revolutions, 1.0 = 360 deg]. */
679 float rx, ry, rz;
681 float dt;
684} GHOST_TEventNDOFMotionData;
685
686typedef enum { GHOST_kPress, GHOST_kRelease } GHOST_TButtonAction;
687/* Good for mouse or other buttons too? */
688
689typedef struct {
690 GHOST_TButtonAction action;
691 short button;
692} GHOST_TEventNDOFButtonData;
693#endif // WITH_INPUT_NDOF
694
695typedef struct {
698
700 char utf8_buf[6];
701
710
721
726
735
741
746
747#ifdef WITH_VULKAN_BACKEND
748typedef struct {
750 VkImage image;
752 VkSurfaceFormatKHR surface_format;
754 VkExtent2D extent;
756 VkSemaphore acquire_semaphore;
758 VkSemaphore present_semaphore;
760 VkFence submission_fence;
761} GHOST_VulkanSwapChainData;
762
763typedef enum {
770 GHOST_kVulkanXRModeCPU,
771
778 GHOST_kVulkanXRModeFD,
779
786 GHOST_kVulkanXRModeWin32,
787} GHOST_TVulkanXRModes;
788
789typedef struct {
794 GHOST_TVulkanXRModes data_transfer_mode;
795
799 VkExtent2D extent;
800
801 union {
802 struct {
803
808 void *image_data;
809 } cpu;
810 struct {
815 VkImage vk_image_blender;
816
821 bool new_handle;
822
827 uint64_t image_handle;
828
832 VkFormat image_format;
833
837 VkDeviceSize memory_size;
838
842 VkDeviceSize memory_offset;
843 } gpu;
844 };
845
846} GHOST_VulkanOpenXRData;
847
848typedef struct {
849 VkInstance instance;
850 VkPhysicalDevice physical_device;
851 VkDevice device;
852 uint32_t graphic_queue_family;
853 VkQueue queue;
854 void *queue_mutex;
855} GHOST_VulkanHandles;
856
857#endif
858
859typedef enum {
864
865typedef struct {
866 int flags;
868
869#ifdef _WIN32
870typedef void *GHOST_TEmbedderWindowID;
871#endif // _WIN32
872
873#ifndef _WIN32
874/* I can't use "Window" from `X11/Xlib.h`
875 * because it conflicts with Window defined in `winlay.h`. */
877#endif // _WIN32
878
884#ifdef __cplusplus
885class GHOST_ITimerTask;
886typedef void (*GHOST_TimerProcPtr)(GHOST_ITimerTask *task, uint64_t time);
887#else
888struct GHOST_TimerTaskHandle__;
889typedef void (*GHOST_TimerProcPtr)(struct GHOST_TimerTaskHandle__ *task, uint64_t time);
890#endif
891
892#ifdef WITH_XR_OPENXR
893
894struct GHOST_XrDrawViewInfo;
895struct GHOST_XrError;
903typedef enum GHOST_TXrGraphicsBinding {
904 GHOST_kXrGraphicsUnknown = 0,
905 GHOST_kXrGraphicsOpenGL,
906 GHOST_kXrGraphicsVulkan,
907# ifdef WIN32
908 GHOST_kXrGraphicsOpenGLD3D11,
909 GHOST_kXrGraphicsVulkanD3D11,
910# endif
911 /* For later */
912 // GHOST_kXrGraphicsVulkan,
913} GHOST_TXrGraphicsBinding;
914
915typedef void (*GHOST_XrErrorHandlerFn)(const struct GHOST_XrError *);
916
917typedef void (*GHOST_XrSessionCreateFn)(void);
918typedef void (*GHOST_XrSessionExitFn)(void *customdata);
919typedef void (*GHOST_XrCustomdataFreeFn)(void *customdata);
920
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);
926
931typedef const GHOST_TXrGraphicsBinding *GHOST_XrGraphicsBindingCandidates;
932
933typedef struct {
934 bool is_active;
935 float position[3];
936 /* Blender convention (w, x, y, z) */
937 float orientation_quat[4];
938} GHOST_XrPose;
939
940enum {
941 GHOST_kXrContextDebug = (1 << 0),
942 GHOST_kXrContextDebugTime = (1 << 1),
943# ifdef WIN32
944 /* Needed to avoid issues with the SteamVR OpenGL graphics binding
945 * (use DirectX fallback instead). */
946 GHOST_kXrContextGpuNVIDIA = (1 << 2),
947# endif
948};
949
950typedef struct {
951 const GHOST_XrGraphicsBindingCandidates gpu_binding_candidates;
952 unsigned int gpu_binding_candidates_count;
953
954 unsigned int context_flag;
955} GHOST_XrContextCreateInfo;
956
957typedef struct {
958 GHOST_XrPose base_pose;
959
960 GHOST_XrSessionCreateFn create_fn;
961 GHOST_XrSessionExitFn exit_fn;
962 void *exit_customdata;
963} GHOST_XrSessionBeginInfo;
964
966typedef enum GHOST_TXrSwapchainFormat {
967 GHOST_kXrSwapchainFormatRGBA8,
968 GHOST_kXrSwapchainFormatRGBA16,
969 GHOST_kXrSwapchainFormatRGBA16F,
970 GHOST_kXrSwapchainFormatRGB10_A2,
971} GHOST_TXrSwapchainFormat;
972
973typedef struct GHOST_XrDrawViewInfo {
974 int ofsx, ofsy;
975 int width, height;
976
977 GHOST_XrPose eye_pose;
978 GHOST_XrPose local_pose;
979
980 struct {
981 float angle_left, angle_right;
982 float angle_up, angle_down;
983 } fov;
984
985 GHOST_TXrSwapchainFormat swapchain_format;
987 char expects_srgb_buffer;
988
991 char view_idx;
992} GHOST_XrDrawViewInfo;
993
994typedef struct GHOST_XrError {
995 const char *user_message;
996
997 void *customdata;
998} GHOST_XrError;
999
1000typedef struct GHOST_XrActionSetInfo {
1001 const char *name;
1002
1003 GHOST_XrCustomdataFreeFn customdata_free_fn;
1004 void *customdata; /* wmXrActionSet */
1005} GHOST_XrActionSetInfo;
1006
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;
1016
1017typedef struct GHOST_XrActionInfo {
1018 const char *name;
1019 GHOST_XrActionType type;
1020 uint32_t count_subaction_paths;
1021 const char **subaction_paths;
1023 void *states;
1025 float *float_thresholds;
1026 int16_t *axis_flags;
1027
1028 GHOST_XrCustomdataFreeFn customdata_free_fn;
1029 void *customdata; /* wmXrAction */
1030} GHOST_XrActionInfo;
1031
1032typedef struct GHOST_XrActionBindingInfo {
1033 const char *component_path;
1034 float float_threshold;
1035 int16_t axis_flag;
1036 GHOST_XrPose pose;
1037} GHOST_XrActionBindingInfo;
1038
1039typedef struct GHOST_XrActionProfileInfo {
1040 const char *action_name;
1041 const char *profile_path;
1042 uint32_t count_subaction_paths;
1043 const char **subaction_paths;
1045 const GHOST_XrActionBindingInfo *bindings;
1046} GHOST_XrActionProfileInfo;
1047
1048typedef struct GHOST_XrControllerModelVertex {
1049 float position[3];
1050 float normal[3];
1051} GHOST_XrControllerModelVertex;
1052
1053typedef struct GHOST_XrControllerModelComponent {
1055 float transform[4][4];
1056 uint32_t vertex_offset;
1057 uint32_t vertex_count;
1058 uint32_t index_offset;
1059 uint32_t index_count;
1060} GHOST_XrControllerModelComponent;
1061
1062typedef struct GHOST_XrControllerModelData {
1063 uint32_t count_vertices;
1064 const GHOST_XrControllerModelVertex *vertices;
1066 const uint32_t *indices;
1067 uint32_t count_components;
1068 const GHOST_XrControllerModelComponent *components;
1069} GHOST_XrControllerModelData;
1070
1071#endif /* WITH_XR_OPENXR */
1072
1073// NOLINTEND: modernize-use-using
1074
1083typedef enum {
1084
1086 /* Used internally, never sent or used as an index. */
1088
1089 /* These two are available from any 3Dconnexion device. */
1092
1093 /* Standard views. */
1100
1101 /* 90 degrees rotations. */
1104
1105 /* More views. */
1108
1109 /* General-purpose buttons.
1110 * Users can assign functions via keymap editor. */
1121
1122 /* Keyboard keys. */
1127
1128 /* Device control. */
1134
1135 /* New spin buttons. */
1140
1141 /* Keyboard keys. */
1144
1145 /* Keyboard Pro special buttons. */
1158
1159 /* General-purpose buttons.
1160 * Users can assign functions via keymap editor. */
1163
1164 /* Store views. */
1171
1172 /* Keyboard keys. */
1175
1176 /* Numpad Pro special buttons. */
1181
1183
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:78
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_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
Definition GHOST_Types.h:89
@ GHOST_kCapabilityWindowPosition
Definition GHOST_Types.h:97
@ GHOST_kCapabilityKeyboardHyperKey
@ GHOST_kCapabilityGPUReadFrontBuffer
@ GHOST_kCapabilityCursorWarp
Definition GHOST_Types.h:93
@ GHOST_kCapabilityInputIME
@ GHOST_kCapabilityTrackpadPhysicalDirection
@ GHOST_kCapabilityClipboardImages
@ GHOST_kCapabilityPrimaryClipboard
@ 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:34
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:80
@ GHOST_kFailure
Definition GHOST_Types.h:80
@ GHOST_kSuccess
Definition GHOST_Types.h:80
GHOST_TFireTimeConstant
@ GHOST_kFireTimeNever
GHOST_GPUFlags
Definition GHOST_Types.h:68
@ GHOST_gpuStereoVisual
Definition GHOST_Types.h:69
@ GHOST_gpuDebugContext
Definition GHOST_Types.h:70
void(* GHOST_TBacktraceFn)(void *file_handle)
Definition GHOST_Types.h:56
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_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
Definition GHOST_Types.h:73
@ GHOST_DialogError
Definition GHOST_Types.h:75
@ GHOST_DialogWarning
Definition GHOST_Types.h:74
GHOST_TWindowDecorationStyleFlags
@ GHOST_kDecorationNone
@ GHOST_kDecorationColoredTitleBar
Read Guarded memory(de)allocation.
float progress
Definition WM_types.hh:1019
SIMD_FORCE_INLINE btVector3 transform(const btVector3 &point) const
unsigned long long int uint64_t
static ushort indices[]
void count_indices(Span< int > indices, MutableSpan< int > counts)
const uint8_t * data
Definition GHOST_Types.h:63
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