X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fgdi%2Fgpixmap.h;h=e3798bf72fd27ef9d1b940eea88aa422b6067105;hp=732ebf9a9f6f17b2a552852218bd4ee7a8e7ee4d;hb=d732b430ccc1d1a78e666f16553b2e3c5dd131a8;hpb=a9b18981b6d73a0a8e377b7b7078b7073dce48bc diff --git a/lib/gdi/gpixmap.h b/lib/gdi/gpixmap.h index 732ebf9..e3798bf 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,18 +103,22 @@ 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 }; -#ifndef SWIG gPixmap(gSurface *surface); gPixmap(eSize, int bpp, int accel = 0); @@ -119,26 +129,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 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