libenigma_gdi_a_SOURCES = \
region.cpp grc.cpp epng.cpp erect.cpp fb.cpp font.cpp font_arabic.cpp gfbdc.cpp \
- glcddc.cpp gpixmap.cpp lcd.cpp gfont.cpp accel.cpp picload.cpp picexif.cpp
+ glcddc.cpp gpixmap.cpp lcd.cpp gfont.cpp accel.cpp picload.cpp picexif.cpp \
+ compositing.cpp
if WITH_SDL
libenigma_gdi_a_SOURCES += sdl.cpp
--- /dev/null
+#include <lib/gdi/compositing.h>
+#include <lib/gdi/grc.h>
+
+DEFINE_REF(gCompositingData);
+
+gContext::~gContext()
+{
+}
+
--- /dev/null
+#ifndef __lib_gdi_compositing_h
+#define __lib_gdi_compositing_h
+
+#include <lib/gdi/gpixmap.h>
+
+#include <vector>
+
+class gDC;
+
+struct gContext
+{
+ ePtr<gDC> m_pixmap;
+ int m_reg_int[256];
+ float m_reg_float[256];
+ ~gContext();
+};
+
+struct gCompositingElement
+{
+ std::vector<unsigned int> m_code;
+ gContext m_context;
+};
+
+class gCompositingData: public Object
+{
+DECLARE_REF(gCompositingData);
+public:
+ int execute(void); /* returns ticks until next execution */
+private:
+ std::vector<gCompositingElement> m_elements;
+ gContext m_globals;
+};
+
+#endif