aboutsummaryrefslogtreecommitdiff
path: root/include/cru/platform/graphics/cairo/Base.h
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-11-03 19:49:41 +0800
committerYuqian Yang <crupest@crupest.life>2025-11-03 19:49:41 +0800
commit5b46d14997c2ff2244f303216e4e286665ac8a42 (patch)
tree4afc73dde8537a72184ad58058c5903c4a0492aa /include/cru/platform/graphics/cairo/Base.h
parentd740f0b4d21d1ae45e9d17b70d9cdc82bda709c7 (diff)
downloadcru-5b46d14997c2ff2244f303216e4e286665ac8a42.tar.gz
cru-5b46d14997c2ff2244f303216e4e286665ac8a42.tar.bz2
cru-5b46d14997c2ff2244f303216e4e286665ac8a42.zip
Merge platform/Resource.h to Base.h.
Diffstat (limited to 'include/cru/platform/graphics/cairo/Base.h')
-rw-r--r--include/cru/platform/graphics/cairo/Base.h29
1 files changed, 25 insertions, 4 deletions
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 <cru/platform/graphics/Base.h>
+
+#include <cairo/cairo.h>
+
#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 <cairo/cairo.h>
-
-#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