Changeset 132708 in webkit


Ignore:
Timestamp:
Oct 26, 2012, 4:03:27 PM (12 years ago)
Author:
commit-queue@webkit.org
Message:

[chromium] Allow embedder to enter/leave force compositing mode
https://bugs.webkit.org/show_bug.cgi?id=100458

Patch by James Robinson <jamesr@chromium.org> on 2012-10-26
Reviewed by Adrienne Walker.

This adds API for the embedder to decide when to enter and leave force compositing mode since it's
more efficient to only toggle this setting when the embedder is about to produce a frame.

  • public/WebWidget.h:

(WebWidget):
(WebKit::WebWidget::enterForceCompositingMode):

  • src/WebFrameImpl.cpp:

(WebKit::WebViewImpl::enterForceCompositingMode):
(WebKit):

  • src/WebViewImpl.h:

(WebViewImpl):

Location:
trunk/Source/WebKit/chromium
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/chromium/ChangeLog

    r132699 r132708  
     12012-10-26  James Robinson  <jamesr@chromium.org>
     2
     3        [chromium] Allow embedder to enter/leave force compositing mode
     4        https://bugs.webkit.org/show_bug.cgi?id=100458
     5
     6        Reviewed by Adrienne Walker.
     7
     8        This adds API for the embedder to decide when to enter and leave force compositing mode since it's
     9        more efficient to only toggle this setting when the embedder is about to produce a frame.
     10
     11        * public/WebWidget.h:
     12        (WebWidget):
     13        (WebKit::WebWidget::enterForceCompositingMode):
     14        * src/WebFrameImpl.cpp:
     15        (WebKit::WebViewImpl::enterForceCompositingMode):
     16        (WebKit):
     17        * src/WebViewImpl.h:
     18        (WebViewImpl):
     19
    1202012-10-26  Dominic Mazzoni  <dmazzoni@google.com>
    221
  • trunk/Source/WebKit/chromium/public/WebWidget.h

    r128903 r132708  
    8484    // Called to update imperative animation state. This should be called before
    8585    // paint, although the client can rate-limit these calls.
    86     //
    87     // FIXME: remove this function entirely when inversion patches land.
    8886    virtual void animate(double ignored) { }
    8987
     
    9189    // and it may result in calls to WebWidgetClient::didInvalidateRect.
    9290    virtual void layout() { }
     91
     92    // Called to toggle the WebWidget in or out of force compositing mode. This
     93    // should be called before paint.
     94    virtual void enterForceCompositingMode(bool enter) { }
    9395
    9496    enum PaintOptions {
  • trunk/Source/WebKit/chromium/src/WebViewImpl.cpp

    r132533 r132708  
    17611761}
    17621762
     1763void WebViewImpl::enterForceCompositingMode(bool enter)
     1764{
     1765    TRACE_EVENT1("webkit", "WebViewImpl::enterForceCompositingMode", "enter", enter);
     1766    settingsImpl()->setForceCompositingMode(enter);
     1767    if (enter) {
     1768        if (!m_page)
     1769            return;
     1770        Frame* mainFrame = m_page->mainFrame();
     1771        if (!mainFrame)
     1772            return;
     1773        mainFrame->view()->updateCompositingLayersAfterStyleChange();
     1774    }
     1775}
     1776
    17631777#if USE(ACCELERATED_COMPOSITING)
    17641778void WebViewImpl::doPixelReadbackToCanvas(WebCanvas* canvas, const IntRect& rect)
  • trunk/Source/WebKit/chromium/src/WebViewImpl.h

    r132173 r132708  
    146146    virtual void animate(double);
    147147    virtual void layout(); // Also implements WebLayerTreeViewClient::layout()
     148    virtual void enterForceCompositingMode(bool enable) OVERRIDE;
    148149    virtual void paint(WebCanvas*, const WebRect&, PaintOptions = ReadbackFromCompositorIfAvailable);
    149150    virtual void themeChanged();
Note: See TracChangeset for help on using the changeset viewer.