mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-29 16:31:11 +02:00
CCDraw: Add function for cleanup gradient background
This commit is contained in:
@@ -71,6 +71,8 @@ CCDraw::CCDraw() : COSDFader(g_settings.theme.menu_Content_alpha)
|
|||||||
cc_body_gradient_saturation = 0xC0;
|
cc_body_gradient_saturation = 0xC0;
|
||||||
cc_body_gradient_direction = cc_body_gradient_direction_old = CFrameBuffer::gradientVertical;
|
cc_body_gradient_direction = cc_body_gradient_direction_old = CFrameBuffer::gradientVertical;
|
||||||
|
|
||||||
|
gradientBgCleanUp = false;
|
||||||
|
|
||||||
v_fbdata.clear();
|
v_fbdata.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -591,6 +593,8 @@ void CCDraw::paintFbItems(bool do_save_bg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// if found empty gradient buffer, create it, otherwise paint from cache
|
// if found empty gradient buffer, create it, otherwise paint from cache
|
||||||
|
if (gradientBgCleanUp)
|
||||||
|
frameBuffer->paintBoxRel(fbdata.x, fbdata.y, fbdata.dx, fbdata.dy, 0, fbdata.r, fbdata.rtype);
|
||||||
if (fbdata.gradient_data->boxBuf == NULL){
|
if (fbdata.gradient_data->boxBuf == NULL){
|
||||||
dprintf(DEBUG_INFO, "\033[33m[CCDraw]\t[%s - %d], paint new gradient)...\033[0m\n", __func__, __LINE__);
|
dprintf(DEBUG_INFO, "\033[33m[CCDraw]\t[%s - %d], paint new gradient)...\033[0m\n", __func__, __LINE__);
|
||||||
fbdata.gradient_data->boxBuf = frameBuffer->paintBoxRel(fbdata.x, fbdata.y, fbdata.dx, fbdata.dy, 0, fbdata.gradient_data, fbdata.r, fbdata.rtype);
|
fbdata.gradient_data->boxBuf = frameBuffer->paintBoxRel(fbdata.x, fbdata.y, fbdata.dx, fbdata.dy, 0, fbdata.gradient_data, fbdata.r, fbdata.rtype);
|
||||||
@@ -616,8 +620,6 @@ void CCDraw::paintFbItems(bool do_save_bg)
|
|||||||
OnAfterPaintLayers();
|
OnAfterPaintLayers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void CCDraw::hide()
|
void CCDraw::hide()
|
||||||
{
|
{
|
||||||
//restore saved screen background of item if available
|
//restore saved screen background of item if available
|
||||||
|
@@ -142,6 +142,8 @@ class CCDraw : public COSDFader, public CComponentsSignals
|
|||||||
///sub: get gradient data evaluted with current parameters
|
///sub: get gradient data evaluted with current parameters
|
||||||
gradientData_t* getGradientData();
|
gradientData_t* getGradientData();
|
||||||
|
|
||||||
|
bool gradientBgCleanUp;
|
||||||
|
|
||||||
///rendering of framebuffer elements at once,
|
///rendering of framebuffer elements at once,
|
||||||
///elements are contained in v_fbdata, presumes added frambuffer elements with paintInit(),
|
///elements are contained in v_fbdata, presumes added frambuffer elements with paintInit(),
|
||||||
///parameter do_save_bg=true, saves background of element to pixel buffer, this can be restore with hide()
|
///parameter do_save_bg=true, saves background of element to pixel buffer, this can be restore with hide()
|
||||||
@@ -315,6 +317,9 @@ class CCDraw : public COSDFader, public CComponentsSignals
|
|||||||
///erase or paint over rendered objects without restore of background, it's similar to paintBackgroundBoxRel() known
|
///erase or paint over rendered objects without restore of background, it's similar to paintBackgroundBoxRel() known
|
||||||
///from CFrameBuffer but with possiblity to define color, default color is COL_BACKGROUND_PLUS_0 (empty background)
|
///from CFrameBuffer but with possiblity to define color, default color is COL_BACKGROUND_PLUS_0 (empty background)
|
||||||
virtual void kill(const fb_pixel_t& bg_color = COL_BACKGROUND_PLUS_0, const int& corner_radius = -1);
|
virtual void kill(const fb_pixel_t& bg_color = COL_BACKGROUND_PLUS_0, const int& corner_radius = -1);
|
||||||
|
|
||||||
|
virtual void enableGradientBgCleanUp(bool enable = true) { gradientBgCleanUp = enable; };
|
||||||
|
virtual void disableGradientBgCleanUp(){ enableGradientBgCleanUp(false); };
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user