X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fgdi%2Fgfbdc.cpp;h=eda5bf21d478470871c59954739e81c9599240a8;hp=a4f65ebc2d24dc5082b18405bc4a66d59912df7b;hb=74f5884fdc5a23465cf40c27b5c069ff7d882746;hpb=66fe4b3122e8be475ed557a6324e709eb1ca520a diff --git a/lib/gdi/gfbdc.cpp b/lib/gdi/gfbdc.cpp index a4f65eb..eda5bf2 100644 --- a/lib/gdi/gfbdc.cpp +++ b/lib/gdi/gfbdc.cpp @@ -6,6 +6,9 @@ #include #include +#ifdef USE_LIBVUGLES2 +#include +#endif gFBDC::gFBDC() { @@ -125,8 +128,56 @@ void gFBDC::exec(const gOpcode *o) break; } case gOpcode::flush: +#ifdef USE_LIBVUGLES2 + if (gles_is_animation()) + gles_do_animation(); + else + fb->blit(); + + gles_flush(); +#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 + delete o->parm.setShowHideInfo; + 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 + delete o->parm.setShowHideInfo; + break; + } +#ifdef USE_LIBVUGLES2 + case gOpcode::sendShowItem: + { + gles_set_buffer((unsigned int *)surface.data); + gles_set_animation_listbox(o->parm.setShowItemInfo->dir, o->parm.setShowItemInfo->point.x(), o->parm.setShowItemInfo->point.y(), o->parm.setShowItemInfo->size.width(), o->parm.setShowItemInfo->size.height()); + delete o->parm.setShowItemInfo; + break; + } + case gOpcode::setFlush: + { + gles_set_flush(o->parm.setFlush->enable); + delete o->parm.setFlush; break; + } + case gOpcode::setView: + { + gles_viewport(o->parm.setViewInfo->size.width(), o->parm.setViewInfo->size.height(), fb->Stride()); + delete o->parm.setViewInfo; + break; + } +#endif default: gDC::exec(o); break;