Index: sky/engine/platform/graphics/GraphicsContext.cpp |
diff --git a/sky/engine/platform/graphics/GraphicsContext.cpp b/sky/engine/platform/graphics/GraphicsContext.cpp |
index 6765a71c91c15710ac9e76f48c50be312f3bd0cc..92d3f5c0388ab8882948d753bad4072a7280147b 100644 |
--- a/sky/engine/platform/graphics/GraphicsContext.cpp |
+++ b/sky/engine/platform/graphics/GraphicsContext.cpp |
@@ -98,19 +98,6 @@ struct GraphicsContext::CanvasSaveState { |
int m_restoreCount; |
}; |
-struct GraphicsContext::RecordingState { |
- RecordingState(SkCanvas* currentCanvas, const SkMatrix& currentMatrix, PassRefPtr<DisplayList> displayList) |
- : m_savedCanvas(currentCanvas) |
- , m_displayList(displayList) |
- , m_savedMatrix(currentMatrix) |
- { |
- } |
- |
- SkCanvas* m_savedCanvas; |
- RefPtr<DisplayList> m_displayList; |
- const SkMatrix m_savedMatrix; |
-}; |
- |
GraphicsContext::GraphicsContext(SkCanvas* canvas, DisabledMode disableContextOrPainting) |
: m_canvas(canvas) |
, m_paintStateStack() |
@@ -144,7 +131,6 @@ GraphicsContext::~GraphicsContext() |
ASSERT(!m_paintStateIndex); |
ASSERT(!m_paintState->saveCount()); |
ASSERT(!m_layerCount); |
- ASSERT(m_recordingStateStack.isEmpty()); |
ASSERT(m_canvasStateStack.isEmpty()); |
} |
#endif |
@@ -332,14 +318,7 @@ SkMatrix GraphicsContext::getTotalMatrix() const |
if (contextDisabled()) |
return SkMatrix::I(); |
- if (!isRecording()) |
- return m_canvas->getTotalMatrix(); |
- |
- const RecordingState& recordingState = m_recordingStateStack.last(); |
- SkMatrix totalMatrix = recordingState.m_savedMatrix; |
- totalMatrix.preConcat(m_canvas->getTotalMatrix()); |
- |
- return totalMatrix; |
+ return m_canvas->getTotalMatrix(); |
} |
void GraphicsContext::adjustTextRenderMode(SkPaint* paint) |
@@ -447,64 +426,18 @@ void GraphicsContext::endLayer() |
#endif |
} |
-void GraphicsContext::beginRecording(const FloatRect& bounds) |
-{ |
- RefPtr<DisplayList> displayList = adoptRef(new DisplayList(bounds)); |
- |
- SkCanvas* savedCanvas = m_canvas; |
- SkMatrix savedMatrix = getTotalMatrix(); |
- |
- if (!contextDisabled()) { |
- IntRect recordingRect = enclosingIntRect(bounds); |
- m_canvas = displayList->beginRecording(recordingRect.size()); |
- |
- // We want the bounds offset mapped to (0, 0), such that the display list content |
- // is fully contained within the SkPictureRecord's bounds. |
- if (!toFloatSize(bounds.location()).isZero()) { |
- m_canvas->translate(-bounds.x(), -bounds.y()); |
- // To avoid applying the offset repeatedly in getTotalMatrix(), we pre-apply it here. |
- savedMatrix.preTranslate(bounds.x(), bounds.y()); |
- } |
- } |
- |
- m_recordingStateStack.append(RecordingState(savedCanvas, savedMatrix, displayList)); |
-} |
- |
-PassRefPtr<DisplayList> GraphicsContext::endRecording() |
-{ |
- ASSERT(!m_recordingStateStack.isEmpty()); |
- |
- RecordingState recording = m_recordingStateStack.last(); |
- if (!contextDisabled()) { |
- ASSERT(recording.m_displayList->isRecording()); |
- recording.m_displayList->endRecording(); |
- } |
- |
- m_recordingStateStack.removeLast(); |
- m_canvas = recording.m_savedCanvas; |
- |
- return recording.m_displayList.release(); |
-} |
- |
-bool GraphicsContext::isRecording() const |
-{ |
- return !m_recordingStateStack.isEmpty(); |
-} |
- |
-void GraphicsContext::drawDisplayList(DisplayList* displayList) |
+void GraphicsContext::drawDisplayList(DisplayList* displayList, const FloatPoint& point) |
{ |
ASSERT(displayList); |
- ASSERT(!displayList->isRecording()); |
- if (contextDisabled() || displayList->bounds().isEmpty()) |
+ if (contextDisabled()) |
return; |
realizeCanvasSave(); |
- const FloatRect& bounds = displayList->bounds(); |
- if (bounds.x() || bounds.y()) { |
+ if (point.x() || point.y()) { |
SkMatrix m; |
- m.setTranslate(bounds.x(), bounds.y()); |
+ m.setTranslate(point.x(), point.y()); |
m_canvas->drawPicture(displayList->picture(), &m, 0); |
} else { |
m_canvas->drawPicture(displayList->picture()); |