From ccf48eb93a101ba2412497ad5f3966e4f31d2178 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Fri, 7 Nov 2025 00:11:38 +0800 Subject: Win Resource.h to Base.h. --- src/platform/graphics/direct2d/Base.cpp | 19 +++++++++++++++++++ src/platform/graphics/direct2d/Brush.cpp | 3 --- src/platform/graphics/direct2d/CMakeLists.txt | 4 ++-- src/platform/graphics/direct2d/Factory.cpp | 7 ++----- src/platform/graphics/direct2d/Font.cpp | 2 -- src/platform/graphics/direct2d/Geometry.cpp | 4 ---- src/platform/graphics/direct2d/Image.cpp | 8 ++------ src/platform/graphics/direct2d/ImageFactory.cpp | 2 -- src/platform/graphics/direct2d/Painter.cpp | 13 ++++++------- src/platform/graphics/direct2d/Resource.cpp | 16 ---------------- src/platform/graphics/direct2d/TextLayout.cpp | 4 ---- src/platform/graphics/direct2d/WindowPainter.cpp | 8 ++++---- src/platform/graphics/direct2d/WindowRenderTarget.cpp | 2 -- 13 files changed, 35 insertions(+), 57 deletions(-) create mode 100644 src/platform/graphics/direct2d/Base.cpp delete mode 100644 src/platform/graphics/direct2d/Resource.cpp (limited to 'src/platform/graphics/direct2d') diff --git a/src/platform/graphics/direct2d/Base.cpp b/src/platform/graphics/direct2d/Base.cpp new file mode 100644 index 00000000..0dd4a7e1 --- /dev/null +++ b/src/platform/graphics/direct2d/Base.cpp @@ -0,0 +1,19 @@ +#include "cru/platform/graphics/direct2d/Base.h" + +#include "cru/platform/graphics/direct2d/Factory.h" + +namespace cru::platform::graphics::direct2d { + +DirectGraphicsResource::DirectGraphicsResource(DirectGraphicsFactory* factory) + : factory_(factory) { + Expects(factory); +} + +std::string DirectGraphicsResource::GetPlatformId() const { + return kPlatformId; +} + +IGraphicsFactory* DirectGraphicsResource::GetGraphicsFactory() { + return factory_; +} +} // namespace cru::platform::graphics::direct2d 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 #include 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 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 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 -#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 Direct2DImage::CreateWithRect(const Rect& rect) { std::unique_ptr Direct2DImage::CreatePainter() { auto device_context = GetDirectFactory()->CreateD2D1DeviceContext(); device_context->SetTarget(d2d_bitmap_.Get()); - return std::make_unique(device_context.Detach(), - true); + return std::make_unique( + 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 - 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/Resource.cpp b/src/platform/graphics/direct2d/Resource.cpp deleted file mode 100644 index 2f1b7654..00000000 --- a/src/platform/graphics/direct2d/Resource.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "cru/platform/graphics/direct2d/Resource.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); -} - -IGraphicsFactory* DirectGraphicsResource::GetGraphicsFactory() { - return factory_; -} -} // namespace cru::platform::graphics::direct2d 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 - #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 { -- cgit v1.2.3