Changeset 126940 in webkit
- Timestamp:
- Aug 28, 2012, 4:35:37 PM (14 years ago)
- Location:
- trunk/Source/WebKit/chromium
- Files:
-
- 8 edited
-
ChangeLog (modified) (1 diff)
-
public/WebWidget.h (modified) (3 diffs)
-
src/WebPagePopupImpl.cpp (modified) (1 diff)
-
src/WebPagePopupImpl.h (modified) (1 diff)
-
src/WebPopupMenuImpl.cpp (modified) (1 diff)
-
src/WebPopupMenuImpl.h (modified) (1 diff)
-
src/WebViewImpl.cpp (modified) (3 diffs)
-
src/WebViewImpl.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/chromium/ChangeLog
r126939 r126940 1 2012-08-28 Sheriff Bot <webkit.review.bot@gmail.com> 2 3 Unreviewed, rolling out r126933. 4 http://trac.webkit.org/changeset/126933 5 https://bugs.webkit.org/show_bug.cgi?id=95261 6 7 Turns out we do need this! (Requested by abarth on #webkit). 8 9 * public/WebWidget.h: 10 (WebKit::WebWidget::paint): 11 * src/WebPagePopupImpl.cpp: 12 (WebKit::WebPagePopupImpl::paint): 13 * src/WebPagePopupImpl.h: 14 (WebPagePopupImpl): 15 * src/WebPopupMenuImpl.cpp: 16 (WebKit::WebPopupMenuImpl::paint): 17 * src/WebPopupMenuImpl.h: 18 * src/WebViewImpl.cpp: 19 (WebKit::WebViewImpl::paint): 20 * src/WebViewImpl.h: 21 (WebViewImpl): 22 1 23 2012-08-28 Mark Pilgrim <pilgrim@chromium.org> 2 24 -
trunk/Source/WebKit/chromium/public/WebWidget.h
r126933 r126940 42 42 #define WEBKIT_HAS_NEW_FULLSCREEN_API 1 43 43 #define WEBWIDGET_HAS_SETCOMPOSITORSURFACEREADY 1 44 #define WEBWIDGET_HAS_PAINT_OPTIONS 1 44 45 45 46 namespace WebKit { … … 91 92 virtual void layout() { } 92 93 94 enum PaintOptions { 95 // Attempt to fulfill the painting request by reading back from the 96 // compositor, assuming we're using a compositor to render. 97 ReadbackFromCompositorIfAvailable, 98 99 // Force the widget to rerender onto the canvas using software. This 100 // mode ignores 3d transforms and ignores GPU-resident content, such 101 // as video, canvas, and WebGL. 102 // 103 // Note: This option exists on OS(ANDROID) and will hopefully be 104 // removed once the link disambiguation feature renders using 105 // the compositor. 106 ForceSoftwareRenderingAndIgnoreGPUResidentContent, 107 }; 108 93 109 // Called to paint the rectangular region within the WebWidget 94 110 // onto the specified canvas at (viewPort.x,viewPort.y). You MUST call … … 98 114 // processed, it should be assumed that another call to layout is 99 115 // warranted before painting again). 100 virtual void paint(WebCanvas*, const WebRect& viewPort ) { }116 virtual void paint(WebCanvas*, const WebRect& viewPort, PaintOptions = ReadbackFromCompositorIfAvailable) { } 101 117 102 118 // In non-threaded compositing mode, triggers compositing of the current -
trunk/Source/WebKit/chromium/src/WebPagePopupImpl.cpp
r126933 r126940 226 226 } 227 227 228 void WebPagePopupImpl::paint(WebCanvas* canvas, const WebRect& rect )228 void WebPagePopupImpl::paint(WebCanvas* canvas, const WebRect& rect, PaintOptions) 229 229 { 230 230 PageWidgetDelegate::paint(m_page.get(), 0, canvas, rect, PageWidgetDelegate::Opaque); -
trunk/Source/WebKit/chromium/src/WebPagePopupImpl.h
r126933 r126940 73 73 virtual void composite(bool) OVERRIDE; 74 74 virtual void layout() OVERRIDE; 75 virtual void paint(WebCanvas*, const WebRect& ) OVERRIDE;75 virtual void paint(WebCanvas*, const WebRect&, PaintOptions = ReadbackFromCompositorIfAvailable) OVERRIDE; 76 76 virtual void resize(const WebSize&) OVERRIDE; 77 77 virtual void close() OVERRIDE; -
trunk/Source/WebKit/chromium/src/WebPopupMenuImpl.cpp
r126933 r126940 194 194 } 195 195 196 void WebPopupMenuImpl::paint(WebCanvas* canvas, const WebRect& rect )196 void WebPopupMenuImpl::paint(WebCanvas* canvas, const WebRect& rect, PaintOptions) 197 197 { 198 198 if (!m_widget) -
trunk/Source/WebKit/chromium/src/WebPopupMenuImpl.h
r126933 r126940 74 74 virtual void animate(double frameBeginTime) OVERRIDE; 75 75 virtual void layout() OVERRIDE; 76 virtual void paint(WebCanvas*, const WebRect& ) OVERRIDE;76 virtual void paint(WebCanvas*, const WebRect&, PaintOptions = ReadbackFromCompositorIfAvailable) OVERRIDE; 77 77 virtual void themeChanged() OVERRIDE; 78 78 virtual void setCompositorSurfaceReady() OVERRIDE; -
trunk/Source/WebKit/chromium/src/WebViewImpl.cpp
r126933 r126940 1739 1739 #endif 1740 1740 1741 void WebViewImpl::paint(WebCanvas* canvas, const WebRect& rect) 1742 { 1743 if (isAcceleratedCompositingActive()) { 1741 void WebViewImpl::paint(WebCanvas* canvas, const WebRect& rect, PaintOptions option) 1742 { 1743 #if !OS(ANDROID) 1744 // ReadbackFromCompositorIfAvailable is the only option available on non-Android. 1745 // Ideally, Android would always use ReadbackFromCompositorIfAvailable as well. 1746 ASSERT(option == ReadbackFromCompositorIfAvailable); 1747 #endif 1748 1749 if (option == ReadbackFromCompositorIfAvailable && isAcceleratedCompositingActive()) { 1744 1750 #if USE(ACCELERATED_COMPOSITING) 1745 1751 // If a canvas was passed in, we use it to grab a copy of the … … 1753 1759 #endif 1754 1760 } else { 1761 FrameView* view = page()->mainFrame()->view(); 1762 PaintBehavior oldPaintBehavior = view->paintBehavior(); 1763 if (isAcceleratedCompositingActive()) { 1764 ASSERT(option == ForceSoftwareRenderingAndIgnoreGPUResidentContent); 1765 view->setPaintBehavior(oldPaintBehavior | PaintBehaviorFlattenCompositingLayers); 1766 } 1767 1755 1768 double paintStart = currentTime(); 1756 1769 PageWidgetDelegate::paint(m_page.get(), pageOverlays(), canvas, rect, isTransparent() ? PageWidgetDelegate::Translucent : PageWidgetDelegate::Opaque); … … 1759 1772 WebKit::Platform::current()->histogramCustomCounts("Renderer4.SoftwarePaintDurationMS", (paintEnd - paintStart) * 1000, 0, 120, 30); 1760 1773 WebKit::Platform::current()->histogramCustomCounts("Renderer4.SoftwarePaintMegapixPerSecond", pixelsPerSec / 1000000, 10, 210, 30); 1774 1775 if (isAcceleratedCompositingActive()) { 1776 ASSERT(option == ForceSoftwareRenderingAndIgnoreGPUResidentContent); 1777 view->setPaintBehavior(oldPaintBehavior); 1778 } 1761 1779 } 1762 1780 } -
trunk/Source/WebKit/chromium/src/WebViewImpl.h
r126933 r126940 145 145 virtual void animate(double); 146 146 virtual void layout(); // Also implements WebLayerTreeViewClient::layout() 147 virtual void paint(WebCanvas*, const WebRect& );147 virtual void paint(WebCanvas*, const WebRect&, PaintOptions = ReadbackFromCompositorIfAvailable); 148 148 virtual void themeChanged(); 149 149 virtual void composite(bool finish);
Note:
See TracChangeset
for help on using the changeset viewer.