fbClass::fbClass(const char *fb)
{
- m_manual_blit=0;
+ m_manual_blit=-1;
instance=this;
locked=0;
available=0;
void fbClass::blit()
{
- if (m_manual_blit) {
+ if (m_manual_blit == 1) {
if (ioctl(fd, FBIO_BLIT) < 0)
perror("FBIO_BLIT");
}
{
if (locked)
return -1;
- locked=1;
+ if (m_manual_blit == 1)
+ {
+ locked = 2;
+ disableManualBlit();
+ }
+ else
+ locked = 1;
return fd;
}
{
if (!locked)
return;
+ if (locked == 2) // re-enable manualBlit
+ enableManualBlit();
locked=0;
SetMode(xRes, yRes, bpp);
PutCMAP();