From 5b46d14997c2ff2244f303216e4e286665ac8a42 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Mon, 3 Nov 2025 19:49:41 +0800 Subject: Merge platform/Resource.h to Base.h. --- include/cru/platform/Base.h | 12 +++++++++ include/cru/platform/Check.h | 2 +- include/cru/platform/Resource.h | 13 ---------- include/cru/platform/graphics/Base.h | 4 +++ include/cru/platform/graphics/Brush.h | 2 +- include/cru/platform/graphics/Font.h | 2 +- include/cru/platform/graphics/Geometry.h | 2 +- include/cru/platform/graphics/Image.h | 2 +- include/cru/platform/graphics/ImageFactory.h | 5 ++-- include/cru/platform/graphics/NullPainter.h | 3 ++- include/cru/platform/graphics/Painter.h | 2 +- include/cru/platform/graphics/Resource.h | 12 --------- .../platform/graphics/SvgGeometryBuilderMixin.h | 1 - include/cru/platform/graphics/TextLayout.h | 2 +- include/cru/platform/graphics/cairo/Base.h | 29 +++++++++++++++++++--- include/cru/platform/graphics/cairo/CairoBrush.h | 5 ++-- .../cru/platform/graphics/cairo/CairoGeometry.h | 5 ++-- .../platform/graphics/cairo/CairoGraphicsFactory.h | 5 ++-- include/cru/platform/graphics/cairo/CairoImage.h | 5 ++-- .../platform/graphics/cairo/CairoImageFactory.h | 5 ++-- include/cru/platform/graphics/cairo/CairoPainter.h | 5 ++-- .../cru/platform/graphics/cairo/CairoResource.h | 27 -------------------- include/cru/platform/graphics/cairo/PangoFont.h | 4 +-- .../cru/platform/graphics/cairo/PangoTextLayout.h | 5 ++-- include/cru/platform/graphics/direct2d/Resource.h | 2 +- include/cru/platform/graphics/quartz/Resource.h | 1 - .../graphics/web_canvas/WebCanvasResource.h | 6 ++--- include/cru/platform/gui/Base.h | 1 - include/cru/platform/gui/sdl/Base.h | 5 ++-- include/cru/platform/gui/win/Resource.h | 2 +- include/cru/platform/gui/xcb/Base.h | 2 +- include/cru/platform/osx/Resource.h | 2 +- 32 files changed, 85 insertions(+), 95 deletions(-) delete mode 100644 include/cru/platform/Resource.h delete mode 100644 include/cru/platform/graphics/Resource.h delete mode 100644 include/cru/platform/graphics/cairo/CairoResource.h (limited to 'include') diff --git a/include/cru/platform/Base.h b/include/cru/platform/Base.h index 4bcca380..9a8540f2 100644 --- a/include/cru/platform/Base.h +++ b/include/cru/platform/Base.h @@ -1,5 +1,9 @@ #pragma once +#include + +#include + #ifdef CRU_IS_DLL #ifdef CRU_PLATFORM_EXPORT_API #define CRU_PLATFORM_API __declspec(dllexport) @@ -9,3 +13,11 @@ #else #define CRU_PLATFORM_API #endif + + +namespace cru::platform { +struct CRU_PLATFORM_API IPlatformResource : virtual Interface { + virtual std::string GetPlatformId() const = 0; + virtual std::string GetDebugString(); +}; +} // namespace cru::platform diff --git a/include/cru/platform/Check.h b/include/cru/platform/Check.h index 6b002c0c..5b6cd2be 100644 --- a/include/cru/platform/Check.h +++ b/include/cru/platform/Check.h @@ -1,6 +1,6 @@ #pragma once +#include "Base.h" #include "Exception.h" -#include "Resource.h" #include #include diff --git a/include/cru/platform/Resource.h b/include/cru/platform/Resource.h deleted file mode 100644 index d49e9bab..00000000 --- a/include/cru/platform/Resource.h +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once -#include "Base.h" - -#include - -#include - -namespace cru::platform { -struct CRU_PLATFORM_API IPlatformResource : virtual Interface { - virtual std::string GetPlatformId() const = 0; - virtual std::string GetDebugString(); -}; -} // namespace cru::platform diff --git a/include/cru/platform/graphics/Base.h b/include/cru/platform/graphics/Base.h index c3381394..7f12dbef 100644 --- a/include/cru/platform/graphics/Base.h +++ b/include/cru/platform/graphics/Base.h @@ -32,4 +32,8 @@ struct TextHitTestResult { bool trailing; bool inside_text; }; + +struct CRU_PLATFORM_GRAPHICS_API IGraphicsResource : virtual IPlatformResource { + virtual IGraphicsFactory* GetGraphicsFactory() = 0; +}; } // namespace cru::platform::graphics diff --git a/include/cru/platform/graphics/Brush.h b/include/cru/platform/graphics/Brush.h index 6f4a6902..177de768 100644 --- a/include/cru/platform/graphics/Brush.h +++ b/include/cru/platform/graphics/Brush.h @@ -1,5 +1,5 @@ #pragma once -#include "Resource.h" +#include "Base.h" namespace cru::platform::graphics { struct CRU_PLATFORM_GRAPHICS_API IBrush : virtual IGraphicsResource {}; diff --git a/include/cru/platform/graphics/Font.h b/include/cru/platform/graphics/Font.h index de24222c..923d581c 100644 --- a/include/cru/platform/graphics/Font.h +++ b/include/cru/platform/graphics/Font.h @@ -1,5 +1,5 @@ #pragma once -#include "Resource.h" +#include "Base.h" #include diff --git a/include/cru/platform/graphics/Geometry.h b/include/cru/platform/graphics/Geometry.h index 2b251495..ef661f2a 100644 --- a/include/cru/platform/graphics/Geometry.h +++ b/include/cru/platform/graphics/Geometry.h @@ -1,5 +1,5 @@ #pragma once -#include "Resource.h" +#include "Base.h" #include diff --git a/include/cru/platform/graphics/Image.h b/include/cru/platform/graphics/Image.h index 17d2170e..22c011ef 100644 --- a/include/cru/platform/graphics/Image.h +++ b/include/cru/platform/graphics/Image.h @@ -1,5 +1,5 @@ #pragma once -#include "Resource.h" +#include "Base.h" namespace cru::platform::graphics { struct CRU_PLATFORM_GRAPHICS_API IImage : public virtual IGraphicsResource { diff --git a/include/cru/platform/graphics/ImageFactory.h b/include/cru/platform/graphics/ImageFactory.h index e7e28143..cb6cf492 100644 --- a/include/cru/platform/graphics/ImageFactory.h +++ b/include/cru/platform/graphics/ImageFactory.h @@ -1,6 +1,7 @@ #pragma once -#include "Resource.h" -#include "cru/base/io/Stream.h" +#include "Base.h" + +#include namespace cru::platform::graphics { enum class ImageFormat { Jpeg, Png, Gif }; diff --git a/include/cru/platform/graphics/NullPainter.h b/include/cru/platform/graphics/NullPainter.h index 42c2763e..29ed8a3e 100644 --- a/include/cru/platform/graphics/NullPainter.h +++ b/include/cru/platform/graphics/NullPainter.h @@ -1,6 +1,7 @@ #pragma once #include "Painter.h" -#include "cru/base/Base.h" + +#include namespace cru::platform::graphics { class NullPainter : public Object, public virtual IPainter { diff --git a/include/cru/platform/graphics/Painter.h b/include/cru/platform/graphics/Painter.h index 4268133e..de44c7b4 100644 --- a/include/cru/platform/graphics/Painter.h +++ b/include/cru/platform/graphics/Painter.h @@ -1,5 +1,5 @@ #pragma once -#include "Resource.h" +#include "Base.h" namespace cru::platform::graphics { diff --git a/include/cru/platform/graphics/Resource.h b/include/cru/platform/graphics/Resource.h deleted file mode 100644 index f910ca8a..00000000 --- a/include/cru/platform/graphics/Resource.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once -#include "Base.h" - -#include - -namespace cru::platform::graphics { -struct IGraphicsFactory; - -struct CRU_PLATFORM_GRAPHICS_API IGraphicsResource : virtual IPlatformResource { - virtual IGraphicsFactory* GetGraphicsFactory() = 0; -}; -} // namespace cru::platform::graphics diff --git a/include/cru/platform/graphics/SvgGeometryBuilderMixin.h b/include/cru/platform/graphics/SvgGeometryBuilderMixin.h index 586872b0..f88783c2 100644 --- a/include/cru/platform/graphics/SvgGeometryBuilderMixin.h +++ b/include/cru/platform/graphics/SvgGeometryBuilderMixin.h @@ -1,5 +1,4 @@ #pragma once - #include "Geometry.h" #include diff --git a/include/cru/platform/graphics/TextLayout.h b/include/cru/platform/graphics/TextLayout.h index 4c5302eb..90d2d044 100644 --- a/include/cru/platform/graphics/TextLayout.h +++ b/include/cru/platform/graphics/TextLayout.h @@ -1,5 +1,5 @@ #pragma once -#include "Resource.h" +#include "Base.h" #include #include diff --git a/include/cru/platform/graphics/cairo/Base.h b/include/cru/platform/graphics/cairo/Base.h index a776f90c..4338d7f7 100644 --- a/include/cru/platform/graphics/cairo/Base.h +++ b/include/cru/platform/graphics/cairo/Base.h @@ -1,5 +1,9 @@ #pragma once +#include + +#include + #ifdef CRU_PLATFORM_WINDOWS #ifdef CRU_PLATFORM_GRAPHICS_CAIRO_EXPORT_API #define CRU_PLATFORM_GRAPHICS_CAIRO_API __declspec(dllexport) @@ -10,12 +14,29 @@ #define CRU_PLATFORM_GRAPHICS_CAIRO_API #endif -#include - -#include "../Base.h" - namespace cru::platform::graphics::cairo { cairo_matrix_t CRU_PLATFORM_GRAPHICS_CAIRO_API Convert(const Matrix& matrix); Matrix CRU_PLATFORM_GRAPHICS_CAIRO_API Convert(const cairo_matrix_t* matrix); Matrix CRU_PLATFORM_GRAPHICS_CAIRO_API Convert(const cairo_matrix_t& matrix); + +class CairoGraphicsFactory; + +class CRU_PLATFORM_GRAPHICS_CAIRO_API CairoResource + : public Object, + public virtual IGraphicsResource { + public: + explicit CairoResource(CairoGraphicsFactory* factory); + + CRU_DELETE_COPY(CairoResource) + CRU_DELETE_MOVE(CairoResource) + + ~CairoResource() override; + + std::string GetPlatformId() const override; + IGraphicsFactory* GetGraphicsFactory() override; + CairoGraphicsFactory* GetCairoGraphicsFactory() const { return factory_; } + + private: + CairoGraphicsFactory* factory_; +}; } // namespace cru::platform::graphics::cairo diff --git a/include/cru/platform/graphics/cairo/CairoBrush.h b/include/cru/platform/graphics/cairo/CairoBrush.h index f2a15e06..0ba0723c 100644 --- a/include/cru/platform/graphics/cairo/CairoBrush.h +++ b/include/cru/platform/graphics/cairo/CairoBrush.h @@ -1,6 +1,7 @@ #pragma once -#include "CairoResource.h" -#include "cru/platform/graphics/Brush.h" +#include "Base.h" + +#include #include diff --git a/include/cru/platform/graphics/cairo/CairoGeometry.h b/include/cru/platform/graphics/cairo/CairoGeometry.h index b1c31a18..1d69ebf2 100644 --- a/include/cru/platform/graphics/cairo/CairoGeometry.h +++ b/include/cru/platform/graphics/cairo/CairoGeometry.h @@ -1,6 +1,7 @@ #pragma once -#include "CairoResource.h" -#include "cru/platform/graphics/Geometry.h" +#include "Base.h" + +#include #include diff --git a/include/cru/platform/graphics/cairo/CairoGraphicsFactory.h b/include/cru/platform/graphics/cairo/CairoGraphicsFactory.h index 563c6b40..545992fb 100644 --- a/include/cru/platform/graphics/cairo/CairoGraphicsFactory.h +++ b/include/cru/platform/graphics/cairo/CairoGraphicsFactory.h @@ -1,7 +1,8 @@ #pragma once -#include "../Factory.h" -#include "CairoResource.h" +#include "Base.h" + +#include #include #include diff --git a/include/cru/platform/graphics/cairo/CairoImage.h b/include/cru/platform/graphics/cairo/CairoImage.h index 61a2e65b..77209803 100644 --- a/include/cru/platform/graphics/cairo/CairoImage.h +++ b/include/cru/platform/graphics/cairo/CairoImage.h @@ -1,6 +1,7 @@ #pragma once -#include "../Image.h" -#include "CairoResource.h" +#include "Base.h" + +#include namespace cru::platform::graphics::cairo { class CRU_PLATFORM_GRAPHICS_CAIRO_API CairoImage : public CairoResource, diff --git a/include/cru/platform/graphics/cairo/CairoImageFactory.h b/include/cru/platform/graphics/cairo/CairoImageFactory.h index 6bc41309..c8f94a01 100644 --- a/include/cru/platform/graphics/cairo/CairoImageFactory.h +++ b/include/cru/platform/graphics/cairo/CairoImageFactory.h @@ -1,6 +1,7 @@ #pragma once -#include "../ImageFactory.h" -#include "CairoResource.h" +#include "Base.h" + +#include namespace cru::platform::graphics::cairo { class CairoImageFactory : public CairoResource, public virtual IImageFactory { diff --git a/include/cru/platform/graphics/cairo/CairoPainter.h b/include/cru/platform/graphics/cairo/CairoPainter.h index 1c071fb0..0833e42b 100644 --- a/include/cru/platform/graphics/cairo/CairoPainter.h +++ b/include/cru/platform/graphics/cairo/CairoPainter.h @@ -1,7 +1,8 @@ #pragma once +#include "Base.h" + #include -#include "../Painter.h" -#include "CairoResource.h" +#include #include diff --git a/include/cru/platform/graphics/cairo/CairoResource.h b/include/cru/platform/graphics/cairo/CairoResource.h deleted file mode 100644 index 14730e8a..00000000 --- a/include/cru/platform/graphics/cairo/CairoResource.h +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once -#include "Base.h" - -#include "../Resource.h" - -namespace cru::platform::graphics::cairo { -class CairoGraphicsFactory; - -class CRU_PLATFORM_GRAPHICS_CAIRO_API CairoResource - : public Object, - public virtual IGraphicsResource { - public: - explicit CairoResource(CairoGraphicsFactory* factory); - - CRU_DELETE_COPY(CairoResource) - CRU_DELETE_MOVE(CairoResource) - - ~CairoResource() override; - - std::string GetPlatformId() const override; - IGraphicsFactory* GetGraphicsFactory() override; - CairoGraphicsFactory* GetCairoGraphicsFactory() const { return factory_; } - - private: - CairoGraphicsFactory* factory_; -}; -} // namespace cru::platform::graphics::cairo diff --git a/include/cru/platform/graphics/cairo/PangoFont.h b/include/cru/platform/graphics/cairo/PangoFont.h index e8dbf3ec..e06cbc71 100644 --- a/include/cru/platform/graphics/cairo/PangoFont.h +++ b/include/cru/platform/graphics/cairo/PangoFont.h @@ -1,7 +1,7 @@ #pragma once +#include "Base.h" -#include "../Font.h" -#include "CairoResource.h" +#include #include diff --git a/include/cru/platform/graphics/cairo/PangoTextLayout.h b/include/cru/platform/graphics/cairo/PangoTextLayout.h index 270022ee..0ef900d0 100644 --- a/include/cru/platform/graphics/cairo/PangoTextLayout.h +++ b/include/cru/platform/graphics/cairo/PangoTextLayout.h @@ -1,8 +1,9 @@ #pragma once -#include "../TextLayout.h" -#include "CairoResource.h" +#include "Base.h" #include "PangoFont.h" +#include + #include namespace cru::platform::graphics::cairo { diff --git a/include/cru/platform/graphics/direct2d/Resource.h b/include/cru/platform/graphics/direct2d/Resource.h index 63459294..ca67a463 100644 --- a/include/cru/platform/graphics/direct2d/Resource.h +++ b/include/cru/platform/graphics/direct2d/Resource.h @@ -1,7 +1,7 @@ #pragma once #include "Base.h" -#include "cru/platform/graphics/Resource.h" +#include "cru/platform/graphics/Base.h" #include diff --git a/include/cru/platform/graphics/quartz/Resource.h b/include/cru/platform/graphics/quartz/Resource.h index 23fe6fa9..f683e5ad 100644 --- a/include/cru/platform/graphics/quartz/Resource.h +++ b/include/cru/platform/graphics/quartz/Resource.h @@ -1,6 +1,5 @@ #pragma once #include "cru/platform/graphics/Base.h" -#include "cru/platform/graphics/Resource.h" #include "cru/platform/osx/Resource.h" namespace cru::platform::graphics::quartz { diff --git a/include/cru/platform/graphics/web_canvas/WebCanvasResource.h b/include/cru/platform/graphics/web_canvas/WebCanvasResource.h index 6c8087d0..e3866f38 100644 --- a/include/cru/platform/graphics/web_canvas/WebCanvasResource.h +++ b/include/cru/platform/graphics/web_canvas/WebCanvasResource.h @@ -1,14 +1,14 @@ #pragma once #include "cru/base/Base.h" -#include "cru/platform/Resource.h" +#include "cru/platform/Base.h" namespace cru::platform::graphics::web_canvas { class WebCanvasGraphicsFactory; class WebCanvasResource : public Object, public virtual IPlatformResource { public: - static const String kPlatformId; + static const std::string kPlatformId; explicit WebCanvasResource(WebCanvasGraphicsFactory* factory); @@ -18,7 +18,7 @@ class WebCanvasResource : public Object, public virtual IPlatformResource { ~WebCanvasResource() override; public: - String GetPlatformId() const override; + std::string GetPlatformId() const override; WebCanvasGraphicsFactory* GetFactory() const { return factory_; } diff --git a/include/cru/platform/gui/Base.h b/include/cru/platform/gui/Base.h index f8ffbc51..9e4fb3c8 100644 --- a/include/cru/platform/gui/Base.h +++ b/include/cru/platform/gui/Base.h @@ -1,6 +1,5 @@ #pragma once #include // IWYU pragma: export -#include // IWYU pragma: export #ifdef CRU_IS_DLL #ifdef CRU_PLATFORM_GUI_EXPORT_API diff --git a/include/cru/platform/gui/sdl/Base.h b/include/cru/platform/gui/sdl/Base.h index 0de2fd1f..d4b61dbf 100644 --- a/include/cru/platform/gui/sdl/Base.h +++ b/include/cru/platform/gui/sdl/Base.h @@ -2,8 +2,7 @@ #pragma once #include - -#include "../../Resource.h" +#include namespace cru::platform::gui::sdl { class SdlResource : public Object, public virtual IPlatformResource { @@ -21,4 +20,4 @@ class SdlException : public PlatformException { public: using PlatformException::PlatformException; }; -} // namespace cru::platform::gui::xcb +} // namespace cru::platform::gui::sdl diff --git a/include/cru/platform/gui/win/Resource.h b/include/cru/platform/gui/win/Resource.h index 16cde194..2e2a225c 100644 --- a/include/cru/platform/gui/win/Resource.h +++ b/include/cru/platform/gui/win/Resource.h @@ -1,7 +1,7 @@ #pragma once #include "Base.h" -#include "cru/platform/Resource.h" +#include namespace cru::platform::gui::win { class CRU_WIN_GUI_API WinNativeResource : public Object, diff --git a/include/cru/platform/gui/xcb/Base.h b/include/cru/platform/gui/xcb/Base.h index 71007f87..0d72fbaa 100644 --- a/include/cru/platform/gui/xcb/Base.h +++ b/include/cru/platform/gui/xcb/Base.h @@ -1,7 +1,7 @@ #pragma once #include -#include +#include #include namespace cru::platform::gui::xcb { diff --git a/include/cru/platform/osx/Resource.h b/include/cru/platform/osx/Resource.h index 4a3b6b7d..59a545b2 100644 --- a/include/cru/platform/osx/Resource.h +++ b/include/cru/platform/osx/Resource.h @@ -1,5 +1,5 @@ #pragma once -#include "cru/platform/Resource.h" +#include namespace cru::platform::osx { class OsxResource : public Object, public virtual IPlatformResource { -- cgit v1.2.3