32#if !defined(RENDERDOC_NO_STDINT)
36#if defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER)
37#define RENDERDOC_CC __cdecl
38#elif defined(__linux__)
40#elif defined(__APPLE__)
43#error "Unknown platform"
57#define RENDERDOC_ShaderDebugMagicValue_struct \
59 0xeab25520, 0x6670, 0x4865, 0x84, 0x29, 0x6c, 0x8, 0x51, 0x54, 0x00, 0xff \
63#define RENDERDOC_ShaderDebugMagicValue_bytearray \
65 0x20, 0x55, 0xb2, 0xea, 0x70, 0x66, 0x65, 0x48, 0x84, 0x29, 0x6c, 0x8, 0x51, 0x54, 0x00, 0xff \
69#define RENDERDOC_ShaderDebugMagicValue_truncated 0x48656670eab25520ULL
75typedef enum RENDERDOC_CaptureOption {
82 eRENDERDOC_Option_AllowVSync = 0,
90 eRENDERDOC_Option_AllowFullscreen = 1,
99 eRENDERDOC_Option_APIValidation = 2,
100 eRENDERDOC_Option_DebugDeviceMode = 2,
108 eRENDERDOC_Option_CaptureCallstacks = 3,
118 eRENDERDOC_Option_CaptureCallstacksOnlyDraws = 4,
127 eRENDERDOC_Option_DelayForDebugger = 5,
141 eRENDERDOC_Option_VerifyBufferAccess = 6,
146 eRENDERDOC_Option_VerifyMapWrites = eRENDERDOC_Option_VerifyBufferAccess,
155 eRENDERDOC_Option_HookIntoChildren = 7,
165 eRENDERDOC_Option_RefAllResources = 8,
181 eRENDERDOC_Option_SaveAllInitials = 9,
197 eRENDERDOC_Option_CaptureAllCmdLists = 10,
205 eRENDERDOC_Option_DebugOutputMute = 11,
214 eRENDERDOC_Option_AllowUnsupportedVendorExtensions = 12,
216} RENDERDOC_CaptureOption;
222typedef int(RENDERDOC_CC *pRENDERDOC_SetCaptureOptionU32)(RENDERDOC_CaptureOption opt, uint32_t val);
223typedef int(RENDERDOC_CC *pRENDERDOC_SetCaptureOptionF32)(RENDERDOC_CaptureOption opt,
float val);
228typedef uint32_t(RENDERDOC_CC *pRENDERDOC_GetCaptureOptionU32)(RENDERDOC_CaptureOption opt);
233typedef float(RENDERDOC_CC *pRENDERDOC_GetCaptureOptionF32)(RENDERDOC_CaptureOption opt);
235typedef enum RENDERDOC_InputButton {
237 eRENDERDOC_Key_0 = 0x30,
238 eRENDERDOC_Key_1 = 0x31,
239 eRENDERDOC_Key_2 = 0x32,
240 eRENDERDOC_Key_3 = 0x33,
241 eRENDERDOC_Key_4 = 0x34,
242 eRENDERDOC_Key_5 = 0x35,
243 eRENDERDOC_Key_6 = 0x36,
244 eRENDERDOC_Key_7 = 0x37,
245 eRENDERDOC_Key_8 = 0x38,
246 eRENDERDOC_Key_9 = 0x39,
249 eRENDERDOC_Key_A = 0x41,
250 eRENDERDOC_Key_B = 0x42,
251 eRENDERDOC_Key_C = 0x43,
252 eRENDERDOC_Key_D = 0x44,
253 eRENDERDOC_Key_E = 0x45,
254 eRENDERDOC_Key_F = 0x46,
255 eRENDERDOC_Key_G = 0x47,
256 eRENDERDOC_Key_H = 0x48,
257 eRENDERDOC_Key_I = 0x49,
258 eRENDERDOC_Key_J = 0x4A,
259 eRENDERDOC_Key_K = 0x4B,
260 eRENDERDOC_Key_L = 0x4C,
261 eRENDERDOC_Key_M = 0x4D,
262 eRENDERDOC_Key_N = 0x4E,
263 eRENDERDOC_Key_O = 0x4F,
264 eRENDERDOC_Key_P = 0x50,
265 eRENDERDOC_Key_Q = 0x51,
266 eRENDERDOC_Key_R = 0x52,
267 eRENDERDOC_Key_S = 0x53,
268 eRENDERDOC_Key_T = 0x54,
269 eRENDERDOC_Key_U = 0x55,
270 eRENDERDOC_Key_V = 0x56,
271 eRENDERDOC_Key_W = 0x57,
272 eRENDERDOC_Key_X = 0x58,
273 eRENDERDOC_Key_Y = 0x59,
274 eRENDERDOC_Key_Z = 0x5A,
278 eRENDERDOC_Key_NonPrintable = 0x100,
280 eRENDERDOC_Key_Divide,
281 eRENDERDOC_Key_Multiply,
282 eRENDERDOC_Key_Subtract,
300 eRENDERDOC_Key_Insert,
301 eRENDERDOC_Key_Delete,
302 eRENDERDOC_Key_PageUp,
303 eRENDERDOC_Key_PageDn,
305 eRENDERDOC_Key_Backspace,
307 eRENDERDOC_Key_PrtScrn,
308 eRENDERDOC_Key_Pause,
311} RENDERDOC_InputButton;
316typedef void(RENDERDOC_CC *pRENDERDOC_SetFocusToggleKeys)(RENDERDOC_InputButton *keys,
int num);
321typedef void(RENDERDOC_CC *pRENDERDOC_SetCaptureKeys)(RENDERDOC_InputButton *keys,
int num);
323typedef enum RENDERDOC_OverlayBits {
325 eRENDERDOC_Overlay_Enabled = 0x1,
328 eRENDERDOC_Overlay_FrameRate = 0x2,
331 eRENDERDOC_Overlay_FrameNumber = 0x4,
334 eRENDERDOC_Overlay_CaptureList = 0x8,
337 eRENDERDOC_Overlay_Default = (eRENDERDOC_Overlay_Enabled | eRENDERDOC_Overlay_FrameRate |
338 eRENDERDOC_Overlay_FrameNumber | eRENDERDOC_Overlay_CaptureList),
341 eRENDERDOC_Overlay_All = ~0U,
344 eRENDERDOC_Overlay_None = 0,
345} RENDERDOC_OverlayBits;
348typedef uint32_t(RENDERDOC_CC *pRENDERDOC_GetOverlayBits)();
350typedef void(RENDERDOC_CC *pRENDERDOC_MaskOverlayBits)(uint32_t And, uint32_t Or);
359typedef void(RENDERDOC_CC *pRENDERDOC_RemoveHooks)();
362typedef pRENDERDOC_RemoveHooks pRENDERDOC_Shutdown;
369typedef void(RENDERDOC_CC *pRENDERDOC_UnloadCrashHandler)();
388typedef void(RENDERDOC_CC *pRENDERDOC_SetCaptureFilePathTemplate)(
const char *pathtemplate);
391typedef const char *(RENDERDOC_CC *pRENDERDOC_GetCaptureFilePathTemplate)();
394typedef pRENDERDOC_SetCaptureFilePathTemplate pRENDERDOC_SetLogFilePathTemplate;
395typedef pRENDERDOC_GetCaptureFilePathTemplate pRENDERDOC_GetLogFilePathTemplate;
398typedef uint32_t(RENDERDOC_CC *pRENDERDOC_GetNumCaptures)();
414typedef uint32_t(RENDERDOC_CC *pRENDERDOC_GetCapture)(uint32_t idx,
char *filename,
415 uint32_t *pathlength, uint64_t *timestamp);
425typedef void(RENDERDOC_CC *pRENDERDOC_SetCaptureFileComments)(
const char *filePath,
426 const char *comments);
429typedef uint32_t(RENDERDOC_CC *pRENDERDOC_IsTargetControlConnected)();
435typedef pRENDERDOC_IsTargetControlConnected pRENDERDOC_IsRemoteAccessConnected;
446typedef uint32_t(RENDERDOC_CC *pRENDERDOC_LaunchReplayUI)(uint32_t connectTargetControl,
447 const char *cmdline);
452typedef void(RENDERDOC_CC *pRENDERDOC_GetAPIVersion)(
int *major,
int *minor,
int *patch);
461typedef void *RENDERDOC_DevicePointer;
466typedef void *RENDERDOC_WindowHandle;
475#define RENDERDOC_DEVICEPOINTER_FROM_VKINSTANCE(inst) (*((void **)(inst)))
479typedef void(RENDERDOC_CC *pRENDERDOC_SetActiveWindow)(RENDERDOC_DevicePointer device,
480 RENDERDOC_WindowHandle wndHandle);
483typedef void(RENDERDOC_CC *pRENDERDOC_TriggerCapture)();
486typedef void(RENDERDOC_CC *pRENDERDOC_TriggerMultiFrameCapture)(uint32_t numFrames);
506typedef void(RENDERDOC_CC *pRENDERDOC_StartFrameCapture)(RENDERDOC_DevicePointer device,
507 RENDERDOC_WindowHandle wndHandle);
512typedef uint32_t(RENDERDOC_CC *pRENDERDOC_IsFrameCapturing)();
517typedef uint32_t(RENDERDOC_CC *pRENDERDOC_EndFrameCapture)(RENDERDOC_DevicePointer device,
518 RENDERDOC_WindowHandle wndHandle);
524typedef uint32_t(RENDERDOC_CC *pRENDERDOC_DiscardFrameCapture)(RENDERDOC_DevicePointer device,
525 RENDERDOC_WindowHandle wndHandle);
540typedef enum RENDERDOC_Version {
541 eRENDERDOC_API_Version_1_0_0 = 10000,
542 eRENDERDOC_API_Version_1_0_1 = 10001,
543 eRENDERDOC_API_Version_1_0_2 = 10002,
544 eRENDERDOC_API_Version_1_1_0 = 10100,
545 eRENDERDOC_API_Version_1_1_1 = 10101,
546 eRENDERDOC_API_Version_1_1_2 = 10102,
547 eRENDERDOC_API_Version_1_2_0 = 10200,
548 eRENDERDOC_API_Version_1_3_0 = 10300,
549 eRENDERDOC_API_Version_1_4_0 = 10400,
550 eRENDERDOC_API_Version_1_4_1 = 10401,
580 pRENDERDOC_GetAPIVersion GetAPIVersion;
582 pRENDERDOC_SetCaptureOptionU32 SetCaptureOptionU32;
583 pRENDERDOC_SetCaptureOptionF32 SetCaptureOptionF32;
585 pRENDERDOC_GetCaptureOptionU32 GetCaptureOptionU32;
586 pRENDERDOC_GetCaptureOptionF32 GetCaptureOptionF32;
588 pRENDERDOC_SetFocusToggleKeys SetFocusToggleKeys;
589 pRENDERDOC_SetCaptureKeys SetCaptureKeys;
591 pRENDERDOC_GetOverlayBits GetOverlayBits;
592 pRENDERDOC_MaskOverlayBits MaskOverlayBits;
598 pRENDERDOC_Shutdown Shutdown;
599 pRENDERDOC_RemoveHooks RemoveHooks;
601 pRENDERDOC_UnloadCrashHandler UnloadCrashHandler;
608 pRENDERDOC_SetLogFilePathTemplate SetLogFilePathTemplate;
610 pRENDERDOC_SetCaptureFilePathTemplate SetCaptureFilePathTemplate;
615 pRENDERDOC_GetLogFilePathTemplate GetLogFilePathTemplate;
617 pRENDERDOC_GetCaptureFilePathTemplate GetCaptureFilePathTemplate;
620 pRENDERDOC_GetNumCaptures GetNumCaptures;
621 pRENDERDOC_GetCapture GetCapture;
623 pRENDERDOC_TriggerCapture TriggerCapture;
630 pRENDERDOC_IsRemoteAccessConnected IsRemoteAccessConnected;
632 pRENDERDOC_IsTargetControlConnected IsTargetControlConnected;
634 pRENDERDOC_LaunchReplayUI LaunchReplayUI;
636 pRENDERDOC_SetActiveWindow SetActiveWindow;
638 pRENDERDOC_StartFrameCapture StartFrameCapture;
639 pRENDERDOC_IsFrameCapturing IsFrameCapturing;
640 pRENDERDOC_EndFrameCapture EndFrameCapture;
643 pRENDERDOC_TriggerMultiFrameCapture TriggerMultiFrameCapture;
646 pRENDERDOC_SetCaptureFileComments SetCaptureFileComments;
649 pRENDERDOC_DiscardFrameCapture DiscardFrameCapture;
684typedef int(RENDERDOC_CC *pRENDERDOC_GetAPI)(RENDERDOC_Version version,
void **outAPIPointers);
Definition renderdoc_app.h:579