Fix CComponents::getScreen()/hide() & CComponentsItem::hideCCItem()

- Use CFrameBuffer::waitForIdle() to ensure that all GXA commands
 are finished before SaveScreen() / RestoreScreen() is executed


Origin commit data
------------------
Branch: ni/coolstream
Commit: 072097cd06
Author: Michael Liebmann <tuxcode.bbg@gmail.com>
Date: 2013-05-17 (Fri, 17 May 2013)

Origin message was:
------------------
* Fix CComponents::getScreen()/hide() & CComponentsItem::hideCCItem()

- Use CFrameBuffer::waitForIdle() to ensure that all GXA commands
 are finished before SaveScreen() / RestoreScreen() is executed


------------------
This commit was generated by Migit
This commit is contained in:
Michael Liebmann
2013-05-17 19:42:50 +02:00
parent 647030f669
commit a698ce281f
2 changed files with 3 additions and 0 deletions

View File

@@ -145,6 +145,7 @@ void CComponents::paintFbItems(bool do_save_bg)
inline fb_pixel_t* CComponents::getScreen(int ax, int ay, int dx, int dy)
{
fb_pixel_t* pixbuf = new fb_pixel_t[dx * dy];
frameBuffer->waitForIdle("CComponents::getScreen()");
frameBuffer->SaveScreen(ax, ay, dx, dy, pixbuf);
return pixbuf;
}
@@ -154,6 +155,7 @@ inline void CComponents::hide()
{
for(size_t i =0; i< v_fbdata.size() ;i++) {
if (v_fbdata[i].pixbuf != NULL){
frameBuffer->waitForIdle("CComponents::hide()");
frameBuffer->RestoreScreen(v_fbdata[i].x, v_fbdata[i].y, v_fbdata[i].dx, v_fbdata[i].dy, v_fbdata[i].pixbuf);
delete[] v_fbdata[i].pixbuf;
v_fbdata[i].pixbuf = NULL;