New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 598699 link

Starred by 2 users

Issue metadata

Status: Duplicate
Merged: issue 609894
Owner:
Last visit > 30 days ago
Closed: Jun 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug



Sign in to add a comment

Try to remove skia::BitmapPlatformDevice:[sS]etMatrixClip()

Project Member Reported by tomhud...@chromium.org, Mar 29 2016

Issue description

In Chromium these functions are only called from the Mac unit tests.
They are overrides of a deprecated function on SkBaseDevice.

*However*, that deprecated function is still called by SkCanvas::DeviceCM::updateMC().

Since they cache transforms and clips that we need to plumb through to native canvases (HDC on Windows, cairo_t on Cairo, CGContext on Mac) we may need some way to replace them in the SkRasterCanvasLayerAllocator future; intercepting draws to native-backed layers? Is that another argument for subclassing instead of strategizing?

Note also that SkDevice.h says overrides of setMatrixClip() *must* call the base class implementation, but the Chrome overrides do not do so.
 
onAccessBitmap() may also be a problem: Windows relies (?) on it to call GdiFlush.

The current implementation of skia::GetWritablePixels() triggers it through SkCanvas::accessTopLayerPixels(), but it's not obvious whether skia::ReadPixels() is ever calling it.
Mergedinto: 609894
Status: Duplicate (was: Untriaged)

Sign in to add a comment