diff --git a/PanoPainter.vcxproj b/PanoPainter.vcxproj
index 38659d7..cb31dca 100644
--- a/PanoPainter.vcxproj
+++ b/PanoPainter.vcxproj
@@ -77,7 +77,7 @@
true
- libs\glm;libs\glew-2.0.0\include;libs\stb;libs\tinyxml2;libs\yoga;libs\curl-win\include;libs\jpeg;libs\wacom;libs\bugtrap-client\include;libs\poly2tri\poly2tri;libs\base64;libs\sqlite3;libs\openvr\headers;libs\nanort;libs\hash-library;libs\fmt\include;libs\glad\include;libs\openh264\include;libs\mp4v2\include;libs\libyuv\include;$(IncludePath)
+ libs\glm;libs\glew-2.0.0\include;libs\stb;libs\tinyxml2;libs\yoga;libs\curl-win\include;libs\jpeg;libs\wacom;libs\bugtrap-client\include;libs\poly2tri\poly2tri;libs\base64;libs\sqlite3;libs\openvr\headers;libs\nanort;libs\hash-library;libs\fmt\include;libs\glad\include;libs\openh264\include;libs\mp4v2\include;libs\libyuv\include;C:\Program Files\RenderDoc;$(IncludePath)
libs\curl-win\lib\dll-$(Configuration)-$(PlatformShortName);libs\glew-2.0.0\lib\Release\$(Platform);libs\bugtrap-client\lib;libs\openvr\lib\win64;libs\openh264\lib;libs\mp4v2\lib\win;libs\libyuv\lib\win;$(LibraryPath)
@@ -87,7 +87,7 @@
false
- libs\glm;libs\glew-2.0.0\include;libs\stb;libs\tinyxml2;libs\yoga;libs\curl-win\include;libs\jpeg;libs\wacom;libs\bugtrap-client\include;libs\poly2tri\poly2tri;libs\base64;libs\sqlite3;libs\openvr\headers;libs\nanort;libs\hash-library;libs\fmt\include;libs\glad\include;libs\openh264\include;libs\mp4v2\include;libs\libyuv\include;$(IncludePath)
+ libs\glm;libs\glew-2.0.0\include;libs\stb;libs\tinyxml2;libs\yoga;libs\curl-win\include;libs\jpeg;libs\wacom;libs\bugtrap-client\include;libs\poly2tri\poly2tri;libs\base64;libs\sqlite3;libs\openvr\headers;libs\nanort;libs\hash-library;libs\fmt\include;libs\glad\include;libs\openh264\include;libs\mp4v2\include;libs\libyuv\include;C:\Program Files\RenderDoc;$(IncludePath)
libs\curl-win\lib\dll-$(Configuration)-$(PlatformShortName);libs\glew-2.0.0\lib\Release\$(Platform);libs\bugtrap-client\lib;libs\openvr\lib\win64;libs\openh264\lib;libs\mp4v2\lib\win;libs\libyuv\lib\win;$(LibraryPath)
diff --git a/src/app.cpp b/src/app.cpp
index d854de4..4b71b0d 100644
--- a/src/app.cpp
+++ b/src/app.cpp
@@ -24,6 +24,8 @@ void async_lock();
void win32_async_swap();
void async_unlock();
void destroy_window();
+void win32_renderdoc_frame_start();
+void win32_renderdoc_frame_end();
#elif __LINUX__
std::string linux_home_path();
int mkpath(const std::string& dir, mode_t mode = DEFFILEMODE);
@@ -726,6 +728,20 @@ std::string App::res_to_string(int res)
return res_map_str[res_to_index(res)];
}
+void App::renderdoc_frame_start()
+{
+#if __WIN__
+ win32_renderdoc_frame_start();
+#endif
+}
+
+void App::renderdoc_frame_end()
+{
+#if __WIN__
+ win32_renderdoc_frame_end();
+#endif
+}
+
void App::rec_clear()
{
rec_stop();
diff --git a/src/app.h b/src/app.h
index a3905a9..3364259 100644
--- a/src/app.h
+++ b/src/app.h
@@ -226,6 +226,9 @@ public:
void toggle_ui();
void set_stylus();
+ void renderdoc_frame_start();
+ void renderdoc_frame_end();
+
void rec_clear();
void rec_loop();
void rec_start();
diff --git a/src/main.cpp b/src/main.cpp
index 37f33ff..3540d4a 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -12,12 +12,15 @@
#include
#include
-#include "wacom.h"
#include
#include
+
+#include "wacom.h"
#include "abr.h"
#include "settings.h"
+#include
+
#include
#include
#include
@@ -51,6 +54,31 @@ float timer_ink_touch = 0;
float timer_ink_pen = 0;
bool sandboxed = false;
+RENDERDOC_API_1_4_0* rdoc_api = NULL;
+bool win32_renderdoc_init()
+{
+ // At init, on windows
+ if (HMODULE mod = GetModuleHandleA("renderdoc.dll"))
+ {
+ pRENDERDOC_GetAPI RENDERDOC_GetAPI =
+ (pRENDERDOC_GetAPI)GetProcAddress(mod, "RENDERDOC_GetAPI");
+ return RENDERDOC_GetAPI(eRENDERDOC_API_Version_1_1_2, (void**)&rdoc_api);
+ }
+ return false;
+}
+
+void win32_renderdoc_frame_start()
+{
+ if (rdoc_api)
+ rdoc_api->StartFrameCapture(NULL, NULL);
+}
+
+void win32_renderdoc_frame_end()
+{
+ if (rdoc_api)
+ rdoc_api->EndFrameCapture(NULL, NULL);
+}
+
HRESULT(*GetDpiForMonitor_fn)(HMONITOR hmonitor, MONITOR_DPI_TYPE dpiType, UINT* dpiX, UINT* dpiY);
HRESULT(*SetProcessDpiAwareness_fn)(PROCESS_DPI_AWARENESS value);
void init_shcore_API()
@@ -925,6 +953,9 @@ int main(int argc, char** argv)
LOG("GL vendor: %s", glGetString(GL_VENDOR));
LOG("GL renderer: %s", glGetString(GL_RENDERER));
+ if (!win32_renderdoc_init())
+ LOG("Renderdoc not started");
+
swprintf_s(window_title, L"PanoPainter %s (%s)", g_version_number_w,
str2wstr((char*)glGetString(GL_RENDERER)).c_str());