- fix when not enough framebuffer memory available
[enigma2.git] / main / enigma.cpp
index 3d84db7d27537057547c1cdab7c5743370c27cc0..f81a3c28f7ddf0a0f4ee870464599b8daa6c249b 100644 (file)
@@ -1,4 +1,6 @@
+#undef WITH_SDL
 #ifdef WITH_SDL
+#error
 #define SDLDC
 #endif
 #include <stdio.h>
@@ -13,6 +15,7 @@
 #include <lib/gdi/grc.h>
 #include <lib/gdi/gfbdc.h>
 #ifdef WITH_SDL
+#error
 #include <lib/gdi/sdl.h>
 #endif
 #include <lib/gdi/font.h> 
@@ -49,6 +52,7 @@ void dumpRegion(const gRegion &region)
        fprintf(stderr, "extends: %d %d -> %d %d (%d rects)\n", 
                region.extends.left(), region.extends.top(),
                region.extends.right(), region.extends.bottom(), region.rects.size());
+#if 0
        for (int y=0; y<region.extends.bottom(); ++y)
        {
                for (int x=0; x<region.extends.right(); ++x)
@@ -61,6 +65,8 @@ void dumpRegion(const gRegion &region)
                }
                fprintf(stderr, "\n");
        }
+#endif
+
 }
 
 eWidgetDesktop *wdsk;
@@ -142,6 +148,8 @@ int main(int argc, char **argv)
 
        ePython python;
        eMain main;
+       
+       int double_buffer = 0;
 
 #if 1
 #ifdef SDLDC
@@ -150,15 +158,22 @@ int main(int argc, char **argv)
 #else
        ePtr<gFBDC> my_dc;
        gFBDC::getInstance(my_dc);
+       
+       double_buffer = my_dc->haveDoubleBuffering();
 #endif
 
        fontRenderClass::getInstance()->AddFont(FONTDIR "/arial.ttf", "Arial", 100);
 
        eWidgetDesktop dsk(eSize(720, 576));
        
+       if (double_buffer)
+       {
+               eDebug(" - double buffering found, enable buffered graphics mode.");
+               dsk.setCompositionMode(eWidgetDesktop::cmBuffered);
+       }
+       
        wdsk = &dsk;
 
-
        dsk.setDC(my_dc);
 
        ePtr<gPixmap> m_pm;