X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/02226aee689caad4d05e65448ec7640d33e8f659..12e1565871ab397a50384af408b9120aeb35d077:/lib/gdi/gpixmap.h diff --git a/lib/gdi/gpixmap.h b/lib/gdi/gpixmap.h index bd537164..87fb5029 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,18 +103,23 @@ struct gSurface gSurface(eSize size, int bpp, int accel); ~gSurface(); }; +#endif + +class gRegion; +SWIG_IGNORE(gPixmap); class gPixmap: public iObject { DECLARE_REF(gPixmap); public: +#ifndef SWIG enum { blitAlphaTest=1, - blitAlphaBlend=2 + blitAlphaBlend=2, + blitScale=4 }; -#ifndef SWIG gPixmap(gSurface *surface); gPixmap(eSize, int bpp, int accel = 0); @@ -118,26 +130,24 @@ public: gPixmap *lock(); void unlock(); + inline bool needClut() const { return surface && surface->bpp <= 8; } #endif virtual ~gPixmap(); - eSize size() const { return eSize(surface->x, surface->y); } - private: -#ifndef SWIG + bool must_delete_surface; 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); + void blit(const gPixmap &src, const eRect &pos, const gRegion &clip, int flags=0); void mergePalette(const gPixmap &target); void line(const gRegion &clip, ePoint start, ePoint end, gColor color); -#else +#ifdef SWIG gPixmap(); #endif - }; - -TEMPLATE_TYPEDEF(ePtr, gPixmapPtr); +SWIG_TEMPLATE_TYPEDEF(ePtr, gPixmapPtr); #endif