|
@@ -1,7 +1,7 @@
|
|
|
/******************************************************************************
|
|
/******************************************************************************
|
|
|
* The MIT License (MIT)
|
|
* The MIT License (MIT)
|
|
|
*
|
|
*
|
|
|
- * Copyright (c) 2019-2020 Baldur Karlsson
|
|
|
|
|
|
|
+ * Copyright (c) 2019-2022 Baldur Karlsson
|
|
|
*
|
|
*
|
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
* of this software and associated documentation files (the "Software"), to deal
|
|
* of this software and associated documentation files (the "Software"), to deal
|
|
@@ -107,15 +107,16 @@ typedef enum RENDERDOC_CaptureOption {
|
|
|
// 0 - no callstacks are captured
|
|
// 0 - no callstacks are captured
|
|
|
eRENDERDOC_Option_CaptureCallstacks = 3,
|
|
eRENDERDOC_Option_CaptureCallstacks = 3,
|
|
|
|
|
|
|
|
- // When capturing CPU callstacks, only capture them from drawcalls.
|
|
|
|
|
|
|
+ // When capturing CPU callstacks, only capture them from actions.
|
|
|
// This option does nothing without the above option being enabled
|
|
// This option does nothing without the above option being enabled
|
|
|
//
|
|
//
|
|
|
// Default - disabled
|
|
// Default - disabled
|
|
|
//
|
|
//
|
|
|
- // 1 - Only captures callstacks for drawcall type API events.
|
|
|
|
|
|
|
+ // 1 - Only captures callstacks for actions.
|
|
|
// Ignored if CaptureCallstacks is disabled
|
|
// Ignored if CaptureCallstacks is disabled
|
|
|
// 0 - Callstacks, if enabled, are captured for every event.
|
|
// 0 - Callstacks, if enabled, are captured for every event.
|
|
|
eRENDERDOC_Option_CaptureCallstacksOnlyDraws = 4,
|
|
eRENDERDOC_Option_CaptureCallstacksOnlyDraws = 4,
|
|
|
|
|
+ eRENDERDOC_Option_CaptureCallstacksOnlyActions = 4,
|
|
|
|
|
|
|
|
// Specify a delay in seconds to wait for a debugger to attach, after
|
|
// Specify a delay in seconds to wait for a debugger to attach, after
|
|
|
// creating or injecting into a process, before continuing to allow it to run.
|
|
// creating or injecting into a process, before continuing to allow it to run.
|
|
@@ -451,6 +452,15 @@ typedef uint32_t(RENDERDOC_CC *pRENDERDOC_LaunchReplayUI)(uint32_t connectTarget
|
|
|
// ignored and the others will be filled out.
|
|
// ignored and the others will be filled out.
|
|
|
typedef void(RENDERDOC_CC *pRENDERDOC_GetAPIVersion)(int *major, int *minor, int *patch);
|
|
typedef void(RENDERDOC_CC *pRENDERDOC_GetAPIVersion)(int *major, int *minor, int *patch);
|
|
|
|
|
|
|
|
|
|
+// Requests that the replay UI show itself (if hidden or not the current top window). This can be
|
|
|
|
|
+// used in conjunction with IsTargetControlConnected and LaunchReplayUI to intelligently handle
|
|
|
|
|
+// showing the UI after making a capture.
|
|
|
|
|
+//
|
|
|
|
|
+// This will return 1 if the request was successfully passed on, though it's not guaranteed that
|
|
|
|
|
+// the UI will be on top in all cases depending on OS rules. It will return 0 if there is no current
|
|
|
|
|
+// target control connection to make such a request, or if there was another error
|
|
|
|
|
+typedef uint32_t(RENDERDOC_CC *pRENDERDOC_ShowReplayUI)();
|
|
|
|
|
+
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
// Capturing functions
|
|
// Capturing functions
|
|
|
//
|
|
//
|
|
@@ -524,6 +534,16 @@ typedef uint32_t(RENDERDOC_CC *pRENDERDOC_EndFrameCapture)(RENDERDOC_DevicePoint
|
|
|
typedef uint32_t(RENDERDOC_CC *pRENDERDOC_DiscardFrameCapture)(RENDERDOC_DevicePointer device,
|
|
typedef uint32_t(RENDERDOC_CC *pRENDERDOC_DiscardFrameCapture)(RENDERDOC_DevicePointer device,
|
|
|
RENDERDOC_WindowHandle wndHandle);
|
|
RENDERDOC_WindowHandle wndHandle);
|
|
|
|
|
|
|
|
|
|
+// Only valid to be called between a call to StartFrameCapture and EndFrameCapture. Gives a custom
|
|
|
|
|
+// title to the capture produced which will be displayed in the UI.
|
|
|
|
|
+//
|
|
|
|
|
+// If multiple captures are ongoing, this title will be applied to the first capture to end after
|
|
|
|
|
+// this call. The second capture to end will have no title, unless this function is called again.
|
|
|
|
|
+//
|
|
|
|
|
+// Calling this function has no effect if no capture is currently running, and if it is called
|
|
|
|
|
+// multiple times only the last title will be used.
|
|
|
|
|
+typedef void(RENDERDOC_CC *pRENDERDOC_SetCaptureTitle)(const char *title);
|
|
|
|
|
+
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
// RenderDoc API versions
|
|
// RenderDoc API versions
|
|
|
//
|
|
//
|
|
@@ -548,6 +568,9 @@ typedef enum RENDERDOC_Version {
|
|
|
eRENDERDOC_API_Version_1_3_0 = 10300, // RENDERDOC_API_1_3_0 = 1 03 00
|
|
eRENDERDOC_API_Version_1_3_0 = 10300, // RENDERDOC_API_1_3_0 = 1 03 00
|
|
|
eRENDERDOC_API_Version_1_4_0 = 10400, // RENDERDOC_API_1_4_0 = 1 04 00
|
|
eRENDERDOC_API_Version_1_4_0 = 10400, // RENDERDOC_API_1_4_0 = 1 04 00
|
|
|
eRENDERDOC_API_Version_1_4_1 = 10401, // RENDERDOC_API_1_4_1 = 1 04 01
|
|
eRENDERDOC_API_Version_1_4_1 = 10401, // RENDERDOC_API_1_4_1 = 1 04 01
|
|
|
|
|
+ eRENDERDOC_API_Version_1_4_2 = 10402, // RENDERDOC_API_1_4_2 = 1 04 02
|
|
|
|
|
+ eRENDERDOC_API_Version_1_5_0 = 10500, // RENDERDOC_API_1_5_0 = 1 05 00
|
|
|
|
|
+ eRENDERDOC_API_Version_1_6_0 = 10600, // RENDERDOC_API_1_6_0 = 1 06 00
|
|
|
} RENDERDOC_Version;
|
|
} RENDERDOC_Version;
|
|
|
|
|
|
|
|
// API version changelog:
|
|
// API version changelog:
|
|
@@ -574,8 +597,12 @@ typedef enum RENDERDOC_Version {
|
|
|
// 1.4.0 - Added feature: DiscardFrameCapture() to discard a frame capture in progress and stop
|
|
// 1.4.0 - Added feature: DiscardFrameCapture() to discard a frame capture in progress and stop
|
|
|
// capturing without saving anything to disk.
|
|
// capturing without saving anything to disk.
|
|
|
// 1.4.1 - Refactor: Renamed Shutdown to RemoveHooks to better clarify what is happening
|
|
// 1.4.1 - Refactor: Renamed Shutdown to RemoveHooks to better clarify what is happening
|
|
|
|
|
+// 1.4.2 - Refactor: Renamed 'draws' to 'actions' in callstack capture option.
|
|
|
|
|
+// 1.5.0 - Added feature: ShowReplayUI() to request that the replay UI show itself if connected
|
|
|
|
|
+// 1.6.0 - Added feature: SetCaptureTitle() which can be used to set a title for a
|
|
|
|
|
+// capture made with StartFrameCapture() or EndFrameCapture()
|
|
|
|
|
|
|
|
-typedef struct RENDERDOC_API_1_4_1
|
|
|
|
|
|
|
+typedef struct RENDERDOC_API_1_6_0
|
|
|
{
|
|
{
|
|
|
pRENDERDOC_GetAPIVersion GetAPIVersion;
|
|
pRENDERDOC_GetAPIVersion GetAPIVersion;
|
|
|
|
|
|
|
@@ -647,17 +674,26 @@ typedef struct RENDERDOC_API_1_4_1
|
|
|
|
|
|
|
|
// new function in 1.4.0
|
|
// new function in 1.4.0
|
|
|
pRENDERDOC_DiscardFrameCapture DiscardFrameCapture;
|
|
pRENDERDOC_DiscardFrameCapture DiscardFrameCapture;
|
|
|
-} RENDERDOC_API_1_4_1;
|
|
|
|
|
-
|
|
|
|
|
-typedef RENDERDOC_API_1_4_1 RENDERDOC_API_1_0_0;
|
|
|
|
|
-typedef RENDERDOC_API_1_4_1 RENDERDOC_API_1_0_1;
|
|
|
|
|
-typedef RENDERDOC_API_1_4_1 RENDERDOC_API_1_0_2;
|
|
|
|
|
-typedef RENDERDOC_API_1_4_1 RENDERDOC_API_1_1_0;
|
|
|
|
|
-typedef RENDERDOC_API_1_4_1 RENDERDOC_API_1_1_1;
|
|
|
|
|
-typedef RENDERDOC_API_1_4_1 RENDERDOC_API_1_1_2;
|
|
|
|
|
-typedef RENDERDOC_API_1_4_1 RENDERDOC_API_1_2_0;
|
|
|
|
|
-typedef RENDERDOC_API_1_4_1 RENDERDOC_API_1_3_0;
|
|
|
|
|
-typedef RENDERDOC_API_1_4_1 RENDERDOC_API_1_4_0;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // new function in 1.5.0
|
|
|
|
|
+ pRENDERDOC_ShowReplayUI ShowReplayUI;
|
|
|
|
|
+
|
|
|
|
|
+ // new function in 1.6.0
|
|
|
|
|
+ pRENDERDOC_SetCaptureTitle SetCaptureTitle;
|
|
|
|
|
+} RENDERDOC_API_1_6_0;
|
|
|
|
|
+
|
|
|
|
|
+typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_0_0;
|
|
|
|
|
+typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_0_1;
|
|
|
|
|
+typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_0_2;
|
|
|
|
|
+typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_1_0;
|
|
|
|
|
+typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_1_1;
|
|
|
|
|
+typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_1_2;
|
|
|
|
|
+typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_2_0;
|
|
|
|
|
+typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_3_0;
|
|
|
|
|
+typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_4_0;
|
|
|
|
|
+typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_4_1;
|
|
|
|
|
+typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_4_2;
|
|
|
|
|
+typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_5_0;
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
// RenderDoc API entry point
|
|
// RenderDoc API entry point
|