diff options
author | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-11-06 10:08:38 +0000 |
---|---|---|
committer | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-11-06 10:08:38 +0000 |
commit | c2a0ea6418988d4bcc0719f99b1a110cecd08679 (patch) | |
tree | a7469c12e8f9a196c04a0a8cf5a5fd625fa2fbd9 /src | |
parent | 6e3e42296b0d7a93325146d9c9a7e23ef90760fe (diff) |
Perlin issue fixed
BUG=skia:1799
R=sugoi@chromium.org, sugoi@google.com, senorblanco@chromium.org
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/59173005
git-svn-id: http://skia.googlecode.com/svn/trunk@12150 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src')
-rw-r--r-- | src/effects/SkPerlinNoiseShader.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/effects/SkPerlinNoiseShader.cpp b/src/effects/SkPerlinNoiseShader.cpp index af51afc031..f2ce67924e 100644 --- a/src/effects/SkPerlinNoiseShader.cpp +++ b/src/effects/SkPerlinNoiseShader.cpp @@ -7,6 +7,7 @@ #include "SkDither.h" #include "SkPerlinNoiseShader.h" +#include "SkColorFilter.h" #include "SkFlattenableBuffers.h" #include "SkShader.h" #include "SkUnPreMultiply.h" @@ -1295,6 +1296,16 @@ void GrGLSimplexNoise::setData(const GrGLUniformManager& uman, const GrDrawEffec GrEffectRef* SkPerlinNoiseShader::asNewEffect(GrContext* context, const SkPaint& paint) const { SkASSERT(NULL != context); + if (0 == fNumOctaves) { + SkColor clearColor = 0; + if (kFractalNoise_Type == fType) { + clearColor = SkColorSetARGB(paint.getAlpha() / 2, 127, 127, 127); + } + SkAutoTUnref<SkColorFilter> cf(SkColorFilter::CreateModeFilter( + clearColor, SkXfermode::kSrc_Mode)); + return cf->asNewEffect(context); + } + // Either we don't stitch tiles, either we have a valid tile size SkASSERT(!fStitchTiles || !fTileSize.isEmpty()); |