Title: [234849] trunk/Source/WebKit
Revision
234849
Author
an...@apple.com
Date
2018-08-14 09:48:45 -0700 (Tue, 14 Aug 2018)

Log Message

RemoteLayerTreeTransaction should use OptionSet for change flags
https://bugs.webkit.org/show_bug.cgi?id=188547

Reviewed by Simon Fraser.

* Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
* Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::notePropertiesChanged):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::resetChangedProperties):

Also remove unused everChangedProperties.

* Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode const):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
* WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
* WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (234848 => 234849)


--- trunk/Source/WebKit/ChangeLog	2018-08-14 15:15:07 UTC (rev 234848)
+++ trunk/Source/WebKit/ChangeLog	2018-08-14 16:48:45 UTC (rev 234849)
@@ -1,3 +1,27 @@
+2018-08-14  Antti Koivisto  <an...@apple.com>
+
+        RemoteLayerTreeTransaction should use OptionSet for change flags
+        https://bugs.webkit.org/show_bug.cgi?id=188547
+
+        Reviewed by Simon Fraser.
+
+        * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
+        (WebKit::RemoteLayerTreePropertyApplier::applyProperties):
+        * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
+        (WebKit::RemoteLayerTreeTransaction::LayerProperties::notePropertiesChanged):
+        (WebKit::RemoteLayerTreeTransaction::LayerProperties::resetChangedProperties):
+
+        Also remove unused everChangedProperties.
+
+        * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
+        (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
+        (WebKit::RemoteLayerTreeTransaction::LayerProperties::encode const):
+        (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
+        * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
+        (WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
+        * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
+        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
+
 2018-08-13  Wenson Hsieh  <wenson_hs...@apple.com>
 
         [WK2] [macOS] Implement a mechanism to test drag and drop

Modified: trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm (234848 => 234849)


--- trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm	2018-08-14 15:15:07 UTC (rev 234848)
+++ trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm	2018-08-14 16:48:45 UTC (rev 234849)
@@ -332,7 +332,7 @@
         }
     }
 
-    if (properties.changedProperties & (RemoteLayerTreeTransaction::ContentsHiddenChanged | RemoteLayerTreeTransaction::UserInteractionEnabledChanged))
+    if (properties.changedProperties.containsAny({ RemoteLayerTreeTransaction::ContentsHiddenChanged, RemoteLayerTreeTransaction::UserInteractionEnabledChanged }))
         view.userInteractionEnabled = !properties.contentsHidden && properties.userInteractionEnabled;
 
     END_BLOCK_OBJC_EXCEPTIONS;

Modified: trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h (234848 => 234849)


--- trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h	2018-08-14 15:15:07 UTC (rev 234848)
+++ trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h	2018-08-14 16:48:45 UTC (rev 234849)
@@ -54,8 +54,7 @@
 
 class RemoteLayerTreeTransaction {
 public:
-    enum LayerChanges {
-        NoChange                        = 0,
+    enum LayerChange {
         NameChanged                     = 1LLU << 1,
         ChildrenChanged                 = 1LLU << 2,
         PositionChanged                 = 1LLU << 3,
@@ -94,7 +93,6 @@
         CustomAppearanceChanged         = 1LLU << 36,
         UserInteractionEnabledChanged   = 1LLU << 37,
     };
-    typedef uint64_t LayerChange;
 
     struct LayerCreationProperties {
         LayerCreationProperties();
@@ -116,19 +114,17 @@
         void encode(IPC::Encoder&) const;
         static bool decode(IPC::Decoder&, LayerProperties&);
 
-        void notePropertiesChanged(LayerChange changeFlags)
+        void notePropertiesChanged(OptionSet<LayerChange> changeFlags)
         {
             changedProperties |= changeFlags;
-            everChangedProperties |= changeFlags;
         }
 
         void resetChangedProperties()
         {
-            changedProperties = RemoteLayerTreeTransaction::NoChange;
+            changedProperties = { };
         }
 
-        LayerChange changedProperties;
-        LayerChange everChangedProperties;
+        OptionSet<LayerChange> changedProperties;
 
         String name;
         std::unique_ptr<WebCore::TransformationMatrix> transform;

Modified: trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm (234848 => 234849)


--- trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm	2018-08-14 15:15:07 UTC (rev 234848)
+++ trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm	2018-08-14 16:48:45 UTC (rev 234849)
@@ -75,9 +75,7 @@
 }
 
 RemoteLayerTreeTransaction::LayerProperties::LayerProperties()
-    : changedProperties(NoChange)
-    , everChangedProperties(NoChange)
-    , anchorPoint(0.5, 0.5, 0)
+    : anchorPoint(0.5, 0.5, 0)
     , contentsRect(FloatPoint(), FloatSize(1, 1))
     , maskLayerID(0)
     , clonedLayerID(0)
@@ -108,7 +106,6 @@
 
 RemoteLayerTreeTransaction::LayerProperties::LayerProperties(const LayerProperties& other)
     : changedProperties(other.changedProperties)
-    , everChangedProperties(other.everChangedProperties)
     , name(other.name)
     , children(other.children)
     , addedAnimations(other.addedAnimations)
@@ -158,7 +155,7 @@
 
 void RemoteLayerTreeTransaction::LayerProperties::encode(IPC::Encoder& encoder) const
 {
-    encoder.encodeEnum(changedProperties);
+    encoder.encode(changedProperties);
 
     if (changedProperties & NameChanged)
         encoder << name;
@@ -280,7 +277,7 @@
 
 bool RemoteLayerTreeTransaction::LayerProperties::decode(IPC::Decoder& decoder, LayerProperties& result)
 {
-    if (!decoder.decodeEnum(result.changedProperties))
+    if (!decoder.decode(result.changedProperties))
         return false;
 
     if (result.changedProperties & NameChanged) {

Modified: trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp (234848 => 234849)


--- trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp	2018-08-14 15:15:07 UTC (rev 234848)
+++ trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp	2018-08-14 16:48:45 UTC (rev 234849)
@@ -154,7 +154,7 @@
     if (m_properties.backingStore && m_properties.backingStoreAttached && m_properties.backingStore->display())
         m_properties.notePropertiesChanged(RemoteLayerTreeTransaction::BackingStoreChanged);
 
-    if (m_properties.changedProperties != RemoteLayerTreeTransaction::NoChange) {
+    if (m_properties.changedProperties) {
         if (m_properties.changedProperties & RemoteLayerTreeTransaction::ChildrenChanged) {
             m_properties.children.resize(m_children.size());
             for (size_t i = 0; i < m_children.size(); ++i)

Modified: trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm (234848 => 234849)


--- trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm	2018-08-14 15:15:07 UTC (rev 234848)
+++ trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm	2018-08-14 16:48:45 UTC (rev 234849)
@@ -397,7 +397,7 @@
     bool hadAnyChangedBackingStore = false;
     Vector<RetainPtr<CGContextRef>> contextsToFlush;
     for (auto& layer : layerTransaction.changedLayers()) {
-        if (layer->properties().changedProperties & RemoteLayerTreeTransaction::LayerChanges::BackingStoreChanged) {
+        if (layer->properties().changedProperties & RemoteLayerTreeTransaction::BackingStoreChanged) {
             hadAnyChangedBackingStore = true;
             if (layer->properties().backingStore) {
                 if (auto contextPendingFlush = layer->properties().backingStore->takeFrontContextPendingFlush())
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to