diff options
Diffstat (limited to 'include/cru/platform')
-rw-r--r-- | include/cru/platform/graphics/cairo/Base.h | 11 | ||||
-rw-r--r-- | include/cru/platform/graphics/cairo/CairoGraphicsFactory.h | 16 | ||||
-rw-r--r-- | include/cru/platform/graphics/cairo/CairoResource.h | 27 |
3 files changed, 54 insertions, 0 deletions
diff --git a/include/cru/platform/graphics/cairo/Base.h b/include/cru/platform/graphics/cairo/Base.h new file mode 100644 index 00000000..7e8eeaa1 --- /dev/null +++ b/include/cru/platform/graphics/cairo/Base.h @@ -0,0 +1,11 @@ +#pragma once + +#ifdef CRU_PLATFORM_WINDOWS +#ifdef CRU_PLATFORM_GRAPHICS_CAIRO_EXPORT_API +#define CRU_PLATFORM_GRAPHICS_CAIRO_API __declspec(dllexport) +#else +#define CRU_PLATFORM_GRAPHICS_CAIRO_API __declspec(dllimport) +#endif +#else +#define CRU_PLATFORM_GRAPHICS_CAIRO_API +#endif diff --git a/include/cru/platform/graphics/cairo/CairoGraphicsFactory.h b/include/cru/platform/graphics/cairo/CairoGraphicsFactory.h new file mode 100644 index 00000000..0c364d5e --- /dev/null +++ b/include/cru/platform/graphics/cairo/CairoGraphicsFactory.h @@ -0,0 +1,16 @@ +#pragma once + +#include "../Factory.h" +#include "CairoResource.h" + +namespace cru::platform::graphics::cairo { +class CRU_PLATFORM_GRAPHICS_CAIRO_API CairoGraphicsFactory + : public CairoResource, + public virtual IGraphicsFactory { + public: + CairoGraphicsFactory(); + ~CairoGraphicsFactory() override; + + public: +}; +} // namespace cru::platform::graphics::cairo diff --git a/include/cru/platform/graphics/cairo/CairoResource.h b/include/cru/platform/graphics/cairo/CairoResource.h new file mode 100644 index 00000000..bf35ab26 --- /dev/null +++ b/include/cru/platform/graphics/cairo/CairoResource.h @@ -0,0 +1,27 @@ +#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; + + String GetPlatformId() const override; + IGraphicsFactory* GetGraphicsFactory() override; + CairoGraphicsFactory* GetCairoGraphicsFactory() const { return factory_; } + + private: + CairoGraphicsFactory* factory_; +}; +} // namespace cru::platform::graphics::cairo |