Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(112)

Unified Diff: sky/engine/core/painting/Canvas.cpp

Issue 1190123003: Decouple Canvas from DisplayList and map Picture and PictureRecorder more directly to their Skia co… (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Rebased version of previous patch Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sky/engine/core/painting/Canvas.cpp
diff --git a/sky/engine/core/painting/Canvas.cpp b/sky/engine/core/painting/Canvas.cpp
index cc9a9e5bbf193690d7a6c440123b9a69d7bcb86d..b51773c4b1e69b3d125343c4d55ffcd887423589 100644
--- a/sky/engine/core/painting/Canvas.cpp
+++ b/sky/engine/core/painting/Canvas.cpp
@@ -17,11 +17,9 @@
namespace blink {
-Canvas::Canvas(const FloatSize& size)
- : m_size(size)
+Canvas::Canvas(SkCanvas* skCanvas)
+ : m_canvas(skCanvas)
{
- m_displayList = adoptRef(new DisplayList);
- m_canvas = m_displayList->beginRecording(expandedIntSize(m_size));
}
Canvas::~Canvas()
@@ -32,7 +30,6 @@ void Canvas::save()
{
if (!m_canvas)
return;
- ASSERT(m_displayList->isRecording());
m_canvas->save();
}
@@ -40,7 +37,6 @@ void Canvas::saveLayer(const Rect& bounds, const Paint* paint)
{
if (!m_canvas)
return;
- ASSERT(m_displayList->isRecording());
m_canvas->saveLayer(!bounds.is_null ? &bounds.sk_rect : nullptr,
paint ? &paint->paint() : nullptr);
}
@@ -49,7 +45,6 @@ void Canvas::restore()
{
if (!m_canvas)
return;
- ASSERT(m_displayList->isRecording());
m_canvas->restore();
}
@@ -57,7 +52,6 @@ void Canvas::translate(float dx, float dy)
{
if (!m_canvas)
return;
- ASSERT(m_displayList->isRecording());
m_canvas->translate(dx, dy);
}
@@ -65,7 +59,6 @@ void Canvas::scale(float sx, float sy)
{
if (!m_canvas)
return;
- ASSERT(m_displayList->isRecording());
m_canvas->scale(sx, sy);
}
@@ -73,7 +66,6 @@ void Canvas::rotate(float radians)
{
if (!m_canvas)
return;
- ASSERT(m_displayList->isRecording());
m_canvas->rotate(radians * 180.0/M_PI);
}
@@ -81,7 +73,6 @@ void Canvas::skew(float sx, float sy)
{
if (!m_canvas)
return;
- ASSERT(m_displayList->isRecording());
m_canvas->skew(sx, sy);
}
@@ -89,7 +80,6 @@ void Canvas::concat(const Float32List& matrix4)
{
if (!m_canvas)
return;
- ASSERT(m_displayList->isRecording());
ASSERT(matrix4.data());
// TODO(mpcomplete): how can we raise an error in this case?
@@ -113,7 +103,6 @@ void Canvas::clipRect(const Rect& rect)
{
if (!m_canvas)
return;
- ASSERT(m_displayList->isRecording());
m_canvas->clipRect(rect.sk_rect);
}
@@ -121,7 +110,6 @@ void Canvas::clipRRect(const RRect* rrect)
{
if (!m_canvas)
return;
- ASSERT(m_displayList->isRecording());
m_canvas->clipRRect(rrect->rrect());
}
@@ -129,7 +117,6 @@ void Canvas::clipPath(const CanvasPath* path)
{
if (!m_canvas)
return;
- ASSERT(m_displayList->isRecording());
m_canvas->clipPath(path->path());
}
@@ -138,7 +125,6 @@ void Canvas::drawLine(float x0, float y0, float x1, float y1, const Paint* paint
if (!m_canvas)
return;
ASSERT(paint);
- ASSERT(m_displayList->isRecording());
m_canvas->drawLine(x0, y0, x1, y1, paint->paint());
}
@@ -147,7 +133,6 @@ void Canvas::drawPicture(Picture* picture)
if (!m_canvas)
return;
ASSERT(picture);
- ASSERT(m_displayList->isRecording());
m_canvas->drawPicture(picture->toSkia());
}
@@ -156,7 +141,6 @@ void Canvas::drawPaint(const Paint* paint)
if (!m_canvas)
return;
ASSERT(paint);
- ASSERT(m_displayList->isRecording());
m_canvas->drawPaint(paint->paint());
}
@@ -165,7 +149,6 @@ void Canvas::drawRect(const Rect& rect, const Paint* paint)
if (!m_canvas)
return;
ASSERT(paint);
- ASSERT(m_displayList->isRecording());
m_canvas->drawRect(rect.sk_rect, paint->paint());
}
@@ -175,7 +158,6 @@ void Canvas::drawRRect(const RRect* rrect, const Paint* paint)
return;
ASSERT(rrect);
ASSERT(paint);
- ASSERT(m_displayList->isRecording());
m_canvas->drawRRect(rrect->rrect(), paint->paint());
}
@@ -184,7 +166,6 @@ void Canvas::drawOval(const Rect& rect, const Paint* paint)
if (!m_canvas)
return;
ASSERT(paint);
- ASSERT(m_displayList->isRecording());
m_canvas->drawOval(rect.sk_rect, paint->paint());
}
@@ -193,7 +174,6 @@ void Canvas::drawCircle(float x, float y, float radius, const Paint* paint)
if (!m_canvas)
return;
ASSERT(paint);
- ASSERT(m_displayList->isRecording());
m_canvas->drawCircle(x, y, radius, paint->paint());
}
@@ -203,7 +183,6 @@ void Canvas::drawPath(const CanvasPath* path, const Paint* paint)
return;
ASSERT(path);
ASSERT(paint);
- ASSERT(m_displayList->isRecording());
m_canvas->drawPath(path->path(), paint->paint());
}
@@ -214,17 +193,7 @@ void Canvas::drawImage(const CanvasImage* image,
if (!m_canvas)
return;
ASSERT(image);
- ASSERT(m_displayList->isRecording());
m_canvas->drawBitmap(image->bitmap(), x, y, &paint->paint());
}
-PassRefPtr<DisplayList> Canvas::finishRecording()
-{
- if (!isRecording())
- return nullptr;
- m_canvas = nullptr;
- m_displayList->endRecording();
- return m_displayList.release();
-}
-
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698