- fix when not enough framebuffer memory available
[enigma2.git] / main / enigma.cpp
index 3a728b8df7e5e5d11b98989818ddfd1fd63ef3d4..f81a3c28f7ddf0a0f4ee870464599b8daa6c249b 100644 (file)
@@ -52,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)
@@ -64,6 +65,8 @@ void dumpRegion(const gRegion &region)
                }
                fprintf(stderr, "\n");
        }
+#endif
+
 }
 
 eWidgetDesktop *wdsk;
@@ -145,6 +148,8 @@ int main(int argc, char **argv)
 
        ePython python;
        eMain main;
+       
+       int double_buffer = 0;
 
 #if 1
 #ifdef SDLDC
@@ -153,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;