enable color-to-color gradient

This commit is contained in:
TangoCash
2015-05-04 08:52:29 +02:00
committed by svenhoefer
parent 736dcb20db
commit a8be4f6365
3 changed files with 12 additions and 1 deletions

View File

@@ -66,6 +66,8 @@ CComponents::CComponents() : COSDFader(g_settings.theme.menu_Content_alpha)
v_fbdata.clear();
saved_screen.pixbuf = NULL;
col_body_gradient = false;
cc_body_gradient_c2c = true;
cc_body_gradient_2nd_col= COL_MENUCONTENT_PLUS_0;
cc_gradientData.gradientBuf = NULL;
cc_gradientData.boxBuf = NULL;
}

View File

@@ -96,6 +96,10 @@ class CComponents : public CComponentsSignals, public COSDFader
uint8_t cc_body_gradient_saturation;
///property: background gradient direction
int cc_body_gradient_direction;
///property: background gradient mode
bool cc_body_gradient_c2c;
///property: background gradient 2nd color
fb_pixel_t cc_body_gradient_2nd_col;
///property: true=component has shadow
bool shadow;
@@ -210,6 +214,8 @@ class CComponents : public CComponentsSignals, public COSDFader
cc_body_gradient_intensity_v_max=v_max;
cc_body_gradient_saturation=s; };
virtual void set2ndColor(fb_pixel_t col_2nd){ cc_body_gradient_c2c = true; cc_body_gradient_2nd_col = col_2nd;};
///get frame color
inline virtual fb_pixel_t getColorFrame(){return col_frame;};
///get body color

View File

@@ -268,6 +268,9 @@ void CComponentsItem::initBodyGradient()
if (cc_gradientData.gradientBuf == NULL) {
CColorGradient ccGradient;
int gsize = cc_body_gradient_direction == CFrameBuffer::gradientVertical ? height : width;
if (cc_body_gradient_c2c)
cc_gradientData.gradientBuf = ccGradient.gradientColorToColor(col_body, cc_body_gradient_2nd_col, NULL, gsize, cc_body_gradient_mode, cc_body_gradient_intensity);
else
cc_gradientData.gradientBuf = ccGradient.gradientOneColor(col_body, NULL, gsize, cc_body_gradient_mode, cc_body_gradient_intensity, cc_body_gradient_intensity_v_min, cc_body_gradient_intensity_v_max, cc_body_gradient_saturation);
old_gradient_color = col_body;
}