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

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

Issue 216553003: Disable painting in a few more places (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 9 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 | « no previous file | no next file » | 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 9127696d1190547617250ee5f596be2b82933efb..03fa2f2fb31af751c2e6466eacb05ae82e0f1529 100644
--- a/Source/platform/graphics/GraphicsContext.cpp
+++ b/Source/platform/graphics/GraphicsContext.cpp
@@ -391,6 +391,8 @@ bool GraphicsContext::couldUseLCDRenderedText()
void GraphicsContext::setCompositeOperation(CompositeOperator compositeOperation, WebBlendMode blendMode)
{
+ if (paintingDisabled())
+ return;
mutableState()->setCompositeOperation(compositeOperation, blendMode);
}
@@ -489,15 +491,17 @@ void GraphicsContext::beginRecording(const FloatRect& bounds)
SkMatrix savedMatrix = getTotalMatrix();
IntRect recordingRect = enclosingIntRect(bounds);
- m_canvas = displayList->picture()->beginRecording(recordingRect.width(), recordingRect.height(),
- SkPicture::kUsePathBoundsForClip_RecordingFlag);
-
- // 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());
+ if (!paintingDisabled()) {
Stephen Chennney 2014/03/28 12:47:18 This can go up a line - I don't see us using recor
+ m_canvas = displayList->picture()->beginRecording(recordingRect.width(), recordingRect.height(),
+ SkPicture::kUsePathBoundsForClip_RecordingFlag);
+
+ // 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));
@@ -508,8 +512,10 @@ PassRefPtr<DisplayList> GraphicsContext::endRecording()
ASSERT(!m_recordingStateStack.isEmpty());
RecordingState recording = m_recordingStateStack.last();
- ASSERT(recording.m_displayList->picture()->getRecordingCanvas());
- recording.m_displayList->picture()->endRecording();
+ if (!paintingDisabled()) {
+ ASSERT(recording.m_displayList->picture()->getRecordingCanvas());
+ recording.m_displayList->picture()->endRecording();
+ }
m_recordingStateStack.removeLast();
m_canvas = recording.m_savedCanvas;
@@ -649,6 +655,9 @@ static inline IntRect areaCastingShadowInHole(const IntRect& holeRect, int shado
void GraphicsContext::drawInnerShadow(const RoundedRect& rect, const Color& shadowColor, const IntSize shadowOffset, int shadowBlur, int shadowSpread, Edges clippedEdges)
{
+ if (paintingDisabled())
+ return;
+
IntRect holeRect(rect.rect());
holeRect.inflate(-shadowSpread);
@@ -1124,6 +1133,9 @@ void GraphicsContext::writePixels(const SkImageInfo& info, const void* pixels, s
void GraphicsContext::writePixels(const SkBitmap& bitmap, int x, int y)
{
+ if (paintingDisabled())
+ return;
+
if (!bitmap.getTexture()) {
SkAutoLockPixels alp(bitmap);
if (bitmap.getPixels())
@@ -1194,6 +1206,9 @@ void GraphicsContext::drawRect(const SkRect& rect, const SkPaint& paint)
void GraphicsContext::didDrawRect(const SkRect& rect, const SkPaint& paint, const SkBitmap* bitmap)
{
+ if (paintingDisabled())
+ return;
+
if (m_trackOpaqueRegion)
m_opaqueRegion.didDrawRect(this, rect, paint, bitmap);
}
@@ -1619,6 +1634,9 @@ void GraphicsContext::fillRect(const FloatRect& rect, const Color& color, Compos
void GraphicsContext::fillRoundedRect(const RoundedRect& rect, const Color& color)
{
+ if (paintingDisabled())
+ return;
+
if (rect.isRounded())
fillRoundedRect(rect.rect(), rect.radii().topLeft(), rect.radii().topRight(), rect.radii().bottomLeft(), rect.radii().bottomRight(), color);
else
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698