| Index: src/gpu/SkGrPixelRef.cpp
|
| diff --git a/src/gpu/SkGrPixelRef.cpp b/src/gpu/SkGrPixelRef.cpp
|
| index 2131f41b17b3686c07e01afc002d0680d01906c4..b064b7e6ae8a93e2dfe04e6814374ea524cefd94 100644
|
| --- a/src/gpu/SkGrPixelRef.cpp
|
| +++ b/src/gpu/SkGrPixelRef.cpp
|
| @@ -51,7 +51,7 @@ bool SkROLockPixelsPixelRef::onLockPixelsAreWritable() const {
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| -static SkGrPixelRef* copyToTexturePixelRef(GrTexture* texture, SkColorType dstCT,
|
| +static SkGrPixelRef* copy_to_new_texture_pixelref(GrTexture* texture, SkColorType dstCT,
|
| const SkIRect* subset) {
|
| if (NULL == texture || kUnknown_SkColorType == dstCT) {
|
| return NULL;
|
| @@ -86,15 +86,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));
|
| @@ -156,7 +151,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);
|
| }
|
|
|
| bool SkGrPixelRef::onReadPixels(SkBitmap* dst, const SkIRect* subset) {
|
|
|