#include <pthread.h>
#include <string>
#include <lib/base/object.h>
+#include <lib/base/smartptr.h>
#include <lib/base/elock.h>
#include <lib/gdi/erect.h>
#include <lib/gdi/fb.h>
+#include <lib/gdi/region.h>
struct gColor
{
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:
-
- std::string 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 std::string &family, int pointSize):
- family(family), pointSize(pointSize)
- {
- }
-
- virtual ~gFont()
- {
- }
-
- gFont()
- :pointSize(0)
- {
- }
-};
-
struct gSurface
{
int type;
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:
- friend class gDC;
- void fill(const gRegion &clip, const gColor &color);
-
+ DECLARE_REF(gPixmap);
+public:
enum
{
- blitAlphaTest=1
+ blitAlphaTest=1,
+ blitAlphaBlend=2
};
- 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:
+
+#ifndef SWIG
+ gPixmap(gSurface *surface);
+ gPixmap(eSize, int bpp, int accel = 0);
+
gSurface *surface;
eLock contentlock;
gPixmap *lock();
void unlock();
+#endif
+ virtual ~gPixmap();
- 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);
- virtual ~gPixmap();
+private:
+#ifndef SWIG
+ friend class gDC;
+ void fill(const gRegion &clip, const gColor &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
+ gPixmap();
+#endif
+
};
+TEMPLATE_TYPEDEF(ePtr<gPixmap>, gPixmapPtr);
+
#endif