Index: src/gpu/SkGpuDevice.cpp |
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp |
index 54ed413549d8ec83cf5c091fb28d4c7f87fa0206..98da472581bbba469d47668b346e1a47038bac07 100644 |
--- a/src/gpu/SkGpuDevice.cpp |
+++ b/src/gpu/SkGpuDevice.cpp |
@@ -744,13 +744,13 @@ |
// Given a bitmap, an optional src rect, and a context with a clip and matrix determine what |
// pixels from the bitmap are necessary. |
-static void determine_clipped_src_rect(int width, int height, |
+static void determine_clipped_src_rect(const GrRenderTarget* rt, |
const GrClip& clip, |
const SkMatrix& viewMatrix, |
const SkISize& imageSize, |
const SkRect* srcRectPtr, |
SkIRect* clippedSrcIRect) { |
- clip.getConservativeBounds(width, height, clippedSrcIRect, nullptr); |
+ clip.getConservativeBounds(rt->width(), rt->height(), clippedSrcIRect, nullptr); |
SkMatrix inv; |
if (!viewMatrix.invert(&inv)) { |
clippedSrcIRect->setEmpty(); |
@@ -783,8 +783,7 @@ |
ASSERT_SINGLE_OWNER |
// if it's larger than the max tile size, then we have no choice but tiling. |
if (imageRect.width() > maxTileSize || imageRect.height() > maxTileSize) { |
- determine_clipped_src_rect(fDrawContext->width(), fDrawContext->height(), |
- fClip, viewMatrix, imageRect.size(), |
+ determine_clipped_src_rect(fRenderTarget, fClip, viewMatrix, imageRect.size(), |
srcRectPtr, clippedSubset); |
*tileSize = determine_tile_size(*clippedSubset, maxTileSize); |
return true; |
@@ -812,8 +811,7 @@ |
// Figure out how much of the src we will need based on the src rect and clipping. Reject if |
// tiling memory savings would be < 50%. |
- determine_clipped_src_rect(fDrawContext->width(), fDrawContext->height(), |
- fClip, viewMatrix, imageRect.size(), srcRectPtr, |
+ determine_clipped_src_rect(fRenderTarget, fClip, viewMatrix, imageRect.size(), srcRectPtr, |
clippedSubset); |
*tileSize = kBmpSmallTileSize; // already know whole bitmap fits in one max sized tile. |
size_t usedTileBytes = get_tile_count(*clippedSubset, kBmpSmallTileSize) * |
@@ -1775,7 +1773,7 @@ |
ASSERT_SINGLE_OWNER |
// TODO: Change the signature of newSurface to take a budgeted parameter. |
static const SkBudgeted kBudgeted = SkBudgeted::kNo; |
- return SkSurface::MakeRenderTarget(fContext, kBudgeted, info, fDrawContext->numColorSamples(), |
+ return SkSurface::MakeRenderTarget(fContext, kBudgeted, info, fRenderTarget->desc().fSampleCnt, |
&props); |
} |
@@ -1818,7 +1816,7 @@ |
initialMatrix, |
clipBounds, |
&atlasedNeedRendering, &atlasedRecycled, |
- fDrawContext->numColorSamples()); |
+ fRenderTarget->numColorSamples()); |
GrLayerHoister::DrawLayersToAtlas(fContext, atlasedNeedRendering); |
@@ -1830,7 +1828,7 @@ |
initialMatrix, |
clipBounds, |
&needRendering, &recycled, |
- fDrawContext->numColorSamples()); |
+ fRenderTarget->numColorSamples()); |
GrLayerHoister::DrawLayers(fContext, needRendering); |