Loading graphics/java/android/graphics/Canvas.java +4 −2 Original line number Diff line number Diff line Loading @@ -157,10 +157,12 @@ public class Canvas extends BaseCanvas { /** * Specify a bitmap for the canvas to draw into. All canvas state such as * layers, filters, and the save/restore stack are reset with the exception * of the current matrix and clip stack. Additionally, as a side-effect * layers, filters, and the save/restore stack are reset. Additionally, * the canvas' target density is updated to match that of the bitmap. * * Prior to API level {@value Build.VERSION_CODES#O} the current matrix and * clip stack were preserved. * * @param bitmap Specifies a mutable bitmap for the canvas to draw into. * @see #setDensity(int) * @see #getDensity() Loading libs/hwui/SkiaCanvas.cpp +0 −26 Original line number Diff line number Diff line Loading @@ -80,38 +80,12 @@ void SkiaCanvas::reset(SkCanvas* skiaCanvas) { // Canvas state operations: Replace Bitmap // ---------------------------------------------------------------------------- class ClipCopier : public SkCanvas::ClipVisitor { public: explicit ClipCopier(SkCanvas* dstCanvas) : m_dstCanvas(dstCanvas) {} virtual void clipRect(const SkRect& rect, SkClipOp op, bool antialias) { m_dstCanvas->clipRect(rect, op, antialias); } virtual void clipRRect(const SkRRect& rrect, SkClipOp op, bool antialias) { m_dstCanvas->clipRRect(rrect, op, antialias); } virtual void clipPath(const SkPath& path, SkClipOp op, bool antialias) { m_dstCanvas->clipPath(path, op, antialias); } private: SkCanvas* m_dstCanvas; }; void SkiaCanvas::setBitmap(const SkBitmap& bitmap) { sk_sp<SkColorSpace> cs = bitmap.refColorSpace(); std::unique_ptr<SkCanvas> newCanvas = std::unique_ptr<SkCanvas>(new SkCanvas(bitmap)); std::unique_ptr<SkCanvas> newCanvasWrapper = SkCreateColorSpaceXformCanvas(newCanvas.get(), cs == nullptr ? SkColorSpace::MakeSRGB() : std::move(cs)); if (!bitmap.isNull()) { // Copy the canvas matrix & clip state. newCanvasWrapper->setMatrix(mCanvas->getTotalMatrix()); ClipCopier copier(newCanvasWrapper.get()); mCanvas->replayClips(&copier); } // deletes the previously owned canvas (if any) mCanvasOwned = std::move(newCanvas); mCanvasWrapper = std::move(newCanvasWrapper); Loading Loading
graphics/java/android/graphics/Canvas.java +4 −2 Original line number Diff line number Diff line Loading @@ -157,10 +157,12 @@ public class Canvas extends BaseCanvas { /** * Specify a bitmap for the canvas to draw into. All canvas state such as * layers, filters, and the save/restore stack are reset with the exception * of the current matrix and clip stack. Additionally, as a side-effect * layers, filters, and the save/restore stack are reset. Additionally, * the canvas' target density is updated to match that of the bitmap. * * Prior to API level {@value Build.VERSION_CODES#O} the current matrix and * clip stack were preserved. * * @param bitmap Specifies a mutable bitmap for the canvas to draw into. * @see #setDensity(int) * @see #getDensity() Loading
libs/hwui/SkiaCanvas.cpp +0 −26 Original line number Diff line number Diff line Loading @@ -80,38 +80,12 @@ void SkiaCanvas::reset(SkCanvas* skiaCanvas) { // Canvas state operations: Replace Bitmap // ---------------------------------------------------------------------------- class ClipCopier : public SkCanvas::ClipVisitor { public: explicit ClipCopier(SkCanvas* dstCanvas) : m_dstCanvas(dstCanvas) {} virtual void clipRect(const SkRect& rect, SkClipOp op, bool antialias) { m_dstCanvas->clipRect(rect, op, antialias); } virtual void clipRRect(const SkRRect& rrect, SkClipOp op, bool antialias) { m_dstCanvas->clipRRect(rrect, op, antialias); } virtual void clipPath(const SkPath& path, SkClipOp op, bool antialias) { m_dstCanvas->clipPath(path, op, antialias); } private: SkCanvas* m_dstCanvas; }; void SkiaCanvas::setBitmap(const SkBitmap& bitmap) { sk_sp<SkColorSpace> cs = bitmap.refColorSpace(); std::unique_ptr<SkCanvas> newCanvas = std::unique_ptr<SkCanvas>(new SkCanvas(bitmap)); std::unique_ptr<SkCanvas> newCanvasWrapper = SkCreateColorSpaceXformCanvas(newCanvas.get(), cs == nullptr ? SkColorSpace::MakeSRGB() : std::move(cs)); if (!bitmap.isNull()) { // Copy the canvas matrix & clip state. newCanvasWrapper->setMatrix(mCanvas->getTotalMatrix()); ClipCopier copier(newCanvasWrapper.get()); mCanvas->replayClips(&copier); } // deletes the previously owned canvas (if any) mCanvasOwned = std::move(newCanvas); mCanvasWrapper = std::move(newCanvasWrapper); Loading