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

Unified Diff: Source/platform/graphics/GraphicsContext.cpp

Issue 1164683007: Copy SkMetaData before painting printed plugin contents. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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
« no previous file with comments | « Source/platform/graphics/GraphicsContext.h ('k') | Source/platform/graphics/paint/SkPictureBuilder.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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()
« no previous file with comments | « Source/platform/graphics/GraphicsContext.h ('k') | Source/platform/graphics/paint/SkPictureBuilder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698