Branimir Karadžić пре 3 година
родитељ
комит
5bf22f90be
1 измењених фајлова са 51 додато и 15 уклоњено
  1. 51 15
      3rdparty/renderdoc/renderdoc_app.h

+ 51 - 15
3rdparty/renderdoc/renderdoc_app.h

@@ -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