X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/a9b18981b6d73a0a8e377b7b7078b7073dce48bc..75b5dff4878843dec6913364bc044ab25c3b78a2:/lib/gdi/gpixmap.h diff --git a/lib/gdi/gpixmap.h b/lib/gdi/gpixmap.h index 732ebf9a..d717ec6f 100644 --- a/lib/gdi/gpixmap.h +++ b/lib/gdi/gpixmap.h @@ -8,20 +8,6 @@ #include #include #include -#include - -struct gColor -{ - int color; - gColor(int color): color(color) - { - } - gColor(): color(0) - { - } - operator int() const { return color; } - bool operator==(const gColor &o) const { return o.color==color; } -}; struct gRGB { @@ -35,6 +21,12 @@ struct gRGB gRGB(): b(0), g(0), r(0), a(0) { } + + unsigned long argb() const + { + return (a<<24)|(r<<16)|(g<<8)|b; + } + void operator=(unsigned long val) { b = val&0xFF; @@ -66,6 +58,20 @@ struct gRGB } }; +#ifndef SWIG +struct gColor +{ + int color; + gColor(int color): color(color) + { + } + gColor(): color(0) + { + } + operator int() const { return color; } + bool operator==(const gColor &o) const { return o.color==color; } +}; + struct gPalette { int start, colors; @@ -97,6 +103,9 @@ struct gSurface gSurface(eSize size, int bpp, int accel); ~gSurface(); }; +#endif + +class gRegion; class gPixmap: public iObject { @@ -123,11 +132,13 @@ public: virtual ~gPixmap(); eSize size() const { return eSize(surface->x, surface->y); } - + inline bool needClut() const { return surface && surface->bpp <= 8; } private: + bool must_delete_surface; #ifndef SWIG friend class gDC; void fill(const gRegion &clip, const gColor &color); + void fill(const gRegion &clip, const gRGB &color); void blit(const gPixmap &src, ePoint pos, const gRegion &clip, int flags=0);