Files
Xenia-Canary/src/xenia/ui/renderdoc_api.h

53 lines
1.3 KiB
C++

/**
******************************************************************************
* 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 <memory>
#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<RenderDocAPI> 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_