Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(286)

Unified Diff: third_party/WebKit/public/platform/WebMutation.h

Issue 1547893003: WIP - compositor worker mega patch. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/public/platform/WebMutation.h
diff --git a/third_party/WebKit/public/platform/WebMutation.h b/third_party/WebKit/public/platform/WebMutation.h
new file mode 100644
index 0000000000000000000000000000000000000000..94da1c00529496f8221604b642392c182a6df022
--- /dev/null
+++ b/third_party/WebKit/public/platform/WebMutation.h
@@ -0,0 +1,69 @@
+#ifndef WebMutation_h
+#define WebMutation_h
+
+#include "third_party/skia/include/utils/SkMatrix44.h"
+
+#include <map>
+
+namespace blink {
+
+struct WebMutation {
+public:
+ enum MutationFlags {
+ MutationFlagsNone = 0,
+ MutationFlagsOpacity = 1 << 0,
+ MutationFlagsScrollLeft = 1 << 1,
+ MutationFlagsScrollTop = 1 << 2,
+ MutationFlagsTransform = 1 << 3,
+ MutationFlagsConnected = 1 << 4,
+ };
+
+ void setOpacity(float opacity)
+ {
+ m_mutatedFlags |= MutationFlagsOpacity;
+ m_opacity = opacity;
+ }
+ void setScrollLeft(float scrollLeft)
+ {
+ m_mutatedFlags |= MutationFlagsScrollLeft;
+ m_scrollLeft = scrollLeft;
+ }
+ void setScrollTop(float scrollTop)
+ {
+ m_mutatedFlags |= MutationFlagsScrollTop;
+ m_scrollTop = scrollTop;
+ }
+ void setTransform(const SkMatrix44& transform)
+ {
+ m_mutatedFlags |= MutationFlagsTransform;
+ m_transform = transform;
+ }
+ void disconnect()
+ {
+ m_mutatedFlags |= MutationFlagsConnected;
+ }
+
+ bool isOpacityMutated() const { return !!(m_mutatedFlags & MutationFlagsOpacity); }
+ bool isScrollLeftMutated() const { return !!(m_mutatedFlags & MutationFlagsScrollLeft); }
+ bool isScrollTopMutated() const { return !!(m_mutatedFlags & MutationFlagsScrollTop); }
+ bool isTransformMutated() const { return !!(m_mutatedFlags & MutationFlagsTransform); }
+ bool isConnectedMutated() const { return !!(m_mutatedFlags & MutationFlagsConnected); }
+
+ float opacity() const { return m_opacity; }
+ float scrollLeft() const { return m_scrollLeft; }
+ float scrollTop() const { return m_scrollTop; }
+ SkMatrix44 transform() const { return m_transform; }
+
+private:
+ uint32_t m_mutatedFlags = 0;
+ float m_opacity = 0;
+ float m_scrollLeft = 0;
+ float m_scrollTop = 0;
+ SkMatrix44 m_transform;
+};
+
+typedef std::map<uint64_t, WebMutation> WebMutationMap;
+
+} // namespace blink
+
+#endif // WebMutation_h
« no previous file with comments | « third_party/WebKit/public/platform/WebMutableProperties.h ('k') | third_party/WebKit/public/platform/WebMutator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698