diff options
Diffstat (limited to 'include/cru/platform/graphics/cairo/Base.h')
| -rw-r--r-- | include/cru/platform/graphics/cairo/Base.h | 29 |
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 |
