X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/f4f8f9a2775fa1794de6935756f30bf4d99f33e8..a1595050bc43d70aa8df213c0c7ac8217d61b778:/lib/gdi/fb.cpp diff --git a/lib/gdi/fb.cpp b/lib/gdi/fb.cpp index adf06a2c..8e8221c3 100644 --- a/lib/gdi/fb.cpp +++ b/lib/gdi/fb.cpp @@ -27,7 +27,7 @@ fbClass *fbClass::getInstance() fbClass::fbClass(const char *fb) { - m_manual_blit=0; + m_manual_blit=-1; instance=this; locked=0; available=0; @@ -157,7 +157,7 @@ int fbClass::waitVSync() void fbClass::blit() { - if (m_manual_blit) { + if (m_manual_blit == 1) { if (ioctl(fd, FBIO_BLIT) < 0) perror("FBIO_BLIT"); } @@ -182,7 +182,13 @@ int fbClass::lock() { if (locked) return -1; - locked=1; + if (m_manual_blit == 1) + { + locked = 2; + disableManualBlit(); + } + else + locked = 1; return fd; } @@ -190,6 +196,8 @@ void fbClass::unlock() { if (!locked) return; + if (locked == 2) // re-enable manualBlit + enableManualBlit(); locked=0; SetMode(xRes, yRes, bpp); PutCMAP();