Index: Source/platform/graphics/GraphicsContext.cpp |
diff --git a/Source/platform/graphics/GraphicsContext.cpp b/Source/platform/graphics/GraphicsContext.cpp |
index bfae398b3709edc99df0a662763b8dea1ddac151..ce53c4b73bc776681c6627ebb628f3f2006ee3f3 100644 |
--- a/Source/platform/graphics/GraphicsContext.cpp |
+++ b/Source/platform/graphics/GraphicsContext.cpp |
@@ -34,6 +34,7 @@ |
#include "platform/graphics/Gradient.h" |
#include "platform/graphics/ImageBuffer.h" |
#include "platform/weborigin/KURL.h" |
+#include "skia/ext/platform_device.h" |
#include "third_party/skia/include/core/SkAnnotation.h" |
#include "third_party/skia/include/core/SkColorFilter.h" |
#include "third_party/skia/include/core/SkData.h" |
@@ -75,19 +76,19 @@ private: |
const SkMatrix m_savedMatrix; |
}; |
-GraphicsContext::GraphicsContext(DisplayItemList* displayItemList, DisabledMode disableContextOrPainting) |
- : GraphicsContext(nullptr, displayItemList, disableContextOrPainting) |
+GraphicsContext::GraphicsContext(DisplayItemList* displayItemList, DisabledMode disableContextOrPainting, SkMetaData* metaData) |
+ : GraphicsContext(nullptr, displayItemList, disableContextOrPainting, metaData) |
{ |
// TODO(chrishtr): switch the type of the parameter to DisplayItemList&. |
ASSERT(displayItemList); |
} |
-PassOwnPtr<GraphicsContext> GraphicsContext::deprecatedCreateWithCanvas(SkCanvas* canvas, DisabledMode disableContextOrPainting) |
+PassOwnPtr<GraphicsContext> GraphicsContext::deprecatedCreateWithCanvas(SkCanvas* canvas, DisabledMode disableContextOrPainting, SkMetaData* metaData) |
{ |
- return adoptPtr(new GraphicsContext(canvas, nullptr, disableContextOrPainting)); |
+ return adoptPtr(new GraphicsContext(canvas, nullptr, disableContextOrPainting, metaData)); |
} |
-GraphicsContext::GraphicsContext(SkCanvas* canvas, DisplayItemList* displayItemList, DisabledMode disableContextOrPainting) |
+GraphicsContext::GraphicsContext(SkCanvas* canvas, DisplayItemList* displayItemList, DisabledMode disableContextOrPainting, SkMetaData* metaData) |
: m_canvas(canvas) |
, m_originalCanvas(canvas) |
, m_displayItemList(displayItemList) |
@@ -102,7 +103,11 @@ GraphicsContext::GraphicsContext(SkCanvas* canvas, DisplayItemList* displayItemL |
, m_deviceScaleFactor(1.0f) |
, m_accelerated(false) |
, m_printing(false) |
+ , m_hasMetaData(!!metaData) |
{ |
+ if (metaData) |
+ m_metaData = *metaData; |
+ |
// FIXME: Do some tests to determine how many states are typically used, and allocate |
// several here. |
m_paintStateStack.append(GraphicsContextState::create()); |
@@ -402,12 +407,17 @@ void GraphicsContext::beginRecording(const FloatRect& bounds) |
if (RuntimeEnabledFeatures::slimmingPaintEnabled()) { |
m_canvas = m_pictureRecorder.beginRecording(bounds, 0); |
+ if (m_hasMetaData) |
+ skia::getMetaData(*m_canvas) = m_metaData; |
return; |
} |
m_recordingStateStack.append( |
RecordingState::Create(m_canvas, getTotalMatrix())); |
+ |
m_canvas = m_recordingStateStack.last()->recorder().beginRecording(bounds, 0); |
+ if (m_hasMetaData) |
+ skia::getMetaData(*m_canvas) = m_metaData; |
} |
PassRefPtr<const SkPicture> GraphicsContext::endRecording() |