diff options
Diffstat (limited to 'include/cru/platform/graphics')
-rw-r--r-- | include/cru/platform/graphics/cairo/CairoBrush.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/include/cru/platform/graphics/cairo/CairoBrush.h b/include/cru/platform/graphics/cairo/CairoBrush.h new file mode 100644 index 00000000..818295a3 --- /dev/null +++ b/include/cru/platform/graphics/cairo/CairoBrush.h @@ -0,0 +1,32 @@ +#pragma once +#include "CairoResource.h" +#include "cru/platform/graphics/Brush.h" + +#include <cairo/cairo.h> + +namespace cru::platform::graphics::cairo { +class CRU_PLATFORM_GRAPHICS_CAIRO_API CairoBrush : public CairoResource, + public virtual IBrush { + public: + explicit CairoBrush(CairoGraphicsFactory* factory); + ~CairoBrush() override; +}; + +class CRU_PLATFORM_GRAPHICS_CAIRO_API CairoSolidColorBrush + : public CairoBrush, + public virtual ISolidColorBrush { + public: + explicit CairoSolidColorBrush(CairoGraphicsFactory* factory); + ~CairoSolidColorBrush() override; + + public: + Color GetColor() override; + void SetColor(const Color& color) override; + + cairo_pattern_t* GetCairoPattern() const { return pattern_; } + + private: + Color color_; + cairo_pattern_t* pattern_; +}; +} // namespace cru::platform::graphics::cairo |