diff options
author | crupest <crupest@outlook.com> | 2019-06-27 17:02:58 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2019-06-27 17:02:58 +0800 |
commit | b53527fbe50a953ad0e3225cc812eb76b8a1f82d (patch) | |
tree | eb81cd14d0a165c47f841ad94835f8987109de7e /src/win/native | |
parent | 8c5b05bcfce96495b4ffc4209ab8feda12597729 (diff) | |
download | cru-b53527fbe50a953ad0e3225cc812eb76b8a1f82d.tar.gz cru-b53527fbe50a953ad0e3225cc812eb76b8a1f82d.tar.bz2 cru-b53527fbe50a953ad0e3225cc812eb76b8a1f82d.zip |
...
Diffstat (limited to 'src/win/native')
-rw-r--r-- | src/win/native/CMakeLists.txt | 16 | ||||
-rw-r--r-- | src/win/native/dpi_util.hpp | 4 | ||||
-rw-r--r-- | src/win/native/god_window.cpp | 12 | ||||
-rw-r--r-- | src/win/native/god_window_message.hpp | 2 | ||||
-rw-r--r-- | src/win/native/native_window.cpp (renamed from src/win/native/win_native_window.cpp) | 44 | ||||
-rw-r--r-- | src/win/native/timer.cpp | 4 | ||||
-rw-r--r-- | src/win/native/timer.hpp | 2 | ||||
-rw-r--r-- | src/win/native/ui_application.cpp (renamed from src/win/native/win_application.cpp) | 66 | ||||
-rw-r--r-- | src/win/native/window_class.cpp | 6 | ||||
-rw-r--r-- | src/win/native/window_d2d_painter.cpp (renamed from src/win/native/window_painter.cpp) | 20 | ||||
-rw-r--r-- | src/win/native/window_d2d_painter.hpp | 21 | ||||
-rw-r--r-- | src/win/native/window_manager.cpp | 15 | ||||
-rw-r--r-- | src/win/native/window_manager.hpp | 8 | ||||
-rw-r--r-- | src/win/native/window_painter.hpp | 21 | ||||
-rw-r--r-- | src/win/native/window_render_target.cpp | 12 |
15 files changed, 130 insertions, 123 deletions
diff --git a/src/win/native/CMakeLists.txt b/src/win/native/CMakeLists.txt index a9ee84e7..757eae57 100644 --- a/src/win/native/CMakeLists.txt +++ b/src/win/native/CMakeLists.txt @@ -4,24 +4,26 @@ add_library(cru_win_native STATIC dpi_util.hpp god_window_message.hpp timer.hpp + window_d2d_painter.hpp window_manager.hpp - window_painter.hpp god_window.cpp + native_window.cpp timer.cpp - win_application.cpp - win_native_window.cpp + ui_application.cpp window_class.cpp + window_d2d_painter.cpp window_manager.cpp - window_painter.cpp window_render_target.cpp ) target_sources(cru_win_native PUBLIC + ${CRU_WIN_NATIVE_INCLUDE_DIR}/exception.hpp ${CRU_WIN_NATIVE_INCLUDE_DIR}/god_window.hpp - ${CRU_WIN_NATIVE_INCLUDE_DIR}/win_application.hpp - ${CRU_WIN_NATIVE_INCLUDE_DIR}/win_native_window.hpp + ${CRU_WIN_NATIVE_INCLUDE_DIR}/native_window.hpp + ${CRU_WIN_NATIVE_INCLUDE_DIR}/platform_id.hpp + ${CRU_WIN_NATIVE_INCLUDE_DIR}/ui_application.hpp ${CRU_WIN_NATIVE_INCLUDE_DIR}/window_class.hpp ${CRU_WIN_NATIVE_INCLUDE_DIR}/window_native_message_event_args.hpp ${CRU_WIN_NATIVE_INCLUDE_DIR}/window_render_target.hpp ) -target_link_libraries(cru_win_native PUBLIC cru_win_graph) +target_link_libraries(cru_win_native PUBLIC cru_win_graph_direct) diff --git a/src/win/native/dpi_util.hpp b/src/win/native/dpi_util.hpp index d459e8c6..a642fd79 100644 --- a/src/win/native/dpi_util.hpp +++ b/src/win/native/dpi_util.hpp @@ -5,7 +5,7 @@ // The dpi awareness needs to be implemented in the future. Currently we use 96 // as default. -namespace cru::win::native { +namespace cru::platform::native::win { inline platform::native::Dpi GetDpi() { return platform::native::Dpi{96.0f, 96.0f}; } @@ -33,4 +33,4 @@ inline float PixelToDipX(const int pixel_x) { inline float PixelToDipY(const int pixel_y) { return DipToPixelInternal(pixel_y, GetDpi().y); } -} // namespace cru::win::native +} // namespace cru::platform::native::win diff --git a/src/win/native/god_window.cpp b/src/win/native/god_window.cpp index 58fb663c..5f1d7b53 100644 --- a/src/win/native/god_window.cpp +++ b/src/win/native/god_window.cpp @@ -1,17 +1,17 @@ #include "cru/win/native/god_window.hpp" -#include "cru/win/exception.hpp" -#include "cru/win/native/win_application.hpp" +#include "cru/win/native/exception.hpp" +#include "cru/win/native/ui_application.hpp" #include "cru/win/native/window_class.hpp" #include "god_window_message.hpp" #include "timer.hpp" -namespace cru::win::native { +namespace cru::platform::native::win { constexpr auto god_window_class_name = L"GodWindowClass"; LRESULT CALLBACK GodWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { - const auto app = WinApplication::GetInstance(); + const auto app = WinUiApplication::GetInstance(); if (app) { LRESULT result; @@ -25,7 +25,7 @@ LRESULT CALLBACK GodWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, return DefWindowProcW(hWnd, uMsg, wParam, lParam); } -GodWindow::GodWindow(WinApplication* application) { +GodWindow::GodWindow(WinUiApplication* application) { application_ = application; const auto h_instance = application->GetInstanceHandle(); @@ -70,4 +70,4 @@ bool GodWindow::HandleGodWindowMessage(HWND hwnd, UINT msg, WPARAM w_param, } return false; } -} // namespace cru::win::native +} // namespace cru::platform::native::win diff --git a/src/win/native/god_window_message.hpp b/src/win/native/god_window_message.hpp index 10268625..591270d9 100644 --- a/src/win/native/god_window_message.hpp +++ b/src/win/native/god_window_message.hpp @@ -1,6 +1,6 @@ #pragma once #include "cru/win/win_pre_config.hpp" -namespace cru::win::native { +namespace cru::platform::native::win { constexpr int invoke_later_message_id = WM_USER + 2000; } diff --git a/src/win/native/win_native_window.cpp b/src/win/native/native_window.cpp index 9ca37321..fd29f9c5 100644 --- a/src/win/native/win_native_window.cpp +++ b/src/win/native/native_window.cpp @@ -1,19 +1,19 @@ -#include "cru/win/native/win_native_window.hpp" +#include "cru/win/native/native_window.hpp" -#include "cru/win/exception.hpp" -#include "cru/win/graph/win_graph_factory.hpp" -#include "cru/win/native/win_application.hpp" +#include "cru/win/graph/direct/graph_factory.hpp" +#include "cru/win/native/exception.hpp" +#include "cru/win/native/ui_application.hpp" #include "cru/win/native/window_class.hpp" #include "cru/win/native/window_render_target.hpp" #include "dpi_util.hpp" +#include "window_d2d_painter.hpp" #include "window_manager.hpp" -#include "window_painter.hpp" #include <assert.h> #include <windowsx.h> -namespace cru::win::native { -WinNativeWindow::WinNativeWindow(WinApplication* application, +namespace cru::platform::native::win { +WinNativeWindow::WinNativeWindow(WinUiApplication* application, std::shared_ptr<WindowClass> window_class, DWORD window_style, WinNativeWindow* parent) { assert(application); // application can't be null. @@ -37,7 +37,7 @@ WinNativeWindow::WinNativeWindow(WinApplication* application, window_manager->RegisterWindow(hwnd_, this); window_render_target_.reset( - new WindowRenderTarget(graph::WinGraphFactory::GetInstance(), hwnd_)); + new WindowRenderTarget(graph::win::direct::DirectGraphFactory::GetInstance(), hwnd_)); } WinNativeWindow::~WinNativeWindow() { @@ -66,15 +66,15 @@ void WinNativeWindow::SetVisible(bool is_visible) { if (!IsValid()) return; is_visible ? ShowWindow(hwnd_, SW_SHOWNORMAL) : ShowWindow(hwnd_, SW_HIDE); } -ui::Size WinNativeWindow::GetClientSize() { - if (!IsValid()) return ui::Size{}; +Size WinNativeWindow::GetClientSize() { + if (!IsValid()) return Size{}; const auto pixel_rect = GetClientRectPixel(); - return ui::Size(PixelToDipX(pixel_rect.right), + return Size(PixelToDipX(pixel_rect.right), PixelToDipY(pixel_rect.bottom)); } -void WinNativeWindow::SetClientSize(const ui::Size& size) { +void WinNativeWindow::SetClientSize(const Size& size) { if (IsValid()) { const auto window_style = static_cast<DWORD>(GetWindowLongPtr(hwnd_, GWL_STYLE)); @@ -96,19 +96,19 @@ void WinNativeWindow::SetClientSize(const ui::Size& size) { } } -ui::Rect WinNativeWindow::GetWindowRect() { - if (!IsValid()) return ui::Rect{}; +Rect WinNativeWindow::GetWindowRect() { + if (!IsValid()) return Rect{}; RECT rect; if (!::GetWindowRect(hwnd_, &rect)) throw Win32Error(::GetLastError(), "Failed to invoke GetWindowRect."); - return ui::Rect::FromVertices(PixelToDipX(rect.left), PixelToDipY(rect.top), + return Rect::FromVertices(PixelToDipX(rect.left), PixelToDipY(rect.top), PixelToDipX(rect.right), PixelToDipY(rect.bottom)); } -void WinNativeWindow::SetWindowRect(const ui::Rect& rect) { +void WinNativeWindow::SetWindowRect(const Rect& rect) { if (IsValid()) { if (!SetWindowPos(hwnd_, nullptr, DipToPixelX(rect.left), DipToPixelY(rect.top), DipToPixelX(rect.GetRight()), @@ -117,8 +117,8 @@ void WinNativeWindow::SetWindowRect(const ui::Rect& rect) { } } -platform::graph::IPainter* WinNativeWindow::BeginPaint() { - return new WindowPainter(this); +graph::Painter* WinNativeWindow::BeginPaint() { + return new WindowD2DPainter(this); } bool WinNativeWindow::HandleNativeWindowMessage(HWND hwnd, UINT msg, @@ -269,7 +269,7 @@ void WinNativeWindow::OnResizeInternal(const int new_width, if (!(new_width == 0 && new_height == 0)) { window_render_target_->ResizeBuffer(new_width, new_height); resize_event_.Raise( - ui::Size{PixelToDipX(new_width), PixelToDipY(new_height)}); + Size{PixelToDipX(new_width), PixelToDipY(new_height)}); } } @@ -283,8 +283,8 @@ void WinNativeWindow::OnKillFocusInternal() { focus_event_.Raise(false); } -inline ui::Point PiToDip(const POINT& pi_point) { - return ui::Point(PixelToDipX(pi_point.x), PixelToDipY(pi_point.y)); +inline Point PiToDip(const POINT& pi_point) { + return Point(PixelToDipX(pi_point.x), PixelToDipY(pi_point.y)); } void WinNativeWindow::OnMouseMoveInternal(const POINT point) { @@ -337,4 +337,4 @@ void WinNativeWindow::OnCharInternal(wchar_t c) {} void WinNativeWindow::OnActivatedInternal() {} void WinNativeWindow::OnDeactivatedInternal() {} -} // namespace cru::win::native +} // namespace cru::platform::native::win diff --git a/src/win/native/timer.cpp b/src/win/native/timer.cpp index 9e3bbde6..ed2ae069 100644 --- a/src/win/native/timer.cpp +++ b/src/win/native/timer.cpp @@ -1,6 +1,6 @@ #include "timer.hpp" -namespace cru::win::native { +namespace cru::platform::native::win { TimerManager::TimerManager(GodWindow* god_window) { god_window_ = god_window; } UINT_PTR TimerManager::CreateTimer(const UINT milliseconds, const bool loop, @@ -25,4 +25,4 @@ std::optional<std::pair<bool, TimerAction>> TimerManager::GetAction( if (find_result == map_.cend()) return std::nullopt; return find_result->second; } -} // namespace cru::win::native +} // namespace cru::platform::native::win diff --git a/src/win/native/timer.hpp b/src/win/native/timer.hpp index f30d9b91..08749768 100644 --- a/src/win/native/timer.hpp +++ b/src/win/native/timer.hpp @@ -9,7 +9,7 @@ #include <map> #include <optional> -namespace cru::win::native { +namespace cru::platform::native::win { using TimerAction = std::function<void()>; class TimerManager : public Object { diff --git a/src/win/native/win_application.cpp b/src/win/native/ui_application.cpp index 586af331..360f6e41 100644 --- a/src/win/native/win_application.cpp +++ b/src/win/native/ui_application.cpp @@ -1,9 +1,9 @@ -#include "cru/win/native/win_application.hpp" +#include "cru/win/native/ui_application.hpp" -#include "cru/win/exception.hpp" -#include "cru/win/graph/win_graph_factory.hpp" +#include "cru/win/graph/direct/graph_factory.hpp" +#include "cru/win/native/exception.hpp" #include "cru/win/native/god_window.hpp" -#include "cru/win/native/win_native_window.hpp" +#include "cru/win/native/native_window.hpp" #include "god_window_message.hpp" #include "timer.hpp" #include "window_manager.hpp" @@ -11,35 +11,37 @@ #include <VersionHelpers.h> #include <cassert> -namespace cru::win::native { +namespace cru::platform::native::win { namespace { -WinApplication* instance = nullptr; +WinUiApplication* instance = nullptr; } -} // namespace cru::win::native +} // namespace cru::platform::native::win namespace cru::platform::native { -IUiApplication* IUiApplication::CreateInstance() { - auto& i = ::cru::win::native::instance; // avoid long namespace prefix +UiApplication* UiApplication::CreateInstance() { + auto& i = + ::cru::platform::native::win::instance; // avoid long namespace prefix assert(i == nullptr); - i = new win::native::WinApplication(::GetModuleHandleW(nullptr)); + i = new win::WinUiApplication(::GetModuleHandleW(nullptr)); return i; } -IUiApplication* IUiApplication::GetInstance() { - return ::cru::win::native::instance; +UiApplication* UiApplication::GetInstance() { + return ::cru::platform::native::win::instance; } } // namespace cru::platform::native -namespace cru::win::native { -WinApplication* WinApplication::GetInstance() { return instance; } +namespace cru::platform::native::win { +WinUiApplication* WinUiApplication::GetInstance() { return instance; } -WinApplication::WinApplication(HINSTANCE h_instance) : h_instance_(h_instance) { +WinUiApplication::WinUiApplication(HINSTANCE h_instance) + : h_instance_(h_instance) { assert(instance == nullptr); if (!::IsWindows8OrGreater()) throw std::runtime_error("Must run on Windows 8 or later."); - const auto graph_factory = platform::graph::IGraphFactory::CreateInstance(); + const auto graph_factory = graph::GraphFactory::CreateInstance(); graph_factory->SetAutoDelete(true); god_window_ = std::make_shared<GodWindow>(this); @@ -47,9 +49,9 @@ WinApplication::WinApplication(HINSTANCE h_instance) : h_instance_(h_instance) { window_manager_ = std::make_shared<WindowManager>(this); } -WinApplication::~WinApplication() { instance = nullptr; } +WinUiApplication::~WinUiApplication() { instance = nullptr; } -int WinApplication::Run() { +int WinUiApplication::Run() { MSG msg; while (GetMessageW(&msg, nullptr, 0, 0)) { TranslateMessage(&msg); @@ -63,13 +65,15 @@ int WinApplication::Run() { return static_cast<int>(msg.wParam); } -void WinApplication::Quit(const int quit_code) { ::PostQuitMessage(quit_code); } +void WinUiApplication::Quit(const int quit_code) { + ::PostQuitMessage(quit_code); +} -void WinApplication::AddOnQuitHandler(const std::function<void()>& handler) { +void WinUiApplication::AddOnQuitHandler(const std::function<void()>& handler) { quit_handlers_.push_back(handler); } -void WinApplication::InvokeLater(const std::function<void()>& action) { +void WinUiApplication::InvokeLater(const std::function<void()>& action) { // copy the action to a safe place auto p_action_copy = new std::function<void()>(action); @@ -78,34 +82,34 @@ void WinApplication::InvokeLater(const std::function<void()>& action) { throw Win32Error(::GetLastError(), "InvokeLater failed to post message."); } -unsigned long WinApplication::SetTimeout(std::chrono::milliseconds milliseconds, - const std::function<void()>& action) { +unsigned long WinUiApplication::SetTimeout( + std::chrono::milliseconds milliseconds, + const std::function<void()>& action) { return static_cast<unsigned long>(timer_manager_->CreateTimer( static_cast<UINT>(milliseconds.count()), false, action)); } -unsigned long WinApplication::SetInterval( +unsigned long WinUiApplication::SetInterval( std::chrono::milliseconds milliseconds, const std::function<void()>& action) { return static_cast<unsigned long>(timer_manager_->CreateTimer( static_cast<UINT>(milliseconds.count()), true, action)); } -void WinApplication::CancelTimer(unsigned long id) { +void WinUiApplication::CancelTimer(unsigned long id) { timer_manager_->KillTimer(static_cast<UINT_PTR>(id)); } -std::vector<platform::native::INativeWindow*> WinApplication::GetAllWindow() { +std::vector<NativeWindow*> WinUiApplication::GetAllWindow() { const auto&& windows = window_manager_->GetAllWindows(); - std::vector<platform::native::INativeWindow*> result; + std::vector<NativeWindow*> result; for (const auto w : windows) { - result.push_back(static_cast<platform::native::INativeWindow*>(w)); + result.push_back(static_cast<NativeWindow*>(w)); } return result; } -platform::native::INativeWindow* WinApplication::CreateWindow( - platform::native::INativeWindow* parent) { +NativeWindow* WinUiApplication::CreateWindow(NativeWindow* parent) { WinNativeWindow* p = nullptr; if (parent != nullptr) { p = dynamic_cast<WinNativeWindow*>(parent); @@ -114,4 +118,4 @@ platform::native::INativeWindow* WinApplication::CreateWindow( return new WinNativeWindow(this, window_manager_->GetGeneralWindowClass(), WS_OVERLAPPEDWINDOW, p); } -} // namespace cru::win::native +} // namespace cru::platform::native::win diff --git a/src/win/native/window_class.cpp b/src/win/native/window_class.cpp index 6c7d0d3d..d69160ab 100644 --- a/src/win/native/window_class.cpp +++ b/src/win/native/window_class.cpp @@ -1,8 +1,8 @@ #include "cru/win/native/window_class.hpp" -#include "cru/win/exception.hpp" +#include "cru/win/native/exception.hpp" -namespace cru::win::native { +namespace cru::platform::native::win { WindowClass::WindowClass(const std::wstring& name, WNDPROC window_proc, HINSTANCE h_instance) : name_(name) { @@ -25,4 +25,4 @@ WindowClass::WindowClass(const std::wstring& name, WNDPROC window_proc, if (atom_ == 0) throw Win32Error(::GetLastError(), "Failed to create window class."); } -} // namespace cru::win::native +} // namespace cru::platform::native::win diff --git a/src/win/native/window_painter.cpp b/src/win/native/window_d2d_painter.cpp index 463be128..16d276ef 100644 --- a/src/win/native/window_painter.cpp +++ b/src/win/native/window_d2d_painter.cpp @@ -1,14 +1,16 @@ -#include "window_painter.hpp" +#include "window_d2d_painter.hpp" -#include "cru/win/exception.hpp" -#include "cru/win/graph/win_native_factory.hpp" +#include "cru/win/graph/direct/direct_factory.hpp" +#include "cru/win/graph/direct/exception.hpp" #include "cru/win/native/window_render_target.hpp" #include <cassert> -namespace cru::win::native { -WindowPainter::WindowPainter(WinNativeWindow* window) - : WinPainter(window->GetWindowRenderTarget() +namespace cru::platform::native::win { +using namespace cru::platform::graph::win::direct; + +WindowD2DPainter::WindowD2DPainter(WinNativeWindow* window) + : D2DPainter(window->GetWindowRenderTarget() ->GetWinNativeFactory() ->GetD2D1DeviceContext()), window_(window) { @@ -19,13 +21,13 @@ WindowPainter::WindowPainter(WinNativeWindow* window) ->BeginDraw(); } -WindowPainter::~WindowPainter() { End(); } +WindowD2DPainter::~WindowD2DPainter() { EndDraw(); } -void WindowPainter::DoEndDraw() { +void WindowD2DPainter::DoEndDraw() { ThrowIfFailed(window_->GetWindowRenderTarget() ->GetWinNativeFactory() ->GetD2D1DeviceContext() ->EndDraw()); window_->GetWindowRenderTarget()->Present(); } -} // namespace cru::win::native +} // namespace cru::platform::native::win diff --git a/src/win/native/window_d2d_painter.hpp b/src/win/native/window_d2d_painter.hpp new file mode 100644 index 00000000..1c90e8ab --- /dev/null +++ b/src/win/native/window_d2d_painter.hpp @@ -0,0 +1,21 @@ +#pragma once +#include "cru/win/graph/direct/painter.hpp" +#include "cru/win/native/native_window.hpp" + +namespace cru::platform::native::win { +class WindowD2DPainter : public graph::win::direct::D2DPainter { + public: + explicit WindowD2DPainter(WinNativeWindow* window); + WindowD2DPainter(const WindowD2DPainter& other) = delete; + WindowD2DPainter& operator=(const WindowD2DPainter& other) = delete; + WindowD2DPainter(WindowD2DPainter&& other) = delete; + WindowD2DPainter& operator=(WindowD2DPainter&& other) = delete; + ~WindowD2DPainter() override; + + protected: + void DoEndDraw() override; + + private: + WinNativeWindow* window_; +}; +} // namespace cru::win::native diff --git a/src/win/native/window_manager.cpp b/src/win/native/window_manager.cpp index 5fea5a27..7f70d3cc 100644 --- a/src/win/native/window_manager.cpp +++ b/src/win/native/window_manager.cpp @@ -1,16 +1,16 @@ #include "window_manager.hpp" -#include "cru/win/native/win_application.hpp" -#include "cru/win/native/win_native_window.hpp" +#include "cru/win/native/ui_application.hpp" +#include "cru/win/native/native_window.hpp" #include "cru/win/native/window_class.hpp" #include <assert.h> -namespace cru::win::native { +namespace cru::platform::native::win { LRESULT __stdcall GeneralWndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { auto window = - WinApplication::GetInstance()->GetWindowManager()->FromHandle(hWnd); + WinUiApplication::GetInstance()->GetWindowManager()->FromHandle(hWnd); LRESULT result; if (window != nullptr && @@ -20,15 +20,14 @@ LRESULT __stdcall GeneralWndProc(HWND hWnd, UINT Msg, WPARAM wParam, return DefWindowProc(hWnd, Msg, wParam, lParam); } -WindowManager::WindowManager(WinApplication* application) { +WindowManager::WindowManager(WinUiApplication* application) { application_ = application; general_window_class_ = std::make_shared<WindowClass>( L"CruUIWindowClass", GeneralWndProc, application->GetInstanceHandle()); } WindowManager::~WindowManager() { - for (const auto [key, window] : window_map_) - delete window; + for (const auto [key, window] : window_map_) delete window; } void WindowManager::RegisterWindow(HWND hwnd, WinNativeWindow* window) { @@ -56,4 +55,4 @@ std::vector<WinNativeWindow*> WindowManager::GetAllWindows() const { for (auto [key, value] : window_map_) windows.push_back(value); return windows; } -} // namespace cru::win::native +} // namespace cru::platform::native::win diff --git a/src/win/native/window_manager.hpp b/src/win/native/window_manager.hpp index 8fab9cfc..a0661556 100644 --- a/src/win/native/window_manager.hpp +++ b/src/win/native/window_manager.hpp @@ -7,14 +7,14 @@ #include <memory> #include <vector> -namespace cru::win::native { -class WinApplication; +namespace cru::platform::native::win { +class WinUiApplication; class WinNativeWindow; class WindowClass; class WindowManager : public Object { public: - WindowManager(WinApplication* application); + WindowManager(WinUiApplication* application); WindowManager(const WindowManager& other) = delete; WindowManager(WindowManager&& other) = delete; WindowManager& operator=(const WindowManager& other) = delete; @@ -43,7 +43,7 @@ class WindowManager : public Object { std::vector<WinNativeWindow*> GetAllWindows() const; private: - WinApplication* application_; + WinUiApplication* application_; std::shared_ptr<WindowClass> general_window_class_; std::map<HWND, WinNativeWindow*> window_map_; diff --git a/src/win/native/window_painter.hpp b/src/win/native/window_painter.hpp deleted file mode 100644 index 78731ef3..00000000 --- a/src/win/native/window_painter.hpp +++ /dev/null @@ -1,21 +0,0 @@ -#pragma once -#include "cru/win/graph/win_painter.hpp" -#include "cru/win/native/win_native_window.hpp" - -namespace cru::win::native { -class WindowPainter : public graph::WinPainter { - public: - explicit WindowPainter(WinNativeWindow* window); - WindowPainter(const WindowPainter& other) = delete; - WindowPainter& operator=(const WindowPainter& other) = delete; - WindowPainter(WindowPainter&& other) = delete; - WindowPainter& operator=(WindowPainter&& other) = delete; - ~WindowPainter() override; - - protected: - void DoEndDraw() override; - - private: - WinNativeWindow* window_; -}; -} // namespace cru::win::native diff --git a/src/win/native/window_render_target.cpp b/src/win/native/window_render_target.cpp index 606b51f8..426afdf6 100644 --- a/src/win/native/window_render_target.cpp +++ b/src/win/native/window_render_target.cpp @@ -1,14 +1,14 @@ #include "cru/win/native/window_render_target.hpp" -#include "cru/win/exception.hpp" -#include "cru/win/graph/win_native_factory.hpp" +#include "cru/win/graph/direct/direct_factory.hpp" +#include "cru/win/graph/direct/exception.hpp" #include "dpi_util.hpp" #include <cassert> -namespace cru::win::native { -WindowRenderTarget::WindowRenderTarget(graph::IWinNativeFactory* factory, - HWND hwnd) { +namespace cru::platform::native::win { +using namespace cru::platform::graph::win::direct; +WindowRenderTarget::WindowRenderTarget(IDirectFactory* factory, HWND hwnd) { this->factory_ = factory; const auto d3d11_device = factory->GetD3D11Device(); @@ -86,4 +86,4 @@ void WindowRenderTarget::CreateTargetBitmap() { ThrowIfFailed(factory_->GetD2D1DeviceContext()->CreateBitmapFromDxgiSurface( dxgi_back_buffer.Get(), &bitmap_properties, &target_bitmap_)); } -} // namespace cru::win::native +} // namespace cru::platform::native::win |