Move GrTextureParams from GrSamplerState to GrTextureAccess
Review URL: https://codereview.appspot.com/6496135/
git-svn-id: http://skia.googlecode.com/svn/trunk@5582 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/effects/gradients/SkGradientShader.cpp b/src/effects/gradients/SkGradientShader.cpp
index f0dac4d..9a965ff 100644
--- a/src/effects/gradients/SkGradientShader.cpp
+++ b/src/effects/gradients/SkGradientShader.cpp
@@ -718,7 +718,7 @@
GrGradientEffect::GrGradientEffect(GrContext* ctx,
const SkGradientShaderBase& shader,
- GrSamplerState* sampler)
+ SkShader::TileMode tileMode)
: fUseTexture (true) {
// TODO: check for simple cases where we don't need a texture:
//GradientInfo info;
@@ -737,14 +737,19 @@
fAtlas = GrTextureStripAtlas::GetAtlas(desc);
GrAssert(NULL != fAtlas);
+ // We always filter the gradient table. Each table is one row of a texture, so always y-clamp.
+ GrTextureParams params;
+ params.setBilerp(true);
+ params.setTileModeX(tileMode);
+
fRow = fAtlas->lockRow(bitmap);
if (-1 != fRow) {
fYCoord = fAtlas->getYOffset(fRow) + GR_ScalarHalf *
fAtlas->getVerticalScaleFactor();
- fTextureAccess.reset(fAtlas->getTexture());
+ fTextureAccess.reset(fAtlas->getTexture(), params);
} else {
- GrTexture* texture = GrLockCachedBitmapTexture(ctx, bitmap, sampler->textureParams());
- fTextureAccess.reset(texture);
+ GrTexture* texture = GrLockCachedBitmapTexture(ctx, bitmap, ¶ms);
+ fTextureAccess.reset(texture, params);
fYCoord = GR_ScalarHalf;
// Unlock immediately, this is not great, but we don't have a way of