13#ifdef WITH_VULKAN_BACKEND
15# include <MoltenVK/vk_mvk_moltenvk.h>
17# include <vulkan/vulkan.h>
24#ifdef WITH_CXX_GUARDEDALLOC
34#if defined(WITH_CXX_GUARDEDALLOC) && defined(__cplusplus)
35# define GHOST_DECLARE_HANDLE(name) \
36 typedef struct name##__ { \
38 MEM_CXX_CLASS_ALLOC_FUNCS(#name) \
41# define GHOST_DECLARE_HANDLE(name) \
42 typedef struct name##__ { \
136#define GHOST_CAPABILITY_FLAG_ALL \
137 (GHOST_kCapabilityCursorWarp | GHOST_kCapabilityWindowPosition | \
138 GHOST_kCapabilityPrimaryClipboard | GHOST_kCapabilityGPUReadFrontBuffer | \
139 GHOST_kCapabilityClipboardImages | GHOST_kCapabilityDesktopSample | \
140 GHOST_kCapabilityInputIME | GHOST_kCapabilityTrackpadPhysicalDirection)
218#if defined(WITH_OPENGL_BACKEND)
219 GHOST_kDrawingContextTypeOpenGL,
222 GHOST_kDrawingContextTypeD3D,
224#if defined(__APPLE__) && defined(WITH_METAL_BACKEND)
225 GHOST_kDrawingContextTypeMetal,
227#ifdef WITH_VULKAN_BACKEND
228 GHOST_kDrawingContextTypeVulkan,
243#define GHOST_kButtonNum (int(GHOST_kButtonMaskButton7) + 1)
271#ifdef WITH_INPUT_NDOF
277 GHOST_kEventNDOFMotion,
283 GHOST_kEventNDOFButton,
321#define GHOST_kNumEventTypes (GHOST_kEventImeCompositionEnd + 1)
325#define GHOST_kStandardCursorFirstCursor int(GHOST_kStandardCursorDefault)
372#define GHOST_kStandardCursorNumCursors (int(GHOST_kStandardCursorCustom) + 1)
440#define _GHOST_KEY_MODIFIER_MIN GHOST_kKeyLeftShift
450#define _GHOST_KEY_MODIFIER_MAX GHOST_kKeyRightOS
525#define GHOST_KEY_MODIFIER_NUM ((_GHOST_KEY_MODIFIER_MAX - _GHOST_KEY_MODIFIER_MIN) + 1)
526#define GHOST_KEY_MODIFIER_TO_INDEX(key) ((unsigned int)(key)-_GHOST_KEY_MODIFIER_MIN)
527#define GHOST_KEY_MODIFIER_FROM_INDEX(key) \
528 (GHOST_TKey)(((unsigned int)(key) + _GHOST_KEY_MODIFIER_MIN))
529#define GHOST_KEY_MODIFIER_CHECK(key) (GHOST_KEY_MODIFIER_TO_INDEX(key) < GHOST_KEY_MODIFIER_NUM)
545#define GHOST_GRAB_NEEDS_SOFTWARE_CURSOR_FOR_WARP(grab) ((grab) == GHOST_kGrabWrap)
651#ifdef WITH_INPUT_NDOF
667} GHOST_TEventNDOFMotionData;
669typedef enum { GHOST_kPress, GHOST_kRelease } GHOST_TButtonAction;
673 GHOST_TButtonAction action;
675} GHOST_TEventNDOFButtonData;
731#ifdef WITH_VULKAN_BACKEND
741} GHOST_VulkanSwapChainData;
773struct GHOST_TimerTaskHandle__;
779struct GHOST_XrDrawViewInfo;
788typedef enum GHOST_TXrGraphicsBinding {
789 GHOST_kXrGraphicsUnknown = 0,
790 GHOST_kXrGraphicsOpenGL,
792 GHOST_kXrGraphicsD3D11,
796} GHOST_TXrGraphicsBinding;
798typedef void (*GHOST_XrErrorHandlerFn)(
const struct GHOST_XrError *);
800typedef void (*GHOST_XrSessionCreateFn)(void);
801typedef void (*GHOST_XrSessionExitFn)(
void *customdata);
802typedef void (*GHOST_XrCustomdataFreeFn)(
void *customdata);
804typedef void *(*GHOST_XrGraphicsContextBindFn)(void);
805typedef void (*GHOST_XrGraphicsContextUnbindFn)(GHOST_ContextHandle graphics_context);
806typedef void (*GHOST_XrDrawViewFn)(
const struct GHOST_XrDrawViewInfo *
draw_view,
void *customdata);
807typedef bool (*GHOST_XrPassthroughEnabledFn)(
void *customdata);
808typedef void (*GHOST_XrDisablePassthroughFn)(
void *customdata);
814typedef const GHOST_TXrGraphicsBinding *GHOST_XrGraphicsBindingCandidates;
820 float orientation_quat[4];
824 GHOST_kXrContextDebug = (1 << 0),
825 GHOST_kXrContextDebugTime = (1 << 1),
829 GHOST_kXrContextGpuNVIDIA = (1 << 2),
834 const GHOST_XrGraphicsBindingCandidates gpu_binding_candidates;
835 unsigned int gpu_binding_candidates_count;
837 unsigned int context_flag;
838} GHOST_XrContextCreateInfo;
841 GHOST_XrPose base_pose;
843 GHOST_XrSessionCreateFn create_fn;
844 GHOST_XrSessionExitFn exit_fn;
845 void *exit_customdata;
846} GHOST_XrSessionBeginInfo;
849typedef enum GHOST_TXrSwapchainFormat {
850 GHOST_kXrSwapchainFormatRGBA8,
851 GHOST_kXrSwapchainFormatRGBA16,
852 GHOST_kXrSwapchainFormatRGBA16F,
853 GHOST_kXrSwapchainFormatRGB10_A2,
854} GHOST_TXrSwapchainFormat;
856typedef struct GHOST_XrDrawViewInfo {
860 GHOST_XrPose eye_pose;
861 GHOST_XrPose local_pose;
864 float angle_left, angle_right;
865 float angle_up, angle_down;
868 GHOST_TXrSwapchainFormat swapchain_format;
870 char expects_srgb_buffer;
875} GHOST_XrDrawViewInfo;
877typedef struct GHOST_XrError {
878 const char *user_message;
883typedef struct GHOST_XrActionSetInfo {
886 GHOST_XrCustomdataFreeFn customdata_free_fn;
888} GHOST_XrActionSetInfo;
892typedef enum GHOST_XrActionType {
893 GHOST_kXrActionTypeBooleanInput = 1,
894 GHOST_kXrActionTypeFloatInput = 2,
895 GHOST_kXrActionTypeVector2fInput = 3,
896 GHOST_kXrActionTypePoseInput = 4,
897 GHOST_kXrActionTypeVibrationOutput = 100,
900typedef struct GHOST_XrActionInfo {
902 GHOST_XrActionType type;
904 const char **subaction_paths;
908 float *float_thresholds;
911 GHOST_XrCustomdataFreeFn customdata_free_fn;
915typedef struct GHOST_XrActionBindingInfo {
916 const char *component_path;
917 float float_threshold;
920} GHOST_XrActionBindingInfo;
922typedef struct GHOST_XrActionProfileInfo {
923 const char *action_name;
924 const char *profile_path;
926 const char **subaction_paths;
928 const GHOST_XrActionBindingInfo *bindings;
929} GHOST_XrActionProfileInfo;
931typedef struct GHOST_XrControllerModelVertex {
934} GHOST_XrControllerModelVertex;
936typedef struct GHOST_XrControllerModelComponent {
938 float transform[4][4];
943} GHOST_XrControllerModelComponent;
945typedef struct GHOST_XrControllerModelData {
947 const GHOST_XrControllerModelVertex *vertices;
951 const GHOST_XrControllerModelComponent *components;
952} GHOST_XrControllerModelData;
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_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_kCapabilityGPUReadFrontBuffer
@ GHOST_kCapabilityCursorWarp
@ GHOST_kCapabilityInputIME
@ GHOST_kCapabilityTrackpadPhysicalDirection
@ GHOST_kCapabilityClipboardImages
@ GHOST_kCapabilityPrimaryClipboard
@ 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
struct GHOST_TabletData GHOST_TabletData
@ GHOST_kWindowOrderBottom
@ GHOST_kModifierKeyRightControl
@ GHOST_kModifierKeyLeftControl
@ GHOST_kModifierKeyRightAlt
@ GHOST_kModifierKeyRightShift
@ GHOST_kModifierKeyLeftAlt
@ GHOST_kModifierKeyLeftShift
@ GHOST_kModifierKeyLeftOS
@ GHOST_kModifierKeyRightOS
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
Read Guarded memory(de)allocation.
input_tx image(0, GPU_RGBA16F, Qualifier::WRITE, ImageType::FLOAT_2D, "preview_img") .compute_source("compositor_compute_preview.glsl") .do_static_compilation(true)
direct_radiance_1_tx direct_radiance_3_tx indirect_radiance_2_tx radiance_feedback_img draw_fullscreen fragment_source("eevee_deferred_combine_frag.glsl") .specialization_constant(Type out_radiance draw_view
void count_indices(Span< int > indices, MutableSpan< int > counts)
unsigned __int64 uint64_t
GHOST_TDrawingContextType context_type
GHOST_GPUDevice preferred_device
GHOST_TDragnDropTypes dataType
GHOST_TDragnDropDataPtr data
GHOST_TUserDataPtr composite_len
GHOST_TUserDataPtr composite
GHOST_TTrackpadEventSubTypes subtype