Changeset 76653 in webkit


Ignore:
Timestamp:
Jan 25, 2011 4:18:06 PM (13 years ago)
Author:
andersca@apple.com
Message:

2011-01-25 Anders Carlsson <andersca@apple.com>

Reviewed by Adam Roben.

Add and implement LayerTreeHost::scheduleLayerFlush
https://bugs.webkit.org/show_bug.cgi?id=53135

  • WebKit2.xcodeproj/project.pbxproj: Add LayerTreeHostMac.mm.
  • WebProcess/WebPage/DrawingAreaImpl.cpp: (WebKit::DrawingAreaImpl::scheduleCompositingLayerSync): Call LayerTreeHost::scheduleLayerFlush.
  • WebProcess/WebPage/LayerTreeHost.cpp: (WebKit::LayerTreeHost::~LayerTreeHost): Call platformInvalidate().

(WebKit::LayerTreeHost::flushPendingLayerChanges):
Rename from syncCompositingLayers.

  • WebProcess/WebPage/mac/LayerTreeHostMac.mm: Added. (WebKit::LayerTreeHost::scheduleLayerFlush): Create a run loop observer if needed. This code is copied from LayerBackedDrawingAreaMac.mm

(WebKit::LayerTreeHost::platformInvalidate):
Invalidate the run loop observer.

(WebKit::LayerTreeHost::flushPendingLayerChangesRunLoopObserverCallback):
Call flushPendingChanges() and remove the run loop observer if it succeeded.

Location:
trunk/Source/WebKit2
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r76649 r76653  
     12011-01-25  Anders Carlsson  <andersca@apple.com>
     2
     3        Reviewed by Adam Roben.
     4
     5        Add and implement LayerTreeHost::scheduleLayerFlush
     6        https://bugs.webkit.org/show_bug.cgi?id=53135
     7
     8        * WebKit2.xcodeproj/project.pbxproj:
     9        Add LayerTreeHostMac.mm.
     10
     11        * WebProcess/WebPage/DrawingAreaImpl.cpp:
     12        (WebKit::DrawingAreaImpl::scheduleCompositingLayerSync):
     13        Call LayerTreeHost::scheduleLayerFlush.
     14
     15        * WebProcess/WebPage/LayerTreeHost.cpp:
     16        (WebKit::LayerTreeHost::~LayerTreeHost):
     17        Call platformInvalidate().
     18
     19        (WebKit::LayerTreeHost::flushPendingLayerChanges):
     20        Rename from syncCompositingLayers.
     21
     22        * WebProcess/WebPage/mac/LayerTreeHostMac.mm: Added.
     23        (WebKit::LayerTreeHost::scheduleLayerFlush):
     24        Create a run loop observer if needed. This code is copied from LayerBackedDrawingAreaMac.mm
     25
     26        (WebKit::LayerTreeHost::platformInvalidate):
     27        Invalidate the run loop observer.
     28
     29        (WebKit::LayerTreeHost::flushPendingLayerChangesRunLoopObserverCallback):
     30        Call flushPendingChanges() and remove the run loop observer if it succeeded.
     31
    1322011-01-25  Anders Carlsson  <andersca@apple.com>
    233
  • trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r76649 r76653  
    7070                1A186EEA12EF7618008E5F37 /* LayerTreeHost.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A186EE812EF7618008E5F37 /* LayerTreeHost.h */; };
    7171                1A186EEB12EF7618008E5F37 /* LayerTreeHost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A186EE912EF7618008E5F37 /* LayerTreeHost.cpp */; };
     72                1A18718512EF9877008E5F37 /* LayerTreeHostMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A18718412EF9877008E5F37 /* LayerTreeHostMac.mm */; };
    7273                1A1C4EC810D06099005E67E7 /* WebCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AA1C79A100E7FC50078DEBC /* WebCore.framework */; };
    7374                1A1C649B11F4174200553C19 /* WebContextMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A1C648611F415B700553C19 /* WebContextMac.mm */; };
     
    800801                1A186EE812EF7618008E5F37 /* LayerTreeHost.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LayerTreeHost.h; sourceTree = "<group>"; };
    801802                1A186EE912EF7618008E5F37 /* LayerTreeHost.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LayerTreeHost.cpp; sourceTree = "<group>"; };
     803                1A18718412EF9877008E5F37 /* LayerTreeHostMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = LayerTreeHostMac.mm; sourceTree = "<group>"; };
    802804                1A1C648611F415B700553C19 /* WebContextMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebContextMac.mm; sourceTree = "<group>"; };
    803805                1A1FA251127A0E4F0050E709 /* NPRemoteObjectMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NPRemoteObjectMap.h; sourceTree = "<group>"; };
     
    25462548                                BC5F7BB8118237990052C02C /* ChunkedUpdateDrawingAreaMac.cpp */,
    25472549                                0F5265B511DD37700006D33C /* LayerBackedDrawingAreaMac.mm */,
     2550                                1A18718412EF9877008E5F37 /* LayerTreeHostMac.mm */,
    25482551                                1C8E2DAD1278C5B200BC7BD0 /* WebInspectorMac.mm */,
    25492552                                BC963D6D113DD1A500574BE2 /* WebPageMac.mm */,
     
    35453548                                E134F01A12EA5D99004EC58D /* WKPrintingView.mm in Sources */,
    35463549                                1A186EEB12EF7618008E5F37 /* LayerTreeHost.cpp in Sources */,
     3550                                1A18718512EF9877008E5F37 /* LayerTreeHostMac.mm in Sources */,
    35473551                        );
    35483552                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp

    r76649 r76653  
    135135void DrawingAreaImpl::scheduleCompositingLayerSync()
    136136{
     137    m_layerTreeHost.scheduleLayerFlush();
    137138}
    138139
  • trunk/Source/WebKit2/WebProcess/WebPage/LayerTreeHost.cpp

    r76649 r76653  
    4646LayerTreeHost::~LayerTreeHost()
    4747{
     48    platformInvalidate();
    4849}
    4950
     
    5859}
    5960
    60 bool LayerTreeHost::syncCompositingLayers()
     61bool LayerTreeHost::flushPendingLayerChanges()
    6162{
    6263    return m_webPage->corePage()->mainFrame()->view()->syncCompositingStateIncludingSubframes();
  • trunk/Source/WebKit2/WebProcess/WebPage/LayerTreeHost.h

    r76649 r76653  
    5151    void detachRootCompositingLayer();
    5252
     53    void scheduleLayerFlush();
     54
    5355private:
     56    void platformInvalidate();
     57
     58    bool flushPendingLayerChanges();
     59
     60#if PLATFORM(MAC)
     61    static void flushPendingLayerChangesRunLoopObserverCallback(CFRunLoopObserverRef, CFRunLoopActivity, void*);
     62    void flushPendingLayerChangesRunLoopObserverCallback();
     63   
     64    RetainPtr<CFRunLoopObserverRef> m_flushPendingLayerChangesRunLoopObserver;
     65#endif
     66
    5467    WebPage* m_webPage;
    55 
    56     bool syncCompositingLayers();
    5768};
    5869
Note: See TracChangeset for help on using the changeset viewer.