Chromium Code Reviews| Index: src/effects/gradients/SkGradientShader.cpp |
| diff --git a/src/effects/gradients/SkGradientShader.cpp b/src/effects/gradients/SkGradientShader.cpp |
| index eccc21ac6e4cbdb68452e70d19cfe47c4f4f2d5e..18284120bcad8a541b99d7c102d0247e570d3d88 100644 |
| --- a/src/effects/gradients/SkGradientShader.cpp |
| +++ b/src/effects/gradients/SkGradientShader.cpp |
| @@ -1332,10 +1332,8 @@ void GrGradientEffect::GLSLProcessor::emitColor(GrGLSLFPFragmentBuilder* fragBui |
| ///////////////////////////////////////////////////////////////////// |
| -GrGradientEffect::GrGradientEffect(GrContext* ctx, |
| - const SkGradientShaderBase& shader, |
| - const SkMatrix& matrix, |
| - SkShader::TileMode tileMode) { |
| +GrGradientEffect::GrGradientEffect(const GrGradientEffect::CreateArgs& args) { |
|
bsalomon
2016/09/14 16:15:13
Can just say CreateArgs for the param type.
|
| + const SkGradientShaderBase& shader(*args.fShader); |
| fIsOpaque = shader.isOpaque(); |
| @@ -1354,7 +1352,7 @@ GrGradientEffect::GrGradientEffect(GrContext* ctx, |
| } |
| #if GR_GL_USE_ACCURATE_HARD_STOP_GRADIENTS |
| - fTileMode = tileMode; |
| + fTileMode = args.fTileMode; |
| #endif |
| switch (fColorType) { |
| @@ -1374,7 +1372,7 @@ GrGradientEffect::GrGradientEffect(GrContext* ctx, |
| fPremulType = kAfterInterp_PremulType; |
| } |
| - fCoordTransform.reset(kCoordSet, matrix); |
| + fCoordTransform.reset(kCoordSet, *args.fMatrix); |
| break; |
| case kTexture_ColorType: |
| @@ -1389,8 +1387,8 @@ GrGradientEffect::GrGradientEffect(GrContext* ctx, |
| desc.fWidth = bitmap.width(); |
| desc.fHeight = 32; |
| desc.fRowHeight = bitmap.height(); |
| - desc.fContext = ctx; |
| - desc.fConfig = SkImageInfo2GrPixelConfig(bitmap.info(), *ctx->caps()); |
| + desc.fContext = args.fContext; |
| + desc.fConfig = SkImageInfo2GrPixelConfig(bitmap.info(), *args.fContext->caps()); |
| fAtlas = GrTextureStripAtlas::GetAtlas(desc); |
| SkASSERT(fAtlas); |
| @@ -1398,21 +1396,22 @@ GrGradientEffect::GrGradientEffect(GrContext* ctx, |
| // y-clamp. |
| GrTextureParams params; |
| params.setFilterMode(GrTextureParams::kBilerp_FilterMode); |
| - params.setTileModeX(tileMode); |
| + params.setTileModeX(args.fTileMode); |
| fRow = fAtlas->lockRow(bitmap); |
| if (-1 != fRow) { |
| fYCoord = fAtlas->getYOffset(fRow)+SK_ScalarHalf*fAtlas->getNormalizedTexelHeight(); |
| - fCoordTransform.reset(kCoordSet, matrix, fAtlas->getTexture(), params.filterMode()); |
| + fCoordTransform.reset(kCoordSet, *args.fMatrix, fAtlas->getTexture(), |
| + params.filterMode()); |
| fTextureAccess.reset(fAtlas->getTexture(), params); |
| } else { |
| SkAutoTUnref<GrTexture> texture( |
| - GrRefCachedBitmapTexture(ctx, bitmap, params, |
| + GrRefCachedBitmapTexture(args.fContext, bitmap, params, |
| SkSourceGammaTreatment::kRespect)); |
| if (!texture) { |
| return; |
| } |
| - fCoordTransform.reset(kCoordSet, matrix, texture, params.filterMode()); |
| + fCoordTransform.reset(kCoordSet, *args.fMatrix, texture, params.filterMode()); |
| fTextureAccess.reset(texture, params); |
| fYCoord = SK_ScalarHalf; |
| } |