Changeset 107243 in webkit


Ignore:
Timestamp:
Feb 9, 2012 7:40:32 AM (12 years ago)
Author:
commit-queue@webkit.org
Message:

[chromium] Add setNeedsRedraw to WebWidget
https://bugs.webkit.org/show_bug.cgi?id=77555

Patch by Jonathan Backer <backer@chromium.org> on 2012-02-09
Reviewed by James Robinson.

Source/WebCore:

  • platform/graphics/chromium/cc/CCLayerTreeHost.cpp:

(WebCore::CCLayerTreeHost::setNeedsRedraw):

  • platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:

(WebCore::CCLayerTreeHostImpl::setFullRootLayerDamage):
(WebCore):

  • platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:

(CCLayerTreeHostImpl):

  • platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:

(WebCore::CCSingleThreadProxy::setNeedsRedraw):

  • platform/graphics/chromium/cc/CCThreadProxy.cpp:

(WebCore::CCThreadProxy::setNeedsRedraw):
(WebCore::CCThreadProxy::setFullRootLayerDamageOnImplThread):
(WebCore):

  • platform/graphics/chromium/cc/CCThreadProxy.h:

(CCThreadProxy):

Source/WebKit/chromium:

  • public/WebWidget.h:

(WebWidget):
(WebKit::WebWidget::setNeedsRedraw):

  • src/WebViewImpl.cpp:

(WebKit::WebViewImpl::setNeedsRedraw):
(WebKit):

  • src/WebViewImpl.h:

(WebViewImpl):

Location:
trunk/Source
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r107242 r107243  
     12012-02-09  Jonathan Backer  <backer@chromium.org>
     2
     3        [chromium] Add setNeedsRedraw to WebWidget
     4        https://bugs.webkit.org/show_bug.cgi?id=77555
     5
     6        Reviewed by James Robinson.
     7
     8        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
     9        (WebCore::CCLayerTreeHost::setNeedsRedraw):
     10        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
     11        (WebCore::CCLayerTreeHostImpl::setFullRootLayerDamage):
     12        (WebCore):
     13        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
     14        (CCLayerTreeHostImpl):
     15        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
     16        (WebCore::CCSingleThreadProxy::setNeedsRedraw):
     17        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
     18        (WebCore::CCThreadProxy::setNeedsRedraw):
     19        (WebCore::CCThreadProxy::setFullRootLayerDamageOnImplThread):
     20        (WebCore):
     21        * platform/graphics/chromium/cc/CCThreadProxy.h:
     22        (CCThreadProxy):
     23
    1242012-02-09  Pavel Feldman  <pfeldman@google.com>
    225
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp

    r107177 r107243  
    255255void CCLayerTreeHost::setNeedsRedraw()
    256256{
    257     if (CCThreadProxy::implThread())
    258         m_proxy->setNeedsRedraw();
    259     else
     257    m_proxy->setNeedsRedraw();
     258    if (!CCThreadProxy::implThread())
    260259        m_client->scheduleComposite();
    261260}
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp

    r107130 r107243  
    543543}
    544544
    545 }
     545void CCLayerTreeHostImpl::setFullRootLayerDamage()
     546{
     547    if (rootLayer()) {
     548        CCRenderSurface* renderSurface = rootLayer()->renderSurface();
     549        if (renderSurface)
     550            renderSurface->damageTracker()->forceFullDamageNextUpdate();
     551    }
     552}
     553
     554}
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.h

    r106601 r107243  
    114114    PassOwnPtr<CCScrollAndScaleSet> processScrollDeltas();
    115115
     116    // Where possible, redraws are scissored to a damage region calculated from changes to
     117    // layer properties. This function overrides the damage region for the next draw cycle.
     118    void setFullRootLayerDamage();
     119
    116120protected:
    117121    CCLayerTreeHostImpl(const CCSettings&, CCLayerTreeHostImplClient*);
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp

    r107177 r107243  
    202202    // FIXME: Once we move render_widget scheduling into this class, we can
    203203    // treat redraw requests more efficiently than commitAndRedraw requests.
     204    m_layerTreeHostImpl->setFullRootLayerDamage();
    204205    setNeedsCommit();
    205206}
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp

    r107177 r107243  
    251251    ASSERT(isMainThread());
    252252    TRACE_EVENT("CCThreadProxy::setNeedsRedraw", this, 0);
     253    CCProxy::implThread()->postTask(createCCThreadTask(this, &CCThreadProxy::setFullRootLayerDamageOnImplThread));
    253254    CCProxy::implThread()->postTask(createCCThreadTask(this, &CCThreadProxy::setNeedsRedrawOnImplThread));
    254255}
     
    598599}
    599600
     601void CCThreadProxy::setFullRootLayerDamageOnImplThread()
     602{
     603    ASSERT(isImplThread());
     604    m_layerTreeHostImpl->setFullRootLayerDamage();
     605}
     606
    600607size_t CCThreadProxy::maxPartialTextureUpdates() const
    601608{
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h

    r107177 r107243  
    104104    void setVisibleOnImplThread(CCCompletionEvent*, bool visible);
    105105    void layerTreeHostClosedOnImplThread(CCCompletionEvent*);
     106    void setFullRootLayerDamageOnImplThread();
    106107
    107108    // Accessed on main thread only.
  • trunk/Source/WebKit/chromium/ChangeLog

    r107187 r107243  
     12012-02-09  Jonathan Backer  <backer@chromium.org>
     2
     3        [chromium] Add setNeedsRedraw to WebWidget
     4        https://bugs.webkit.org/show_bug.cgi?id=77555
     5
     6        Reviewed by James Robinson.
     7
     8        * public/WebWidget.h:
     9        (WebWidget):
     10        (WebKit::WebWidget::setNeedsRedraw):
     11        * src/WebViewImpl.cpp:
     12        (WebKit::WebViewImpl::setNeedsRedraw):
     13        (WebKit):
     14        * src/WebViewImpl.h:
     15        (WebViewImpl):
     16
    1172012-02-08  Raymond Liu  <raymond.liu@intel.com>
    218
  • trunk/Source/WebKit/chromium/public/WebWidget.h

    r106951 r107243  
    108108    virtual void composite(bool finish) = 0;
    109109
     110    // Temporary method for the embedder to notify the WebWidget that the widget
     111    // has taken damage, e.g. due to a window expose. This method will be
     112    // removed when the WebWidget inversion patch lands --- http://crbug.com/112837
     113    virtual void setNeedsRedraw() { }
     114
    110115    // Called to inform the WebWidget of a change in theme.
    111116    // Implementors that cache rendered copies of widgets need to re-render
  • trunk/Source/WebKit/chromium/src/WebViewImpl.cpp

    r107125 r107243  
    12581258}
    12591259
     1260void WebViewImpl::setNeedsRedraw()
     1261{
     1262#if USE(ACCELERATED_COMPOSITING)
     1263    if (m_layerTreeHost && isAcceleratedCompositingActive())
     1264        m_layerTreeHost->setNeedsRedraw();
     1265#endif
     1266}
     1267
    12601268void WebViewImpl::loseCompositorContext(int numTimes)
    12611269{
  • trunk/Source/WebKit/chromium/src/WebViewImpl.h

    r107036 r107243  
    111111    virtual void themeChanged();
    112112    virtual void composite(bool finish);
     113    virtual void setNeedsRedraw();
    113114    virtual bool handleInputEvent(const WebInputEvent&);
    114115    virtual void mouseCaptureLost();
Note: See TracChangeset for help on using the changeset viewer.