Index: src/gpu/SkGrPixelRef.cpp |
diff --git a/src/gpu/SkGrPixelRef.cpp b/src/gpu/SkGrPixelRef.cpp |
index 8b68448e41bf0216195d2497cfe5042ec659cccf..feac9b10f373bc4e9300617a329db689cc40d0b5 100644 |
--- a/src/gpu/SkGrPixelRef.cpp |
+++ b/src/gpu/SkGrPixelRef.cpp |
@@ -53,7 +53,7 @@ bool SkROLockPixelsPixelRef::onLockPixelsAreWritable() const { |
/////////////////////////////////////////////////////////////////////////////// |
-static SkGrPixelRef* copyToTexturePixelRef(GrTexture* texture, SkColorType dstCT, |
+static SkGrPixelRef* copy_to_new_texture_pixelref(GrTexture* texture, SkColorType dstCT, |
robertphillips
2014/09/29 12:14:23
line this up?
|
const SkIRect* subset) { |
if (NULL == texture || kUnknown_SkColorType == dstCT) { |
return NULL; |
@@ -88,15 +88,10 @@ static SkGrPixelRef* copyToTexturePixelRef(GrTexture* texture, SkColorType dstCT |
context->copyTexture(texture, dst->asRenderTarget(), topLeft); |
- // TODO: figure out if this is responsible for Chrome canvas errors |
-#if 0 |
- // The render texture we have created (to perform the copy) isn't fully |
- // functional (since it doesn't have a stencil buffer). Release it here |
- // so the caller doesn't try to render to it. |
- // TODO: we can undo this release when dynamic stencil buffer attach/ |
- // detach has been implemented |
- dst->releaseRenderTarget(); |
-#endif |
+ // Blink is relying on the above copy being sent to GL immediately in the case when the source |
+ // is a WebGL canvas backing store. We could have a TODO to remove this flush, but we have a |
+ // larger TODO to remove SkGrPixelRef entirely. |
+ context->flush(); |
SkImageInfo info = SkImageInfo::Make(desc.fWidth, desc.fHeight, dstCT, kPremul_SkAlphaType); |
SkGrPixelRef* pixelRef = SkNEW_ARGS(SkGrPixelRef, (info, dst)); |
@@ -152,7 +147,7 @@ SkPixelRef* SkGrPixelRef::deepCopy(SkColorType dstCT, const SkIRect* subset) { |
// a GrTexture owned elsewhere (e.g., SkGpuDevice), and cannot live |
// independently of that texture. Texture-backed pixel refs, on the other |
// hand, own their GrTextures, and are thus self-contained. |
- return copyToTexturePixelRef(fSurface->asTexture(), dstCT, subset); |
+ return copy_to_new_texture_pixelref(fSurface->asTexture(), dstCT, subset); |
} |
static bool tryAllocBitmapPixels(SkBitmap* bitmap) { |