aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/shaders/SkImageShader.cpp
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2017-10-25 15:12:19 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-10-25 19:32:20 +0000
commit4cbb6e6d551e8bea2c040b1aa9dce253cffb9af0 (patch)
treea93401716e0f5d45760da36b49c8cf8ea8e1cc21 /src/shaders/SkImageShader.cpp
parent291af4f17e0630f78a8c4d22f304243fb28ae42b (diff)
Pass GrRenderTargetContext's GrColorSpaceInfo to SkShader and SkColorFilter.
Also to SkColorTo(Premul|Unpremul)GrColor4f. This can avoid cache lookups to find GrColorSpaceXforms as the xform pointer is stored in GrColorSpaceInfo after the first lookup. Also uses GrColorSpaceInfo to construct GrTextUtils::Paint. Bug: skia: Change-Id: Idf19d512a60d2269e6921c7fb54d93aee499a70d Reviewed-on: https://skia-review.googlesource.com/63660 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
Diffstat (limited to 'src/shaders/SkImageShader.cpp')
-rw-r--r--src/shaders/SkImageShader.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/shaders/SkImageShader.cpp b/src/shaders/SkImageShader.cpp
index 9e71027b1c..753024dbad 100644
--- a/src/shaders/SkImageShader.cpp
+++ b/src/shaders/SkImageShader.cpp
@@ -165,10 +165,9 @@ void SkImageShader::toString(SkString* str) const {
#if SK_SUPPORT_GPU
-#include "SkGr.h"
-#include "GrColorSpaceXform.h"
+#include "GrColorSpaceInfo.h"
#include "GrContext.h"
-#include "effects/GrSimpleTextureEffect.h"
+#include "SkGr.h"
#include "effects/GrBicubicEffect.h"
#include "effects/GrSimpleTextureEffect.h"
@@ -213,7 +212,8 @@ std::unique_ptr<GrFragmentProcessor> SkImageShader::asFragmentProcessor(
sk_sp<SkColorSpace> texColorSpace;
SkScalar scaleAdjust[2] = { 1.0f, 1.0f };
sk_sp<GrTextureProxy> proxy(as_IB(fImage)->asTextureProxyRef(
- args.fContext, samplerState, args.fDstColorSpace, &texColorSpace, scaleAdjust));
+ args.fContext, samplerState, args.fDstColorSpaceInfo->colorSpace(), &texColorSpace,
+ scaleAdjust));
if (!proxy) {
return nullptr;
}
@@ -229,7 +229,7 @@ std::unique_ptr<GrFragmentProcessor> SkImageShader::asFragmentProcessor(
inner = GrSimpleTextureEffect::Make(std::move(proxy), lmInverse, samplerState);
}
inner = GrColorSpaceXformEffect::Make(std::move(inner), texColorSpace.get(),
- args.fDstColorSpace);
+ args.fDstColorSpaceInfo->colorSpace());
if (isAlphaOnly) {
return inner;
}