X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/d63d2c3c6cbbd574dda4f8b00ebe6c661735edd5..bc5fff23f0b5e52e67fa6df82506320523b6771a:/lib/gdi/gfbdc.cpp diff --git a/lib/gdi/gfbdc.cpp b/lib/gdi/gfbdc.cpp index 83f681d7..8dc0a7d2 100644 --- a/lib/gdi/gfbdc.cpp +++ b/lib/gdi/gfbdc.cpp @@ -14,27 +14,29 @@ gFBDC::gFBDC() if (!fb->Available()) eFatal("no framebuffer available"); - fb->SetMode(720, 576, 8); + fb->SetMode(720, 576, 32); + for (int y=0; y<576; y++) // make whole screen transparent memset(fb->lfb+y*fb->Stride(), 0x00, fb->Stride()); - pixmap=new gPixmap(); - pixmap->x=720; - pixmap->y=576; - pixmap->bpp=8; - pixmap->bypp=1; - pixmap->stride=fb->Stride(); - pixmap->data=fb->lfb; + surface.type = 0; + surface.x = 720; + surface.y = 576; + surface.bpp = 32; + surface.bypp = 4; + surface.stride = fb->Stride(); + surface.data = fb->lfb; + surface.clut.colors=256; + surface.clut.data=new gRGB[surface.clut.colors]; + + m_pixmap = new gPixmap(&surface); - pixmap->clut.colors=256; - pixmap->clut.data=new gRGB[pixmap->clut.colors]; - memset(pixmap->clut.data, 0, sizeof(*pixmap->clut.data)*pixmap->clut.colors); + memset(surface.clut.data, 0, sizeof(*surface.clut.data)*surface.clut.colors); reloadSettings(); } gFBDC::~gFBDC() { - delete pixmap; delete fb; instance=0; } @@ -72,10 +74,7 @@ void gFBDC::calcRamp() d=255; ramp[i]=d; -/* if ( eDVB::getInstance()->getmID == 1 ) - rampalpha[i]=i*alpha/65535; - else*/ - rampalpha[i]=i*alpha/256; + rampalpha[i]=i*alpha/256; } rampalpha[255]=255; // transparent BLEIBT bitte so. @@ -83,15 +82,15 @@ void gFBDC::calcRamp() void gFBDC::setPalette() { - if (!pixmap->clut.data) + if (!surface.clut.data) return; for (int i=0; i<256; ++i) { - fb->CMAP()->red[i]=ramp[pixmap->clut.data[i].r]<<8; - fb->CMAP()->green[i]=ramp[pixmap->clut.data[i].g]<<8; - fb->CMAP()->blue[i]=ramp[pixmap->clut.data[i].b]<<8; - fb->CMAP()->transp[i]=rampalpha[pixmap->clut.data[i].a]<<8; + fb->CMAP()->red[i]=ramp[surface.clut.data[i].r]<<8; + fb->CMAP()->green[i]=ramp[surface.clut.data[i].g]<<8; + fb->CMAP()->blue[i]=ramp[surface.clut.data[i].b]<<8; + fb->CMAP()->transp[i]=rampalpha[surface.clut.data[i].a]<<8; if (!fb->CMAP()->red[i]) fb->CMAP()->red[i]=0x100; } @@ -104,21 +103,16 @@ void gFBDC::exec(gOpcode *o) { case gOpcode::setPalette: { - gPixmapDC::exec(o); + gDC::exec(o); setPalette(); break; } default: - gPixmapDC::exec(o); + gDC::exec(o); break; } } -gFBDC *gFBDC::getInstance() -{ - return instance; -} - void gFBDC::setAlpha(int a) { alpha=a; @@ -163,4 +157,8 @@ void gFBDC::reloadSettings() setPalette(); } -eAutoInitP0 init_gFBDC(eAutoInitNumbers::graphic+1, "GFBDC"); +// eAutoInitPtr init_gFBDC(eAutoInitNumbers::graphic-1, "GFBDC"); +#ifndef SDLDC +eAutoInitPtr init_gFBDC(eAutoInitNumbers::graphic-1, "GFBDC"); +#endif +