git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
patch by Pieter Grimmerink: use ext3 largefile option only for disks > 4G
[enigma2.git]
/
lib
/
gdi
/
fb.cpp
diff --git
a/lib/gdi/fb.cpp
b/lib/gdi/fb.cpp
index adf06a2c12ea2033ad640f46de06dccab30c6f3f..8e8221c395e28b5dfe020dc0aedff7cd8c6a9602 100644
(file)
--- a/
lib/gdi/fb.cpp
+++ b/
lib/gdi/fb.cpp
@@
-27,7
+27,7
@@
fbClass *fbClass::getInstance()
fbClass::fbClass(const char *fb)
{
fbClass::fbClass(const char *fb)
{
- m_manual_blit=
0
;
+ m_manual_blit=
-1
;
instance=this;
locked=0;
available=0;
instance=this;
locked=0;
available=0;
@@
-157,7
+157,7
@@
int fbClass::waitVSync()
void fbClass::blit()
{
void fbClass::blit()
{
- if (m_manual_blit) {
+ if (m_manual_blit
== 1
) {
if (ioctl(fd, FBIO_BLIT) < 0)
perror("FBIO_BLIT");
}
if (ioctl(fd, FBIO_BLIT) < 0)
perror("FBIO_BLIT");
}
@@
-182,7
+182,13
@@
int fbClass::lock()
{
if (locked)
return -1;
{
if (locked)
return -1;
- locked=1;
+ if (m_manual_blit == 1)
+ {
+ locked = 2;
+ disableManualBlit();
+ }
+ else
+ locked = 1;
return fd;
}
return fd;
}
@@
-190,6
+196,8
@@
void fbClass::unlock()
{
if (!locked)
return;
{
if (!locked)
return;
+ if (locked == 2) // re-enable manualBlit
+ enableManualBlit();
locked=0;
SetMode(xRes, yRes, bpp);
PutCMAP();
locked=0;
SetMode(xRes, yRes, bpp);
PutCMAP();