/
githubmirror
/
PowerToys
Обзор
Документация
Войти
/
githubmirror
/
PowerToys
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/modules/MeasureTool/MeasureToolCore/OverlayUI.h
55 строк
2 KB
Andrey Nekrasov
[Screen Ruler] Better error handling and reuse D3D device (#20223)
05 сен 2022, 15:39
Не верифицирован
05 сен 2022, 15:39
9d7c9c1
Код
Авторство
О чём код?
#pragma once #include "DxgiAPI.h" #include "D2DState.h" #include "ToolState.h" #include <common/display/monitors.h> #include <common/utils/serialized.h> class OverlayUIState final { template<typename StateT, typename TickFuncT> OverlayUIState(const DxgiAPI* dxgiAPI, StateT& toolState, TickFuncT tickFunc, const CommonState& commonState, HWND window); Box _monitorArea; HWND _window = {}; const CommonState& _commonState; D2DState _d2dState; std::function<void()> _tickFunc; std::thread _uiThread; template<typename ToolT, typename TickFuncT> static std::unique_ptr<OverlayUIState> CreateInternal(const DxgiAPI* dxgi, ToolT& toolState, TickFuncT tickFunc, CommonState& commonState, const wchar_t* toolWindowClassName, void* windowParam, const MonitorInfo& monitor, const bool excludeFromCapture); public: OverlayUIState(OverlayUIState&&) noexcept = default; ~OverlayUIState(); static std::unique_ptr<OverlayUIState> Create(const DxgiAPI* dxgi, BoundsToolState& toolState, CommonState& commonState, const MonitorInfo& monitor); static std::unique_ptr<OverlayUIState> Create(const DxgiAPI* dxgi, Serialized<MeasureToolState>& toolState, CommonState& commonState, const MonitorInfo& monitor); inline HWND overlayWindowHandle() const { return _window; } void RunUILoop(); };