diff options
author | 2017-05-25 10:38:07 -0400 | |
---|---|---|
committer | 2017-05-25 14:59:07 +0000 | |
commit | 4aed13889bd9085337e0d4c20df28686687b833b (patch) | |
tree | c48dfc9dd6b64b34849d9fe76b7e790ac1c3d6cd /src/gpu/SkGr.cpp | |
parent | 555ea8e994cede6508a6d8fb6c16f99331b2ed37 (diff) |
Reland of SkShaderBase
Introduce a private base class (SkShaderBase), to hide
implementation details from the public interface (SkShader).
Change-Id: Ib1d76cde880bd51868b97408710f8bb38128e536
Reviewed-on: https://skia-review.googlesource.com/17925
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'src/gpu/SkGr.cpp')
-rw-r--r-- | src/gpu/SkGr.cpp | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp index 81fde3579d..fd9be57359 100644 --- a/src/gpu/SkGr.cpp +++ b/src/gpu/SkGr.cpp @@ -30,6 +30,7 @@ #include "SkPM4fPriv.h" #include "SkPixelRef.h" #include "SkResourceCache.h" +#include "SkShaderBase.h" #include "SkTemplates.h" #include "effects/GrBicubicEffect.h" #include "effects/GrConstColorProcessor.h" @@ -424,10 +425,10 @@ static inline bool skpaint_to_grpaint_impl(GrContext* context, if (!primColorMode || blend_requires_shader(*primColorMode)) { if (shaderProcessor) { shaderFP = *shaderProcessor; - } else if (const SkShader* shader = skPaint.getShader()) { - shaderFP = shader->asFragmentProcessor(SkShader::AsFPArgs(context, &viewM, nullptr, - skPaint.getFilterQuality(), - rtc->getColorSpace())); + } else if (const auto* shader = as_SB(skPaint.getShader())) { + shaderFP = shader->asFragmentProcessor( + SkShaderBase::AsFPArgs(context, &viewM, nullptr, skPaint.getFilterQuality(), + rtc->getColorSpace())); if (!shaderFP) { return false; } @@ -599,12 +600,10 @@ bool SkPaintToGrPaintWithTexture(GrContext* context, GrPaint* grPaint) { sk_sp<GrFragmentProcessor> shaderFP; if (textureIsAlphaOnly) { - if (const SkShader* shader = paint.getShader()) { - shaderFP = shader->asFragmentProcessor(SkShader::AsFPArgs(context, - &viewM, - nullptr, - paint.getFilterQuality(), - rtc->getColorSpace())); + if (const auto* shader = as_SB(paint.getShader())) { + shaderFP = shader->asFragmentProcessor( + SkShaderBase::AsFPArgs(context, &viewM, nullptr, paint.getFilterQuality(), + rtc->getColorSpace())); if (!shaderFP) { return false; } |