add stop service
[enigma2.git] / lib / gdi / gpixmap.h
index f0912334597bf3da8236291e2fb508f35f8422f3..8ea125741cc6e9b93d301ae242f83057774a0028 100644 (file)
@@ -2,7 +2,7 @@
 #define __gpixmap_h
 
 #include <pthread.h>
-#include <lib/base/estring.h>
+#include <string>
 #include <lib/base/object.h>
 #include <lib/base/elock.h>
 #include <lib/gdi/erect.h>
@@ -81,40 +81,6 @@ struct gLookup
        void build(int size, const gPalette &pal, const gRGB &start, const gRGB &end);
 };
 
-/**
- * \brief A softreference to a font.
- *
- * The font is specified by a name and a size.
- * \c gFont is part of the \ref gdi.
- */
-class gFont: public iObject
-{
-DECLARE_REF;
-public:
-
-       eString family;
-       int pointSize;
-       
-       /**
-        * \brief Constructs a font with the given name and size.
-        * \param family The name of the font, for example "NimbusSansL-Regular Sans L Regular".
-        * \param pointSize the size of the font in PIXELS.
-        */
-       gFont(const eString &family, int pointSize):
-                       family(family), pointSize(pointSize)
-       {
-       }
-       
-       virtual ~gFont()
-       {
-       }
-       
-       gFont()
-               :pointSize(0)
-       {
-       }
-};
-
 struct gSurface
 {
        int type;
@@ -122,31 +88,33 @@ struct gSurface
        gPalette clut;
        
        void *data;
-       virtual ~gSurface();
-};
+       int data_phys;
+       int offset; // only for backbuffers
 
-struct gSurfaceSystem: gSurface
-{
-       gSurfaceSystem(eSize size, int bpp);
-       ~gSurfaceSystem();
+       gSurface();
+       gSurface(eSize size, int bpp, int accel);
+       ~gSurface();
 };
 
-struct gPixmap: public iObject
+class gPixmap: public iObject
 {
-DECLARE_REF;
+private:
+DECLARE_REF(gPixmap);
 private:
        friend class gDC;
        void fill(const gRegion &clip, const gColor &color);
        
-       enum
-       {
-               blitAlphaTest=1
-       };
        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);
 public:
+       enum
+       {
+               blitAlphaTest=1,
+               blitAlphaBlend=2
+       };
+
        gSurface *surface;
        
        eLock contentlock;
@@ -155,11 +123,13 @@ public:
        gPixmap *lock();
        void unlock();
        
-       eSize getSize() const { return eSize(surface->x, surface->y); }
+       eSize size() const { return eSize(surface->x, surface->y); }
        
        gPixmap(gSurface *surface);
-       gPixmap(eSize, int bpp);
+       gPixmap(eSize, int bpp, int accel = 0);
        virtual ~gPixmap();
 };
 
+TEMPLATE_TYPEDEF(ePtr<gPixmap>, gPixmapPtr);
+
 #endif