| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "SkBitmapProcShader.h" | 8 #include "SkBitmapProcShader.h" |
| 9 #include "SkBitmapProvider.h" | 9 #include "SkBitmapProvider.h" |
| 10 #include "SkColorShader.h" | 10 #include "SkColorShader.h" |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 207 GrTextureParams::FilterMode textureFilterMode = | 207 GrTextureParams::FilterMode textureFilterMode = |
| 208 GrSkFilterQualityToGrFilterMode(args.fFilterQuality, *args.fViewMatrix, this
->getLocalMatrix(), | 208 GrSkFilterQualityToGrFilterMode(args.fFilterQuality, *args.fViewMatrix, this
->getLocalMatrix(), |
| 209 &doBicubic); | 209 &doBicubic); |
| 210 GrTextureParams params(tm, textureFilterMode); | 210 GrTextureParams params(tm, textureFilterMode); |
| 211 SkAutoTUnref<GrTexture> texture(as_IB(fImage)->asTextureRef(args.fContext, p
arams, | 211 SkAutoTUnref<GrTexture> texture(as_IB(fImage)->asTextureRef(args.fContext, p
arams, |
| 212 args.fGammaTreat
ment)); | 212 args.fGammaTreat
ment)); |
| 213 if (!texture) { | 213 if (!texture) { |
| 214 return nullptr; | 214 return nullptr; |
| 215 } | 215 } |
| 216 | 216 |
| 217 SkImageInfo info = as_IB(fImage)->onImageInfo(); |
| 218 sk_sp<GrColorSpaceXform> colorSpaceXform = GrColorSpaceXform::Make(info.colo
rSpace(), |
| 219 args.fDst
ColorSpace, |
| 220 info.alph
aType()); |
| 217 sk_sp<GrFragmentProcessor> inner; | 221 sk_sp<GrFragmentProcessor> inner; |
| 218 if (doBicubic) { | 222 if (doBicubic) { |
| 219 inner = GrBicubicEffect::Make(texture, nullptr, matrix, tm); | 223 inner = GrBicubicEffect::Make(texture, std::move(colorSpaceXform), matri
x, tm); |
| 220 } else { | 224 } else { |
| 221 inner = GrSimpleTextureEffect::Make(texture, nullptr, matrix, params); | 225 inner = GrSimpleTextureEffect::Make(texture, std::move(colorSpaceXform),
matrix, params); |
| 222 } | 226 } |
| 223 | 227 |
| 224 if (GrPixelConfigIsAlphaOnly(texture->config())) { | 228 if (GrPixelConfigIsAlphaOnly(texture->config())) { |
| 225 return inner; | 229 return inner; |
| 226 } | 230 } |
| 227 return sk_sp<GrFragmentProcessor>(GrFragmentProcessor::MulOutputByInputAlpha
(std::move(inner))); | 231 return sk_sp<GrFragmentProcessor>(GrFragmentProcessor::MulOutputByInputAlpha
(std::move(inner))); |
| 228 } | 232 } |
| 229 | 233 |
| 230 #endif | 234 #endif |
| 231 | 235 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 252 SkShader::TileMode mx = (SkShader::TileMode)buffer.readUInt(); | 256 SkShader::TileMode mx = (SkShader::TileMode)buffer.readUInt(); |
| 253 SkShader::TileMode my = (SkShader::TileMode)buffer.readUInt(); | 257 SkShader::TileMode my = (SkShader::TileMode)buffer.readUInt(); |
| 254 return image ? image->makeShader(mx, my, &lm) : nullptr; | 258 return image ? image->makeShader(mx, my, &lm) : nullptr; |
| 255 } | 259 } |
| 256 | 260 |
| 257 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkShader) | 261 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkShader) |
| 258 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkImageShader) | 262 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkImageShader) |
| 259 SkFlattenable::Register("SkBitmapProcShader", SkBitmapProcShader_CreateProc, kSk
Shader_Type); | 263 SkFlattenable::Register("SkBitmapProcShader", SkBitmapProcShader_CreateProc, kSk
Shader_Type); |
| 260 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END | 264 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END |
| 261 | 265 |
| OLD | NEW |