9#include "renderdoc_app.h"
10#include "../telemetry/telemetry.hpp"
11#include "../macros.hpp"
15namespace hi {
inline namespace v1 {
17inline void *render_doc_api =
nullptr;
21 if (
not render_doc_api) {
25 uint32_t
or_mask = eRENDERDOC_Overlay_None;
26 uint32_t
and_mask = eRENDERDOC_Overlay_None;
29 or_mask |= eRENDERDOC_Overlay_Enabled;
31 and_mask |= eRENDERDOC_Overlay_Enabled;
35 or_mask |= eRENDERDOC_Overlay_FrameRate;
37 and_mask |= eRENDERDOC_Overlay_FrameRate;
41 or_mask |= eRENDERDOC_Overlay_FrameNumber;
43 and_mask |= eRENDERDOC_Overlay_FrameNumber;
47 or_mask |= eRENDERDOC_Overlay_CaptureList;
49 and_mask |= eRENDERDOC_Overlay_CaptureList;
58inline void start_render_doc()
noexcept
61#if HI_OPERATING_SYSTEM == HI_OS_WINDOWS
63 std::filesystem::path{
"renderdoc.dll"},
64 std::filesystem::path{
"C:/Program Files/RenderDoc/renderdoc.dll"},
65 std::filesystem::path{
"C:/Program Files (x86)/RenderDoc/renderdoc.dll"}};
69 hi_log_debug(
"Trying to load: {}",
dll_url.string());
79 hi_log_warning(
"Could not load renderdoc.dll");
85 hi_log_error(
"Could not find RENDERDOC_GetAPI in renderdoc.dll");
91 hi_log_error(
"RENDERDOC_GetAPI returns invalid value {}",
ret);
92 render_doc_api =
nullptr;
104 render_doc_set_overlay(
false,
false,
false);
Rules for working with win32 headers.
DOXYGEN BUG.
Definition algorithm.hpp:16
geometry/margins.hpp
Definition lookahead_iterator.hpp:5
constexpr Out narrow_cast(In const &rhs) noexcept
Cast numeric values without loss of precision.
Definition cast.hpp:377
Definition renderdoc_app.h:579