Support turbo2.
[vuplus_dvbapp] / lib / gui / ewidgetdesktop.cpp
index 05b4ec4..1951b61 100644 (file)
@@ -145,6 +145,9 @@ void eWidgetDesktop::recalcClipRegions(eWidget *root)
                                createBufferForWidget(root, 0);
 
                        comp = root->m_comp_buffer[i]; /* it might have changed. */
+                       
+                       if (!comp) 
+                               continue;  /* WAIT, don't we need to invalidate,whatever */
 
                                        /* CHECKME: don't we need to recalculate everything? after all, our buffer has changed and is likely to be cleared */
                        gRegion visible_before = root->m_visible_with_childs;
@@ -329,6 +332,10 @@ void eWidgetDesktop::paint()
        if (m_comp_mode == cmBuffered)
        {
 //             redrawComposition(0);
+       } else
+       {
+               gPainter painter(m_screen.m_dc);
+               painter.flush();
        }
 }
 
@@ -374,7 +381,10 @@ void eWidgetDesktop::makeCompatiblePixmap(gPixmap &pm)
        ePtr<gPixmap> target_pixmap;
        m_screen.m_dc->getPixmap(target_pixmap);
        
-       ASSERT(target_pixmap);
+       if (!target_pixmap) {
+               eDebug("no target pixmap! assuming bpp > 8 for accelerated graphics.");
+               return;
+       }
        
        if (target_pixmap->surface && target_pixmap->surface->bpp > 8)
                return;
@@ -511,4 +521,26 @@ void eWidgetDesktop::resize(eSize size)
 {
        m_screen.m_dirty_region = gRegion(eRect(ePoint(0, 0), size));
        m_screen.m_screen_size = size;
+#ifdef USE_LIBVUGLES2
+       gPainter painter(m_screen.m_dc);
+       painter.setView(size);
+#endif
+}
+
+void eWidgetDesktop::sendShow(ePoint point, eSize size)
+{
+       if(m_style_id!=0)
+               return;
+
+       gPainter painter(m_screen.m_dc);
+       painter.sendShow(point, size);
+}
+
+void eWidgetDesktop::sendHide(ePoint point, eSize size)
+{
+       if(m_style_id!=0)
+               return;
+
+       gPainter painter(m_screen.m_dc);
+       painter.sendHide(point, size);
 }