/
tomilov
/
sah_kd_tree
Обзор
Документация
Войти
/
tomilov
/
sah_kd_tree
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/debug_utils/renderdoc.hpp
57 строк
1 KB
Anatoliy Tomilov
WIP
17 авг 2024, 00:59
17 авг 2024, 00:59
ac8c39f
Код
Авторство
О чём код?
#pragma once #include <utils/assert.hpp> #include <utils/fast_pimpl.hpp> #include <utils/noncopyable.hpp> #include <vulkan/vulkan.hpp> #include <mutex> #include <debug_utils/debug_utils_export.h> namespace debug_utils { class DEBUG_UTILS_EXPORT Renderdoc : utils::NonCopyable { struct Impl; Renderdoc(); public: using WindowHandle = void *; class FrameCapture : utils::OneTime<FrameCapture> { friend Renderdoc; FrameCapture(const Impl & impl, vk::Instance instance, WindowHandle window); public: FrameCapture(FrameCapture && frameCapture) noexcept = default; ~FrameCapture(); private: const Impl & impl; const vk::Instance instance; const WindowHandle window; std::unique_lock<std::mutex> lock; static void completeClassContext [[maybe_unused]] (); }; ~Renderdoc(); [[nodiscard]] static const Renderdoc & renderdoc(); [[nodiscard]] static FrameCapture makeFrameCapture(vk::Instance instance = VK_NULL_HANDLE, WindowHandle window = nullptr); [[nodiscard]] static bool isFrameCapturing(); private: static constexpr size_t kSize = 72; static constexpr size_t kAlignment = 8; utils::FastPimpl<Impl, kSize, kAlignment> impl_; }; } // namespace debug_utils