diff options
| author | 2012-07-30 14:47:51 -0700 | |
|---|---|---|
| committer | 2012-07-31 18:55:16 -0700 | |
| commit | 42e1e0d482d774cf18a55773e434f02edb9e4462 (patch) | |
| tree | 33ac1bca20382f2e8ccbf176c89b3476f2ae5c9b /libs/hwui/Program.h | |
| parent | 8ab8fbbf46d8779f53301e7f706f97608eed7117 (diff) | |
Improve gradients
Avoid using textures for common gradients (two stops from 0.0 to 1.0)
Change-Id: Iff55d21b126c8cfc4cfb701669f2339c8f6b131a
Diffstat (limited to 'libs/hwui/Program.h')
| -rw-r--r-- | libs/hwui/Program.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libs/hwui/Program.h b/libs/hwui/Program.h index 491767fc51bf..1818f829bc19 100644 --- a/libs/hwui/Program.h +++ b/libs/hwui/Program.h @@ -79,6 +79,8 @@ namespace uirenderer { #define PROGRAM_HAS_GAMMA_CORRECTION 40 +#define PROGRAM_IS_SIMPLE_GRADIENT 41 + /////////////////////////////////////////////////////////////////////////////// // Types /////////////////////////////////////////////////////////////////////////////// @@ -96,14 +98,14 @@ typedef uint64_t programid; */ struct ProgramDescription { enum ColorModifier { - kColorNone, + kColorNone = 0, kColorMatrix, kColorLighting, kColorBlend }; enum Gradient { - kGradientLinear, + kGradientLinear = 0, kGradientCircular, kGradientSweep }; @@ -129,6 +131,7 @@ struct ProgramDescription { bool hasGradient; Gradient gradientType; + bool isSimpleGradient; SkXfermode::Mode shadersMode; @@ -170,6 +173,7 @@ struct ProgramDescription { hasGradient = false; gradientType = kGradientLinear; + isSimpleGradient = false; shadersMode = SkXfermode::kClear_Mode; @@ -255,6 +259,7 @@ struct ProgramDescription { if (hasExternalTexture) key |= programid(0x1) << PROGRAM_HAS_EXTERNAL_TEXTURE_SHIFT; if (hasTextureTransform) key |= programid(0x1) << PROGRAM_HAS_TEXTURE_TRANSFORM_SHIFT; if (hasGammaCorrection) key |= programid(0x1) << PROGRAM_HAS_GAMMA_CORRECTION; + if (isSimpleGradient) key |= programid(0x1) << PROGRAM_IS_SIMPLE_GRADIENT; return key; } |