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

Side by Side Diff: Source/core/rendering/RenderView.cpp

Issue 21430003: Implement interfaces in PaintInfo and make it a class. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@getterPaintInfo01
Patch Set: Second try Created 7 years, 4 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed. 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed.
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 { 401 {
402 // If we ever require layout but receive a paint anyway, something has gone horribly wrong. 402 // If we ever require layout but receive a paint anyway, something has gone horribly wrong.
403 ASSERT(!needsLayout()); 403 ASSERT(!needsLayout());
404 // RenderViews should never be called to paint with an offset not on device pixels. 404 // RenderViews should never be called to paint with an offset not on device pixels.
405 ASSERT(LayoutPoint(IntPoint(paintOffset.x(), paintOffset.y())) == paintOffse t); 405 ASSERT(LayoutPoint(IntPoint(paintOffset.x(), paintOffset.y())) == paintOffse t);
406 406
407 ANNOTATE_GRAPHICS_CONTEXT(paintInfo, this); 407 ANNOTATE_GRAPHICS_CONTEXT(paintInfo, this);
408 408
409 // This avoids painting garbage between columns if there is a column gap. 409 // This avoids painting garbage between columns if there is a column gap.
410 if (m_frameView && m_frameView->pagination().mode != Pagination::Unpaginated ) 410 if (m_frameView && m_frameView->pagination().mode != Pagination::Unpaginated )
411 paintInfo.context->fillRect(paintInfo.rect, m_frameView->baseBackgroundC olor()); 411 paintInfo.getContext()->fillRect(paintInfo.getRect(), m_frameView->baseB ackgroundColor());
412 412
413 paintObject(paintInfo, paintOffset); 413 paintObject(paintInfo, paintOffset);
414 } 414 }
415 415
416 static inline bool isComposited(RenderObject* object) 416 static inline bool isComposited(RenderObject* object)
417 { 417 {
418 return object->hasLayer() && toRenderLayerModelObject(object)->layer()->isCo mposited(); 418 return object->hasLayer() && toRenderLayerModelObject(object)->layer()->isCo mposited();
419 } 419 }
420 420
421 static inline bool rendererObscuresBackground(RenderObject* rootObject) 421 static inline bool rendererObscuresBackground(RenderObject* rootObject)
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 485
486 // This code typically only executes if the root element's visibility has be en set to hidden, 486 // This code typically only executes if the root element's visibility has be en set to hidden,
487 // if there is a transform on the <html>, or if there is a page scale factor less than 1. 487 // if there is a transform on the <html>, or if there is a page scale factor less than 1.
488 // Only fill with the base background color (typically white) if we're the r oot document, 488 // Only fill with the base background color (typically white) if we're the r oot document,
489 // since iframes/frames with no background in the child document should show the parent's background. 489 // since iframes/frames with no background in the child document should show the parent's background.
490 if (frameView()->isTransparent()) // FIXME: This needs to be dynamic. We sh ould be able to go back to blitting if we ever stop being transparent. 490 if (frameView()->isTransparent()) // FIXME: This needs to be dynamic. We sh ould be able to go back to blitting if we ever stop being transparent.
491 frameView()->setCannotBlitToWindow(); // The parent must show behind the child. 491 frameView()->setCannotBlitToWindow(); // The parent must show behind the child.
492 else { 492 else {
493 Color baseColor = frameView()->baseBackgroundColor(); 493 Color baseColor = frameView()->baseBackgroundColor();
494 if (baseColor.alpha()) { 494 if (baseColor.alpha()) {
495 CompositeOperator previousOperator = paintInfo.context->compositeOpe ration(); 495 CompositeOperator previousOperator = paintInfo.getContext()->composi teOperation();
496 paintInfo.context->setCompositeOperation(CompositeCopy); 496 paintInfo.getContext()->setCompositeOperation(CompositeCopy);
497 paintInfo.context->fillRect(paintInfo.rect, baseColor); 497 paintInfo.getContext()->fillRect(paintInfo.getRect(), baseColor);
498 paintInfo.context->setCompositeOperation(previousOperator); 498 paintInfo.getContext()->setCompositeOperation(previousOperator);
499 } else 499 } else {
500 paintInfo.context->clearRect(paintInfo.rect); 500 paintInfo.getContext()->clearRect(paintInfo.getRect());
501 }
501 } 502 }
502 } 503 }
503 504
504 bool RenderView::shouldRepaint(const LayoutRect& r) const 505 bool RenderView::shouldRepaint(const LayoutRect& r) const
505 { 506 {
506 if (printing() || r.width() == 0 || r.height() == 0) 507 if (printing() || r.width() == 0 || r.height() == 0)
507 return false; 508 return false;
508 509
509 if (!m_frameView) 510 if (!m_frameView)
510 return false; 511 return false;
(...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after
1148 #endif 1149 #endif
1149 1150
1150 if (layoutState) 1151 if (layoutState)
1151 layoutState->m_isPaginated = m_fragmenting; 1152 layoutState->m_isPaginated = m_fragmenting;
1152 1153
1153 if (m_flowThreadState != RenderObject::NotInsideFlowThread) 1154 if (m_flowThreadState != RenderObject::NotInsideFlowThread)
1154 m_root->setFlowThreadStateIncludingDescendants(m_flowThreadState); 1155 m_root->setFlowThreadStateIncludingDescendants(m_flowThreadState);
1155 } 1156 }
1156 1157
1157 } // namespace WebCore 1158 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698