Index: src/gpu/SkGpuDevice.cpp |
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp |
index 9527870a89147d12b0bfde2b16076cdd47998b9b..fcfe292566583c124fa8c19b9146fccb0b546a21 100644 |
--- a/src/gpu/SkGpuDevice.cpp |
+++ b/src/gpu/SkGpuDevice.cpp |
@@ -830,14 +830,13 @@ void SkGpuDevice::drawBitmap(const SkDraw& origDraw, |
const SkMatrix& m, |
const SkPaint& paint) { |
CHECK_SHOULD_DRAW(origDraw); |
- bool alphaOnly = kAlpha_8_SkColorType == bitmap.colorType(); |
SkMatrix viewMatrix; |
viewMatrix.setConcat(*origDraw.fMatrix, m); |
if (bitmap.getTexture()) { |
GrBitmapTextureAdjuster adjuster(&bitmap); |
// We can use kFast here because we know texture-backed bitmaps don't support extractSubset. |
- this->drawTextureProducer(&adjuster, alphaOnly, nullptr, nullptr, |
- SkCanvas::kFast_SrcRectConstraint, viewMatrix, fClip, paint); |
+ this->drawTextureProducer(&adjuster, nullptr, nullptr, SkCanvas::kFast_SrcRectConstraint, |
+ viewMatrix, fClip, paint); |
return; |
} |
int maxTileSize = fContext->caps()->maxTileSize(); |
@@ -882,8 +881,8 @@ void SkGpuDevice::drawBitmap(const SkDraw& origDraw, |
} |
} |
GrBitmapTextureMaker maker(fContext, bitmap); |
- this->drawTextureProducer(&maker, alphaOnly, nullptr, nullptr, |
- SkCanvas::kStrict_SrcRectConstraint, viewMatrix, fClip, paint); |
+ this->drawTextureProducer(&maker, nullptr, nullptr, SkCanvas::kStrict_SrcRectConstraint, |
+ viewMatrix, fClip, paint); |
} |
// This method outsets 'iRect' by 'outset' all around and then clamps its extents to |
@@ -1215,12 +1214,11 @@ void SkGpuDevice::drawSprite(const SkDraw& draw, const SkBitmap& bitmap, |
void SkGpuDevice::drawBitmapRect(const SkDraw& draw, const SkBitmap& bitmap, |
const SkRect* src, const SkRect& origDst, |
const SkPaint& paint, SkCanvas::SrcRectConstraint constraint) { |
- bool alphaOnly = kAlpha_8_SkColorType == bitmap.colorType(); |
if (bitmap.getTexture()) { |
CHECK_SHOULD_DRAW(draw); |
GrBitmapTextureAdjuster adjuster(&bitmap); |
- this->drawTextureProducer(&adjuster, alphaOnly, src, &origDst, constraint, *draw.fMatrix, |
- fClip, paint); |
+ this->drawTextureProducer(&adjuster, src, &origDst, constraint, *draw.fMatrix, fClip, |
+ paint); |
return; |
} |
// The src rect is inferred to be the bmp bounds if not provided. Otherwise, the src rect must |
@@ -1297,7 +1295,7 @@ void SkGpuDevice::drawBitmapRect(const SkDraw& draw, const SkBitmap& bitmap, |
} |
} |
GrBitmapTextureMaker maker(fContext, bitmap); |
- this->drawTextureProducer(&maker, alphaOnly, src, dst, constraint, *draw.fMatrix, fClip, paint); |
+ this->drawTextureProducer(&maker, src, dst, constraint, *draw.fMatrix, fClip, paint); |
} |
void SkGpuDevice::drawDevice(const SkDraw& draw, SkBaseDevice* device, |
@@ -1412,12 +1410,11 @@ void SkGpuDevice::drawImage(const SkDraw& draw, const SkImage* image, SkScalar x |
const SkPaint& paint) { |
SkMatrix viewMatrix = *draw.fMatrix; |
viewMatrix.preTranslate(x, y); |
- if (GrTexture* tex = as_IB(image)->peekTexture()) { |
+ if (as_IB(image)->peekTexture()) { |
CHECK_SHOULD_DRAW(draw); |
- bool alphaOnly = GrPixelConfigIsAlphaOnly(tex->config()); |
GrImageTextureAdjuster adjuster(as_IB(image)); |
- this->drawTextureProducer(&adjuster, alphaOnly, nullptr, nullptr, |
- SkCanvas::kFast_SrcRectConstraint, viewMatrix, fClip, paint); |
+ this->drawTextureProducer(&adjuster, nullptr, nullptr, SkCanvas::kFast_SrcRectConstraint, |
+ viewMatrix, fClip, paint); |
return; |
} else { |
SkBitmap bm; |
@@ -1431,9 +1428,8 @@ void SkGpuDevice::drawImage(const SkDraw& draw, const SkImage* image, SkScalar x |
} else if (SkImageCacherator* cacher = as_IB(image)->peekCacherator()) { |
CHECK_SHOULD_DRAW(draw); |
GrImageTextureMaker maker(fContext, cacher, image, SkImage::kAllow_CachingHint); |
- bool alphaOnly = kAlpha_8_SkColorType == cacher->info().colorType(); |
- this->drawTextureProducer(&maker, alphaOnly, nullptr, nullptr, |
- SkCanvas::kFast_SrcRectConstraint, viewMatrix, fClip, paint); |
+ this->drawTextureProducer(&maker, nullptr, nullptr, SkCanvas::kFast_SrcRectConstraint, |
+ viewMatrix, fClip, paint); |
} else if (as_IB(image)->getROPixels(&bm)) { |
this->drawBitmap(draw, bm, SkMatrix::MakeTrans(x, y), paint); |
} |
@@ -1443,12 +1439,10 @@ void SkGpuDevice::drawImage(const SkDraw& draw, const SkImage* image, SkScalar x |
void SkGpuDevice::drawImageRect(const SkDraw& draw, const SkImage* image, const SkRect* src, |
const SkRect& dst, const SkPaint& paint, |
SkCanvas::SrcRectConstraint constraint) { |
- if (GrTexture* tex = as_IB(image)->peekTexture()) { |
+ if (as_IB(image)->peekTexture()) { |
CHECK_SHOULD_DRAW(draw); |
GrImageTextureAdjuster adjuster(as_IB(image)); |
- bool alphaOnly = GrPixelConfigIsAlphaOnly(tex->config()); |
- this->drawTextureProducer(&adjuster, alphaOnly, src, &dst, constraint, *draw.fMatrix, |
- fClip, paint); |
+ this->drawTextureProducer(&adjuster, src, &dst, constraint, *draw.fMatrix, fClip, paint); |
return; |
} |
SkBitmap bm; |
@@ -1464,15 +1458,13 @@ void SkGpuDevice::drawImageRect(const SkDraw& draw, const SkImage* image, const |
} else if (SkImageCacherator* cacher = as_IB(image)->peekCacherator()) { |
CHECK_SHOULD_DRAW(draw); |
GrImageTextureMaker maker(fContext, cacher, image, SkImage::kAllow_CachingHint); |
- bool alphaOnly = kAlpha_8_SkColorType == cacher->info().colorType(); |
- this->drawTextureProducer(&maker, alphaOnly, src, &dst, constraint, *draw.fMatrix, |
- fClip, paint); |
+ this->drawTextureProducer(&maker, src, &dst, constraint, *draw.fMatrix, fClip, paint); |
} else if (as_IB(image)->getROPixels(&bm)) { |
this->drawBitmapRect(draw, bm, src, dst, paint, constraint); |
} |
} |
-void SkGpuDevice::drawProducerNine(const SkDraw& draw, GrTextureProducer* producer, bool alphaOnly, |
+void SkGpuDevice::drawProducerNine(const SkDraw& draw, GrTextureProducer* producer, |
const SkIRect& center, const SkRect& dst, const SkPaint& paint) { |
GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawProducerNine", fContext); |
@@ -1490,9 +1482,8 @@ void SkGpuDevice::drawProducerNine(const SkDraw& draw, GrTextureProducer* produc |
SkRect srcR, dstR; |
while (iter.next(&srcR, &dstR)) { |
- this->drawTextureProducer(producer, alphaOnly, &srcR, &dstR, |
- SkCanvas::kStrict_SrcRectConstraint, *draw.fMatrix, fClip, |
- paint); |
+ this->drawTextureProducer(producer, &srcR, &dstR, SkCanvas::kStrict_SrcRectConstraint, |
+ *draw.fMatrix, fClip, paint); |
} |
return; |
} |
@@ -1505,7 +1496,7 @@ void SkGpuDevice::drawProducerNine(const SkDraw& draw, GrTextureProducer* produc |
&kMode)); |
GrPaint grPaint; |
if (!SkPaintToGrPaintWithTexture(this->context(), paint, *draw.fMatrix, fp, |
- alphaOnly, &grPaint)) { |
+ producer->isAlphaOnly(), &grPaint)) { |
return; |
} |
@@ -1515,16 +1506,14 @@ void SkGpuDevice::drawProducerNine(const SkDraw& draw, GrTextureProducer* produc |
void SkGpuDevice::drawImageNine(const SkDraw& draw, const SkImage* image, |
const SkIRect& center, const SkRect& dst, const SkPaint& paint) { |
- if (GrTexture* tex = as_IB(image)->peekTexture()) { |
- bool alphaOnly = GrPixelConfigIsAlphaOnly(tex->config()); |
+ if (as_IB(image)->peekTexture()) { |
GrImageTextureAdjuster adjuster(as_IB(image)); |
- this->drawProducerNine(draw, &adjuster, alphaOnly, center, dst, paint); |
+ this->drawProducerNine(draw, &adjuster, center, dst, paint); |
} else { |
SkBitmap bm; |
if (SkImageCacherator* cacher = as_IB(image)->peekCacherator()) { |
GrImageTextureMaker maker(fContext, cacher, image, SkImage::kAllow_CachingHint); |
- bool alphaOnly = kAlpha_8_SkColorType == cacher->info().colorType(); |
- this->drawProducerNine(draw, &maker, alphaOnly, center, dst, paint); |
+ this->drawProducerNine(draw, &maker, center, dst, paint); |
} else if (as_IB(image)->getROPixels(&bm)) { |
this->drawBitmapNine(draw, bm, center, dst, paint); |
} |
@@ -1533,13 +1522,12 @@ void SkGpuDevice::drawImageNine(const SkDraw& draw, const SkImage* image, |
void SkGpuDevice::drawBitmapNine(const SkDraw& draw, const SkBitmap& bitmap, const SkIRect& center, |
const SkRect& dst, const SkPaint& paint) { |
- bool alphaOnly = kAlpha_8_SkColorType == bitmap.colorType(); |
if (bitmap.getTexture()) { |
GrBitmapTextureAdjuster adjuster(&bitmap); |
- this->drawProducerNine(draw, &adjuster, alphaOnly, center, dst, paint); |
+ this->drawProducerNine(draw, &adjuster, center, dst, paint); |
} else { |
GrBitmapTextureMaker maker(fContext, bitmap); |
- this->drawProducerNine(draw, &maker, alphaOnly, center, dst, paint); |
+ this->drawProducerNine(draw, &maker, center, dst, paint); |
} |
} |