Changeset 106935 in webkit


Ignore:
Timestamp:
Feb 7, 2012 7:16:55 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-07
Reviewed by James Robinson.

Source/WebCore:

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

(WebCore::CCLayerTreeHost::setNeedsRedraw):

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

(WebCore::CCSingleThreadProxy::setNeedsRedraw):

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

(WebCore::CCThreadProxy::setNeedsRedraw):
(WebCore::CCThreadProxy::resetDamageTrackerOnImplThread):
(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:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r106933 r106935  
     12012-02-07  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/CCSingleThreadProxy.cpp:
     11        (WebCore::CCSingleThreadProxy::setNeedsRedraw):
     12        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
     13        (WebCore::CCThreadProxy::setNeedsRedraw):
     14        (WebCore::CCThreadProxy::resetDamageTrackerOnImplThread):
     15        (WebCore):
     16        * platform/graphics/chromium/cc/CCThreadProxy.h:
     17        (CCThreadProxy):
     18
    1192012-02-07  Michael Brüning  <michael.bruning@nokia.com>
    220
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp

    r106700 r106935  
    252252void CCLayerTreeHost::setNeedsRedraw()
    253253{
    254     if (CCThreadProxy::implThread())
    255         m_proxy->setNeedsRedraw();
    256     else
     254    m_proxy->setNeedsRedraw();
     255    if (!CCThreadProxy::implThread())
    257256        m_client->scheduleComposite();
    258257}
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp

    r106700 r106935  
    3030#include "LayerRendererChromium.h"
    3131#include "TraceEvent.h"
     32#include "cc/CCDamageTracker.h"
    3233#include "cc/CCLayerTreeHost.h"
    3334#include "cc/CCTextureUpdater.h"
     
    195196void CCSingleThreadProxy::setNeedsRedraw()
    196197{
     198    CCRenderSurface* renderSurface = m_layerTreeHostImpl->rootLayer()->renderSurface();
     199    if (renderSurface)
     200        renderSurface->damageTracker()->forceFullDamageNextUpdate();
     201
    197202    // FIXME: Once we move render_widget scheduling into this class, we can
    198203    // treat redraw requests more efficiently than commitAndRedraw requests.
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp

    r106700 r106935  
    2929#include "GraphicsContext3D.h"
    3030#include "TraceEvent.h"
     31#include "cc/CCDamageTracker.h"
    3132#include "cc/CCDelayBasedTimeSource.h"
    3233#include "cc/CCFrameRateController.h"
     
    249250    ASSERT(isMainThread());
    250251    TRACE_EVENT("CCThreadProxy::setNeedsRedraw", this, 0);
     252    CCProxy::implThread()->postTask(createCCThreadTask(this, &CCThreadProxy::resetDamageTrackerOnImplThread));
    251253    CCProxy::implThread()->postTask(createCCThreadTask(this, &CCThreadProxy::setNeedsRedrawOnImplThread));
    252254}
     
    273275        m_schedulerOnImplThread->setNeedsRedraw();
    274276    completion->signal();
     277}
     278
     279void CCThreadProxy::resetDamageTrackerOnImplThread()
     280{
     281    ASSERT(isImplThread());
     282    CCRenderSurface* renderSurface = m_layerTreeHostImpl->rootLayer()->renderSurface();
     283    if (renderSurface)
     284        renderSurface->damageTracker()->forceFullDamageNextUpdate();
    275285}
    276286
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h

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

    r106929 r106935  
     12012-02-07  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-07  Sheriff Bot  <webkit.review.bot@gmail.com>
    218
  • trunk/Source/WebKit/chromium/public/WebWidget.h

    r106401 r106935  
    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

    r106867 r106935  
    12721272}
    12731273
     1274void WebViewImpl::setNeedsRedraw()
     1275{
     1276#if USE(ACCELERATED_COMPOSITING)
     1277    if (m_layerTreeHost && isAcceleratedCompositingActive())
     1278        m_layerTreeHost->setNeedsRedraw();
     1279#endif
     1280}
     1281
    12741282void WebViewImpl::loseCompositorContext(int numTimes)
    12751283{
  • trunk/Source/WebKit/chromium/src/WebViewImpl.h

    r106401 r106935  
    114114    virtual void themeChanged();
    115115    virtual void composite(bool finish);
     116    virtual void setNeedsRedraw();
    116117    virtual bool handleInputEvent(const WebInputEvent&);
    117118    virtual void mouseCaptureLost();
Note: See TracChangeset for help on using the changeset viewer.