diff options
Diffstat (limited to 'src')
34 files changed, 35 insertions, 88 deletions
diff --git a/src/base/CMakeLists.txt b/src/base/CMakeLists.txt index aa9a8a6b..5892c136 100644 --- a/src/base/CMakeLists.txt +++ b/src/base/CMakeLists.txt @@ -52,14 +52,17 @@ endif() if (WIN32) target_sources(CruBase PRIVATE + platform/win/Base.cpp platform/win/BridgeComStream.cpp platform/win/ComAutoInit.cpp platform/win/DebugLogTarget.cpp - platform/win/Exception.cpp platform/win/StreamConvert.cpp platform/win/Win32FileStream.cpp ) - + target_compile_definitions(CruBase PUBLIC + UNICODE _UNICODE + _CRT_SECURE_NO_WARNINGS + ) target_link_libraries(CruBase PUBLIC Shlwapi.lib) endif() @@ -70,7 +73,6 @@ endif() if (WIN32) target_compile_definitions(CruBase PUBLIC CRU_PLATFORM_WINDOWS - _CRT_SECURE_NO_WARNINGS ) elseif(APPLE) target_compile_definitions(CruBase PUBLIC diff --git a/src/base/platform/win/Exception.cpp b/src/base/platform/win/Base.cpp index adc59e3c..5edf9779 100644 --- a/src/base/platform/win/Exception.cpp +++ b/src/base/platform/win/Base.cpp @@ -1,4 +1,4 @@ -#include "cru/base/platform/win/Exception.h" +#include "cru/base/platform/win/Base.h" #include <format> #include <optional> diff --git a/src/base/platform/win/BrigdeComStream.h b/src/base/platform/win/BrigdeComStream.h index 1621b567..ee189433 100644 --- a/src/base/platform/win/BrigdeComStream.h +++ b/src/base/platform/win/BrigdeComStream.h @@ -1,6 +1,5 @@ #pragma once -#include "cru/base/platform/win/WinPreConfig.h" - +#include "cru/base/platform/win/Base.h" #include "cru/base/io/Stream.h" #include <objidlbase.h> diff --git a/src/base/platform/win/ComAutoInit.cpp b/src/base/platform/win/ComAutoInit.cpp index 548a7bea..75ced601 100644 --- a/src/base/platform/win/ComAutoInit.cpp +++ b/src/base/platform/win/ComAutoInit.cpp @@ -1,5 +1,4 @@ #include "cru/base/platform/win/ComAutoInit.h" -#include "cru/base/platform/win/Exception.h" #include <combaseapi.h> diff --git a/src/base/platform/win/StreamConvert.cpp b/src/base/platform/win/StreamConvert.cpp index e0266765..cb353fd3 100644 --- a/src/base/platform/win/StreamConvert.cpp +++ b/src/base/platform/win/StreamConvert.cpp @@ -2,9 +2,7 @@ #include "BrigdeComStream.h" #include "Win32FileStreamPrivate.h" #include "cru/base/io/MemoryStream.h" -#include "cru/base/io/OpenFileFlag.h" #include "cru/base/platform/win/ComAutoInit.h" -#include "cru/base/platform/win/Exception.h" #include "cru/base/platform/win/Win32FileStream.h" #include <shlwapi.h> diff --git a/src/base/platform/win/Win32FileStream.cpp b/src/base/platform/win/Win32FileStream.cpp index 618ce386..96a3dc67 100644 --- a/src/base/platform/win/Win32FileStream.cpp +++ b/src/base/platform/win/Win32FileStream.cpp @@ -3,7 +3,6 @@ #include "Win32FileStreamPrivate.h" #include "cru/base/StringUtil.h" #include "cru/base/io/OpenFileFlag.h" -#include "cru/base/platform/win/Exception.h" #include <Windows.h> #include <coml2api.h> diff --git a/src/base/platform/win/Win32FileStreamPrivate.h b/src/base/platform/win/Win32FileStreamPrivate.h index 718f8d9a..c49fa913 100644 --- a/src/base/platform/win/Win32FileStreamPrivate.h +++ b/src/base/platform/win/Win32FileStreamPrivate.h @@ -1,4 +1,4 @@ -#include "cru/base/platform/win/WinPreConfig.h" +#include "cru/base/platform/win/Base.h" #include <objidl.h> diff --git a/src/platform/CMakeLists.txt b/src/platform/CMakeLists.txt index 62ebe9c7..0412662c 100644 --- a/src/platform/CMakeLists.txt +++ b/src/platform/CMakeLists.txt @@ -10,7 +10,6 @@ add_subdirectory(graphics) add_subdirectory(gui) if (WIN32) - add_subdirectory(win) add_subdirectory(graphics/direct2d) add_subdirectory(gui/win) elseif (APPLE) diff --git a/src/platform/graphics/direct2d/Resource.cpp b/src/platform/graphics/direct2d/Base.cpp index 2f1b7654..0dd4a7e1 100644 --- a/src/platform/graphics/direct2d/Resource.cpp +++ b/src/platform/graphics/direct2d/Base.cpp @@ -1,15 +1,18 @@ -#include "cru/platform/graphics/direct2d/Resource.h" +#include "cru/platform/graphics/direct2d/Base.h" #include "cru/platform/graphics/direct2d/Factory.h" namespace cru::platform::graphics::direct2d { -std::string DirectResource::kPlatformId = "Windows Direct"; DirectGraphicsResource::DirectGraphicsResource(DirectGraphicsFactory* factory) : factory_(factory) { Expects(factory); } +std::string DirectGraphicsResource::GetPlatformId() const { + return kPlatformId; +} + IGraphicsFactory* DirectGraphicsResource::GetGraphicsFactory() { return factory_; } diff --git a/src/platform/graphics/direct2d/Brush.cpp b/src/platform/graphics/direct2d/Brush.cpp index 27b76202..7ab35273 100644 --- a/src/platform/graphics/direct2d/Brush.cpp +++ b/src/platform/graphics/direct2d/Brush.cpp @@ -1,7 +1,4 @@ #include "cru/platform/graphics/direct2d/Brush.h" - -#include "cru/platform/graphics/direct2d/ConvertUtil.h" -#include "cru/platform/graphics/direct2d/Exception.h" #include "cru/platform/graphics/direct2d/Factory.h" namespace cru::platform::graphics::direct2d { diff --git a/src/platform/graphics/direct2d/CMakeLists.txt b/src/platform/graphics/direct2d/CMakeLists.txt index 4776e773..322c91e9 100644 --- a/src/platform/graphics/direct2d/CMakeLists.txt +++ b/src/platform/graphics/direct2d/CMakeLists.txt @@ -1,4 +1,5 @@ add_library(CruPlatformGraphicsDirect2d + Base.cpp Brush.cpp Font.cpp Geometry.cpp @@ -6,11 +7,10 @@ add_library(CruPlatformGraphicsDirect2d ImageFactory.cpp Factory.cpp Painter.cpp - Resource.cpp TextLayout.cpp WindowPainter.cpp WindowRenderTarget.cpp ) target_link_libraries(CruPlatformGraphicsDirect2d PUBLIC D3D11 D2d1 DWrite) -target_link_libraries(CruPlatformGraphicsDirect2d PUBLIC CruWinBase CruPlatformGraphics) +target_link_libraries(CruPlatformGraphicsDirect2d PUBLIC CruPlatformGraphics) target_compile_definitions(CruPlatformGraphicsDirect2d PRIVATE CRU_WIN_GRAPHICS_DIRECT_EXPORT_API) diff --git a/src/platform/graphics/direct2d/Factory.cpp b/src/platform/graphics/direct2d/Factory.cpp index af3f174d..414ef2ab 100644 --- a/src/platform/graphics/direct2d/Factory.cpp +++ b/src/platform/graphics/direct2d/Factory.cpp @@ -1,19 +1,16 @@ #include "cru/platform/graphics/direct2d/Factory.h" - -#include "cru/base/log/Logger.h" +#include "cru/platform/graphics/direct2d/Base.h" #include "cru/platform/graphics/direct2d/Brush.h" -#include "cru/platform/graphics/direct2d/Exception.h" #include "cru/platform/graphics/direct2d/Font.h" #include "cru/platform/graphics/direct2d/Geometry.h" #include "cru/platform/graphics/direct2d/ImageFactory.h" #include "cru/platform/graphics/direct2d/TextLayout.h" -#include <cstdlib> #include <utility> namespace cru::platform::graphics::direct2d { -DirectGraphicsFactory::DirectGraphicsFactory() { +DirectGraphicsFactory::DirectGraphicsFactory() : DirectGraphicsResource(this) { // TODO: Detect repeated creation. Because I don't think we can create two d2d // and dwrite factory so we need to prevent the "probably dangerous" behavior. diff --git a/src/platform/graphics/direct2d/Font.cpp b/src/platform/graphics/direct2d/Font.cpp index f8dfbf38..50f7c266 100644 --- a/src/platform/graphics/direct2d/Font.cpp +++ b/src/platform/graphics/direct2d/Font.cpp @@ -1,7 +1,5 @@ #include "cru/platform/graphics/direct2d/Font.h" - #include "cru/base/StringUtil.h" -#include "cru/platform/graphics/direct2d/Exception.h" #include "cru/platform/graphics/direct2d/Factory.h" #include <array> diff --git a/src/platform/graphics/direct2d/Geometry.cpp b/src/platform/graphics/direct2d/Geometry.cpp index 45971b76..89b2cfd9 100644 --- a/src/platform/graphics/direct2d/Geometry.cpp +++ b/src/platform/graphics/direct2d/Geometry.cpp @@ -1,8 +1,4 @@ #include "cru/platform/graphics/direct2d/Geometry.h" - -#include "cru/base/platform/win/Exception.h" -#include "cru/platform/graphics/direct2d/ConvertUtil.h" -#include "cru/platform/graphics/direct2d/Exception.h" #include "cru/platform/graphics/direct2d/Factory.h" #include <d2d1.h> diff --git a/src/platform/graphics/direct2d/Image.cpp b/src/platform/graphics/direct2d/Image.cpp index 2f60b373..1c4619b3 100644 --- a/src/platform/graphics/direct2d/Image.cpp +++ b/src/platform/graphics/direct2d/Image.cpp @@ -1,8 +1,4 @@ #include "cru/platform/graphics/direct2d/Image.h" -#include <d2d1_1.h> -#include "cru/base/platform/win/Exception.h" -#include "cru/platform/graphics/direct2d/ConvertUtil.h" -#include "cru/platform/graphics/direct2d/Exception.h" #include "cru/platform/graphics/direct2d/Factory.h" #include "cru/platform/graphics/direct2d/Painter.h" @@ -39,7 +35,7 @@ std::unique_ptr<IImage> Direct2DImage::CreateWithRect(const Rect& rect) { std::unique_ptr<IPainter> Direct2DImage::CreatePainter() { auto device_context = GetDirectFactory()->CreateD2D1DeviceContext(); device_context->SetTarget(d2d_bitmap_.Get()); - return std::make_unique<D2DDeviceContextPainter>(device_context.Detach(), - true); + return std::make_unique<D2DDeviceContextPainter>( + GetDirectFactory(), device_context.Detach(), true); } } // namespace cru::platform::graphics::direct2d diff --git a/src/platform/graphics/direct2d/ImageFactory.cpp b/src/platform/graphics/direct2d/ImageFactory.cpp index df162561..5e667f48 100644 --- a/src/platform/graphics/direct2d/ImageFactory.cpp +++ b/src/platform/graphics/direct2d/ImageFactory.cpp @@ -1,7 +1,5 @@ #include "cru/platform/graphics/direct2d/ImageFactory.h" -#include "cru/base/platform/win/Exception.h" #include "cru/base/platform/win/StreamConvert.h" -#include "cru/platform/graphics/direct2d/Exception.h" #include "cru/platform/graphics/direct2d/Factory.h" #include "cru/platform/graphics/direct2d/Image.h" diff --git a/src/platform/graphics/direct2d/Painter.cpp b/src/platform/graphics/direct2d/Painter.cpp index c62947e0..1744a638 100644 --- a/src/platform/graphics/direct2d/Painter.cpp +++ b/src/platform/graphics/direct2d/Painter.cpp @@ -1,18 +1,16 @@ #include "cru/platform/graphics/direct2d/Painter.h" - #include "cru/base/log/Logger.h" +#include "cru/platform/graphics/direct2d/Base.h" #include "cru/platform/graphics/direct2d/Brush.h" -#include "cru/platform/graphics/direct2d/ConvertUtil.h" -#include "cru/platform/graphics/direct2d/Exception.h" #include "cru/platform/graphics/direct2d/Geometry.h" #include "cru/platform/graphics/direct2d/Image.h" #include "cru/platform/graphics/direct2d/TextLayout.h" -#include <type_traits> - namespace cru::platform::graphics::direct2d { D2DDeviceContextPainter::D2DDeviceContextPainter( - ID2D1DeviceContext1* device_context, bool release) { + DirectGraphicsFactory* graphics_factory, + ID2D1DeviceContext1* device_context, bool release) + : DirectGraphicsResource(graphics_factory) { Expects(device_context); device_context_ = device_context; release_ = release; @@ -21,7 +19,8 @@ D2DDeviceContextPainter::D2DDeviceContextPainter( D2DDeviceContextPainter::~D2DDeviceContextPainter() { if (is_drawing_) { - CRU_LOG_TAG_INFO("You may forget to call EndDraw before destroying painter."); + CRU_LOG_TAG_INFO( + "You may forget to call EndDraw before destroying painter."); } if (release_) { diff --git a/src/platform/graphics/direct2d/TextLayout.cpp b/src/platform/graphics/direct2d/TextLayout.cpp index 1abaa383..ce584608 100644 --- a/src/platform/graphics/direct2d/TextLayout.cpp +++ b/src/platform/graphics/direct2d/TextLayout.cpp @@ -1,9 +1,5 @@ #include "cru/platform/graphics/direct2d/TextLayout.h" -#include <dwrite.h> - #include "cru/base/StringUtil.h" -#include "cru/base/log/Logger.h" -#include "cru/platform/graphics/direct2d/Exception.h" #include "cru/platform/graphics/direct2d/Factory.h" #include "cru/platform/graphics/direct2d/Font.h" diff --git a/src/platform/graphics/direct2d/WindowPainter.cpp b/src/platform/graphics/direct2d/WindowPainter.cpp index c950a2b6..b27fa735 100644 --- a/src/platform/graphics/direct2d/WindowPainter.cpp +++ b/src/platform/graphics/direct2d/WindowPainter.cpp @@ -1,12 +1,12 @@ #include "cru/platform/graphics/direct2d/WindowPainter.h" - -#include "cru/platform/graphics/direct2d/Exception.h" #include "cru/platform/graphics/direct2d/Factory.h" #include "cru/platform/graphics/direct2d/WindowRenderTarget.h" namespace cru::platform::graphics::direct2d { -D2DWindowPainter::D2DWindowPainter(D2DWindowRenderTarget* render_target) - : D2DDeviceContextPainter(render_target->GetD2D1DeviceContext()), +D2DWindowPainter::D2DWindowPainter(DirectGraphicsFactory* graphics_factory, + D2DWindowRenderTarget* render_target) + : D2DDeviceContextPainter(graphics_factory, + render_target->GetD2D1DeviceContext(), false), render_target_(render_target) {} D2DWindowPainter::~D2DWindowPainter() {} diff --git a/src/platform/graphics/direct2d/WindowRenderTarget.cpp b/src/platform/graphics/direct2d/WindowRenderTarget.cpp index a8d988f4..51b6ab22 100644 --- a/src/platform/graphics/direct2d/WindowRenderTarget.cpp +++ b/src/platform/graphics/direct2d/WindowRenderTarget.cpp @@ -1,6 +1,4 @@ #include "cru/platform/graphics/direct2d/WindowRenderTarget.h" - -#include "cru/platform/graphics/direct2d/Exception.h" #include "cru/platform/graphics/direct2d/Factory.h" namespace cru::platform::graphics::direct2d { diff --git a/src/platform/gui/win/Resource.cpp b/src/platform/gui/win/Base.cpp index 6fb4d634..2db07eb0 100644 --- a/src/platform/gui/win/Resource.cpp +++ b/src/platform/gui/win/Base.cpp @@ -1,4 +1,4 @@ -#include "cru/platform/gui/win/Resource.h" +#include "cru/platform/gui/win/Base.h" namespace cru::platform::gui::win { std::string WinNativeResource::kPlatformId = "Windows"; diff --git a/src/platform/gui/win/CMakeLists.txt b/src/platform/gui/win/CMakeLists.txt index 9f2263fd..d5ac6851 100644 --- a/src/platform/gui/win/CMakeLists.txt +++ b/src/platform/gui/win/CMakeLists.txt @@ -1,10 +1,10 @@ add_library(CruPlatformGuiWin + Base.cpp Clipboard.cpp Cursor.cpp GodWindow.cpp InputMethod.cpp Keyboard.cpp - Resource.cpp TimerManager.cpp UiApplication.cpp Window.cpp diff --git a/src/platform/gui/win/Clipboard.cpp b/src/platform/gui/win/Clipboard.cpp index 1ffb0254..f5d2513a 100644 --- a/src/platform/gui/win/Clipboard.cpp +++ b/src/platform/gui/win/Clipboard.cpp @@ -1,5 +1,4 @@ #include "cru/platform/gui/win/Clipboard.h" -#include <string> #include "cru/base/StringUtil.h" #include "cru/base/log/Logger.h" #include "cru/platform/gui/win/GodWindow.h" diff --git a/src/platform/gui/win/Cursor.cpp b/src/platform/gui/win/Cursor.cpp index c5424eb4..0ed40416 100644 --- a/src/platform/gui/win/Cursor.cpp +++ b/src/platform/gui/win/Cursor.cpp @@ -1,7 +1,5 @@ #include "cru/platform/gui/win/Cursor.h" - #include "cru/base/log/Logger.h" -#include "cru/platform/gui/win/Exception.h" #include <stdexcept> @@ -17,7 +15,7 @@ WinCursor::~WinCursor() { // This is not a fetal error but might still need notice because it may // cause leak. CRU_LOG_TAG_WARN("Failed to destroy a cursor. Last error code: {}", - ::GetLastError()); + ::GetLastError()); } } } diff --git a/src/platform/gui/win/GodWindow.cpp b/src/platform/gui/win/GodWindow.cpp index 7f24fd17..7cdf229c 100644 --- a/src/platform/gui/win/GodWindow.cpp +++ b/src/platform/gui/win/GodWindow.cpp @@ -1,7 +1,5 @@ #include "cru/platform/gui/win/GodWindow.h" - #include "cru/base/log/Logger.h" -#include "cru/platform/gui/win/Exception.h" #include "cru/platform/gui/win/UiApplication.h" #include "cru/platform/gui/win/WindowClass.h" diff --git a/src/platform/gui/win/InputMethod.cpp b/src/platform/gui/win/InputMethod.cpp index 1d7e2629..c5aca657 100644 --- a/src/platform/gui/win/InputMethod.cpp +++ b/src/platform/gui/win/InputMethod.cpp @@ -1,5 +1,4 @@ #include "cru/platform/gui/win/InputMethod.h" - #include "cru/base/StringUtil.h" #include "cru/base/log/Logger.h" #include "cru/platform/gui/DebugFlags.h" diff --git a/src/platform/gui/win/TimerManager.cpp b/src/platform/gui/win/TimerManager.cpp index 3fc9afe4..794e714c 100644 --- a/src/platform/gui/win/TimerManager.cpp +++ b/src/platform/gui/win/TimerManager.cpp @@ -1,8 +1,5 @@ #include "TimerManager.h" -#include "cru/platform/gui/win/Base.h" -#include "cru/platform/gui/win/Exception.h" - #include <functional> namespace cru::platform::gui::win { diff --git a/src/platform/gui/win/TimerManager.h b/src/platform/gui/win/TimerManager.h index 9b049310..b35ef1fc 100644 --- a/src/platform/gui/win/TimerManager.h +++ b/src/platform/gui/win/TimerManager.h @@ -1,7 +1,6 @@ #pragma once -#include "cru/base/Event.h" - #include "cru/base/Base.h" +#include "cru/base/Event.h" #include "cru/platform/gui/win/GodWindow.h" #include "cru/platform/gui/win/WindowNativeMessageEventArgs.h" diff --git a/src/platform/gui/win/UiApplication.cpp b/src/platform/gui/win/UiApplication.cpp index 9909cd47..0de79675 100644 --- a/src/platform/gui/win/UiApplication.cpp +++ b/src/platform/gui/win/UiApplication.cpp @@ -6,7 +6,6 @@ #include "cru/platform/gui/win/Base.h" #include "cru/platform/gui/win/Clipboard.h" #include "cru/platform/gui/win/Cursor.h" -#include "cru/platform/gui/win/Exception.h" #include "cru/platform/gui/win/GodWindow.h" #include "cru/platform/gui/win/Window.h" diff --git a/src/platform/gui/win/Window.cpp b/src/platform/gui/win/Window.cpp index 35f79a66..2acd4c75 100644 --- a/src/platform/gui/win/Window.cpp +++ b/src/platform/gui/win/Window.cpp @@ -9,7 +9,6 @@ #include "cru/platform/gui/Input.h" #include "cru/platform/gui/Window.h" #include "cru/platform/gui/win/Cursor.h" -#include "cru/platform/gui/win/Exception.h" #include "cru/platform/gui/win/InputMethod.h" #include "cru/platform/gui/win/Keyboard.h" #include "cru/platform/gui/win/UiApplication.h" @@ -219,7 +218,7 @@ void WinNativeWindow::RequestRepaint() { std::unique_ptr<graphics::IPainter> WinNativeWindow::BeginPaint() { if (hwnd_) return std::make_unique<graphics::direct2d::D2DWindowPainter>( - window_render_target_.get()); + application_->GetDirectFactory(), window_render_target_.get()); else return std::make_unique<graphics::NullPainter>(); } diff --git a/src/platform/gui/win/WindowClass.cpp b/src/platform/gui/win/WindowClass.cpp index 67ff4710..bf8e9c76 100644 --- a/src/platform/gui/win/WindowClass.cpp +++ b/src/platform/gui/win/WindowClass.cpp @@ -1,7 +1,5 @@ #include "cru/platform/gui/win/WindowClass.h" -#include "cru/platform/gui/win/Exception.h" - namespace cru::platform::gui::win { WindowClass::WindowClass(std::wstring name, WNDPROC window_proc, HINSTANCE h_instance) diff --git a/src/platform/gui/win/WindowManager.h b/src/platform/gui/win/WindowManager.h index 1bbcd25e..e674c951 100644 --- a/src/platform/gui/win/WindowManager.h +++ b/src/platform/gui/win/WindowManager.h @@ -1,7 +1,5 @@ #pragma once -#include "cru/platform/win/WinPreConfig.h" - -#include "cru/base/Base.h" +#include "cru/base/platform/win/Base.h" #include <map> #include <memory> diff --git a/src/platform/win/CMakeLists.txt b/src/platform/win/CMakeLists.txt deleted file mode 100644 index 06406267..00000000 --- a/src/platform/win/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ -add_library(CruWinBase - ForDllExport.cpp -) -target_compile_definitions(CruWinBase PUBLIC UNICODE _UNICODE) # use unicode -target_compile_definitions(CruWinBase PRIVATE CRU_WIN_EXPORT_API) -target_link_libraries(CruWinBase PUBLIC CruBase) diff --git a/src/platform/win/ForDllExport.cpp b/src/platform/win/ForDllExport.cpp deleted file mode 100644 index c177c481..00000000 --- a/src/platform/win/ForDllExport.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "cru/platform/win/Base.h" - -namespace cru::platform::win { -CRU_WIN_API void Dummy() {} -} // namespace cru::platform::win |
