X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fgdi%2Fgfbdc.cpp;h=d3cc55f2b157576f4d18f73a07808b4320058530;hb=2872929ce24198202fa096d28ab94dea9f925450;hp=80dd2479b52b92d97a983b5ddf38c4de6dd8b326;hpb=b23e0f70b3b0e6815b784f29cbe7d09982116c41;p=vuplus_dvbapp diff --git a/lib/gdi/gfbdc.cpp b/lib/gdi/gfbdc.cpp index 80dd247..d3cc55f 100644 --- a/lib/gdi/gfbdc.cpp +++ b/lib/gdi/gfbdc.cpp @@ -6,19 +6,12 @@ #include #include - -gFBDC *gFBDC::instance; - -ePtr NewgFBDCPtr(void) -{ - ePtr ptr; - gFBDC::getInstance(ptr); - return ptr; -} +#ifdef USE_LIBVUGLES2 +#include +#endif gFBDC::gFBDC() { - instance=this; fb=new fbClass; if (!fb->Available()) @@ -34,7 +27,6 @@ gFBDC::~gFBDC() { delete fb; delete[] surface.clut.data; - instance=0; } void gFBDC::calcRamp() @@ -91,7 +83,7 @@ void gFBDC::setPalette() fb->PutCMAP(); } -void gFBDC::exec(gOpcode *o) +void gFBDC::exec(const gOpcode *o) { switch (o->opcode) { @@ -136,8 +128,38 @@ void gFBDC::exec(gOpcode *o) break; } case gOpcode::flush: +#ifdef USE_LIBVUGLES2 + if (gles_is_animation()) + gles_do_animation(); + else + fb->blit(); +#else fb->blit(); +#endif break; + case gOpcode::sendShow: + { +#ifdef USE_LIBVUGLES2 + gles_set_buffer((unsigned int *)surface.data); + gles_set_animation(1, o->parm.setShowHideInfo->point.x(), o->parm.setShowHideInfo->point.y(), o->parm.setShowHideInfo->size.width(), o->parm.setShowHideInfo->size.height()); +#endif + break; + } + case gOpcode::sendHide: + { +#ifdef USE_LIBVUGLES2 + gles_set_buffer((unsigned int *)surface.data); + gles_set_animation(0, o->parm.setShowHideInfo->point.x(), o->parm.setShowHideInfo->point.y(), o->parm.setShowHideInfo->size.width(), o->parm.setShowHideInfo->size.height()); +#endif + break; + } +#ifdef USE_LIBVUGLES2 + case gOpcode::setView: + { + gles_viewport(o->parm.setViewInfo->size.width(), o->parm.setViewInfo->size.height(), fb->Stride()); + break; + } +#endif default: gDC::exec(o); break; @@ -242,7 +264,4 @@ void gFBDC::reloadSettings() setPalette(); } -// eAutoInitPtr init_gFBDC(eAutoInitNumbers::graphic-1, "GFBDC"); -#ifndef WITH_SDL eAutoInitPtr init_gFBDC(eAutoInitNumbers::graphic-1, "GFBDC"); -#endif