/** ****************************************************************************** * Xenia : Xbox 360 Emulator Research Project * ****************************************************************************** * Copyright 2021 Ben Vanik. All rights reserved. * * Released under the BSD license - see LICENSE in the root for more details. * ****************************************************************************** */ #ifndef XENIA_UI_RENDERDOC_API_H_ #define XENIA_UI_RENDERDOC_API_H_ #include #include "third_party/renderdoc/renderdoc_app.h" #include "xenia/base/platform.h" #if XE_PLATFORM_WIN32 #include "xenia/base/platform_win.h" #endif namespace xe { namespace ui { class RenderDocAPI { public: static std::unique_ptr CreateIfConnected(); RenderDocAPI(const RenderDocAPI&) = delete; RenderDocAPI& operator=(const RenderDocAPI&) = delete; ~RenderDocAPI(); // Always present if this object exists. const RENDERDOC_API_1_0_0* api_1_0_0() const { return api_1_0_0_; } private: explicit RenderDocAPI() = default; #if XE_PLATFORM_LINUX void* library_ = nullptr; #elif XE_PLATFORM_WIN32 HMODULE library_ = nullptr; #endif const RENDERDOC_API_1_0_0* api_1_0_0_ = nullptr; }; } // namespace ui } // namespace xe #endif // XENIA_UI_RENDERDOC_API_H_