Remove final usage of asSkCanvas
Bug: 137581257 Test: builds Change-Id: Ib38f85c11be332e6cd784f8bbf55f58cde72ac09
This commit is contained in:
@@ -100,8 +100,9 @@ void Picture::draw(Canvas* canvas) {
|
||||
this->endRecording();
|
||||
SkASSERT(NULL != mPicture.get());
|
||||
}
|
||||
if (NULL != mPicture.get()) {
|
||||
mPicture->playback(canvas->asSkCanvas());
|
||||
|
||||
if (mPicture) {
|
||||
canvas->drawPicture(*mPicture);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -778,6 +778,13 @@ void SkiaCanvas::drawCircle(uirenderer::CanvasPropertyPrimitive* x,
|
||||
mCanvas->drawDrawable(drawable.get());
|
||||
}
|
||||
|
||||
void SkiaCanvas::drawPicture(const SkPicture& picture) {
|
||||
// TODO: Change to mCanvas->drawPicture()? SkCanvas::drawPicture seems to be
|
||||
// where the logic is for playback vs. ref picture. Using picture.playback here
|
||||
// to stay behavior-identical for now, but should revisit this at some point.
|
||||
picture.playback(mCanvas);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Canvas draw operations: View System
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
@@ -46,8 +46,6 @@ public:
|
||||
|
||||
virtual ~SkiaCanvas();
|
||||
|
||||
virtual SkCanvas* asSkCanvas() override { return mCanvas; }
|
||||
|
||||
virtual void resetRecording(int width, int height,
|
||||
uirenderer::RenderNode* renderNode) override {
|
||||
LOG_ALWAYS_FATAL("SkiaCanvas cannot be reset as a recording canvas");
|
||||
@@ -155,9 +153,11 @@ public:
|
||||
virtual void drawRenderNode(uirenderer::RenderNode* renderNode) override;
|
||||
virtual void callDrawGLFunction(Functor* functor,
|
||||
uirenderer::GlFunctorLifecycleListener* listener) override;
|
||||
virtual void drawPicture(const SkPicture& picture) override;
|
||||
|
||||
protected:
|
||||
SkiaCanvas();
|
||||
SkCanvas* asSkCanvas() { return mCanvas; }
|
||||
void reset(SkCanvas* skiaCanvas);
|
||||
void drawDrawable(SkDrawable* drawable) { mCanvas->drawDrawable(drawable); }
|
||||
|
||||
|
||||
@@ -131,20 +131,6 @@ public:
|
||||
*/
|
||||
static void setCompatibilityVersion(int apiLevel);
|
||||
|
||||
/**
|
||||
* Provides a Skia SkCanvas interface that acts as a proxy to this Canvas.
|
||||
* It is useful for testing and clients (e.g. Picture/Movie) that expect to
|
||||
* draw their contents into an SkCanvas.
|
||||
*
|
||||
* The SkCanvas returned is *only* valid until another Canvas call is made
|
||||
* that would change state (e.g. matrix or clip). Clients of asSkCanvas()
|
||||
* are responsible for *not* persisting this pointer.
|
||||
*
|
||||
* Further, the returned SkCanvas should NOT be unref'd and is valid until
|
||||
* this canvas is destroyed or a new bitmap is set.
|
||||
*/
|
||||
virtual SkCanvas* asSkCanvas() = 0;
|
||||
|
||||
virtual void setBitmap(const SkBitmap& bitmap) = 0;
|
||||
|
||||
virtual bool isOpaque() = 0;
|
||||
@@ -264,6 +250,7 @@ public:
|
||||
const SkPaint* paint) = 0;
|
||||
|
||||
virtual double drawAnimatedImage(AnimatedImageDrawable* imgDrawable) = 0;
|
||||
virtual void drawPicture(const SkPicture& picture) = 0;
|
||||
|
||||
/**
|
||||
* Specifies if the positions passed to ::drawText are absolute or relative
|
||||
|
||||
@@ -78,7 +78,7 @@ TEST(SkiaCanvas, colorSpaceXform) {
|
||||
sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
|
||||
|
||||
// Playback to a software sRGB canvas. The result should be fully red.
|
||||
canvas.asSkCanvas()->drawPicture(picture);
|
||||
canvas.drawPicture(*picture);
|
||||
ASSERT_EQ(0xFF0000FF, *skBitmap.getAddr32(0, 0));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user