X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/02226aee689caad4d05e65448ec7640d33e8f659..75b5dff4878843dec6913364bc044ab25c3b78a2:/lib/gdi/gpixmap.h diff --git a/lib/gdi/gpixmap.h b/lib/gdi/gpixmap.h index bd537164..d717ec6f 100644 --- a/lib/gdi/gpixmap.h +++ b/lib/gdi/gpixmap.h @@ -9,19 +9,6 @@ #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 { unsigned char b, g, r, a; @@ -34,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; @@ -65,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; @@ -96,6 +103,9 @@ struct gSurface gSurface(eSize size, int bpp, int accel); ~gSurface(); }; +#endif + +class gRegion; class gPixmap: public iObject { @@ -122,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);