+void WindowManager::updateScreen()
+{
+ qDebug("-=[updateScreen]=-");
+ int numberOfLayersToShow = 0;
+
+ QMap<int, QList<SimpleRect> >::iterator i = m_layouts.find(m_currentLayout);
+ if (m_layouts.end() != i)
+ {
+ numberOfLayersToShow += i.value().size();
+ qDebug("the current layout provides %d render areas", i.value().size());
+ }
+ else
+ {
+ qDebug("the current layout provides no render areas!");
+ }
+
+
+ t_ilm_layer renderOrder[numberOfLayersToShow];
+ int renderOrderCounter = 0;
+
+ qDebug("show home screen app");
+ if (-1 != m_homeScreenPid)
+ {
+ renderOrder[renderOrderCounter] = m_homeScreenPid;
+ ++renderOrderCounter;
+
+ ilm_layerSetVisibility(m_homeScreenPid, ILM_TRUE);
+ t_ilm_float opacity = 1.0;
+ ilm_layerSetOpacity(m_homeScreenPid, opacity);
+
+ // homescreen app always fullscreen in the back
+ t_ilm_uint screenID = 0;
+ t_ilm_uint width;
+ t_ilm_uint height;
+
+ ilm_getScreenResolution(screenID, &width, &height);
+
+ ilm_layerSetDestinationRectangle(m_homeScreenPid,
+ 0,
+ 0,
+ width,
+ height);
+ }
+
+
+ qDebug("show %d apps", numberOfLayersToShow);
+ for (int j = 0; j < numberOfLayersToShow; ++j)
+ {
+ int layerToShow = mp_layoutAreaToPidAssignment->find(j).value();
+ if (layerToShow != m_homeScreenPid)
+ {
+ qDebug(" app no. %d: %d", j, layerToShow);
+ renderOrder[renderOrderCounter] = layerToShow;
+ ++renderOrderCounter;
+
+ ilm_layerSetVisibility(layerToShow, ILM_TRUE);
+ t_ilm_float opacity = 1.0;
+ ilm_layerSetOpacity(layerToShow, opacity);
+
+ qDebug(" layout area %d", j);
+ qDebug(" x: %d", m_layouts.find(m_currentLayout).value()[j].x);
+ qDebug(" x: %d", m_layouts.find(m_currentLayout).value()[j].y);
+ qDebug(" w: %d", m_layouts.find(m_currentLayout).value()[j].width);
+ qDebug(" h: %d", m_layouts.find(m_currentLayout).value()[j].height);
+
+ ilm_layerSetDestinationRectangle(layerToShow,
+ m_layouts.find(m_currentLayout).value()[j].x,
+ m_layouts.find(m_currentLayout).value()[j].y,
+ m_layouts.find(m_currentLayout).value()[j].width,
+ m_layouts.find(m_currentLayout).value()[j].height);
+ }
+ }
+
+ qDebug("renderOrder");
+ for (int j = 0; j < renderOrderCounter; ++j)
+ {
+ qDebug(" %d: %d", j, renderOrder[j]);
+ }
+
+ ilm_displaySetRenderOrder(0, renderOrder, renderOrderCounter);
+
+ ilm_commitChanges();
+}
+