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

Unified Diff: Source/Platform/chromium/public/WebCompositingReasons.h

Issue 15181006: Plumb CompositingReason from Blink to compositor. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 7 months 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: Source/Platform/chromium/public/WebCompositingReasons.h
diff --git a/Source/Platform/chromium/public/WebCompositingReasons.h b/Source/Platform/chromium/public/WebCompositingReasons.h
new file mode 100644
index 0000000000000000000000000000000000000000..a71f499887c6fbe0ee9fb23848bfa88dab02f51f
--- /dev/null
+++ b/Source/Platform/chromium/public/WebCompositingReasons.h
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
jamesr 2013/05/17 00:10:20 wrong copyright header. Look for an email from da
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebCompositingReasons_h
+#define WebCompositingReasons_h
+
+#if WEBKIT_IMPLEMENTATION
+#include "core/rendering/RenderLayer.h"
jamesr 2013/05/17 00:10:20 we shouldn't do this
+#endif
+
+// This define will go away after landing both chromium and blink sides.
+#define USE_WEB_COMPOSITING_REASONS 1
+
+namespace WebKit {
+
+// This is a clone of CompositingReasons enum in RenderLayer.h,
+// with some additional reasons that correspond to the hidden internal
+// hierarchies in RenderLayerBacking and GraphicsLayer.
+enum {
+ CompositingReasonUnknown = 0,
+ CompositingReason3DTransform = 1 << 0,
+ CompositingReasonVideo = 1 << 1,
+ CompositingReasonCanvas = 1 << 2,
+ CompositingReasonPlugin = 1 << 3,
+ CompositingReasonIFrame = 1 << 4,
+ CompositingReasonBackfaceVisibilityHidden = 1 << 5,
+ CompositingReasonAnimation = 1 << 6,
+ CompositingReasonFilters = 1 << 7,
+ CompositingReasonPositionFixed = 1 << 8,
+ CompositingReasonPositionSticky = 1 << 9,
+ CompositingReasonOverflowScrollingTouch = 1 << 10,
+ CompositingReasonBlending = 1 << 11,
+ CompositingReasonAssumedOverlap = 1 << 12,
+ CompositingReasonOverlap = 1 << 13,
+ CompositingReasonNegativeZIndexChildren = 1 << 14,
+ CompositingReasonTransformWithCompositedDescendants = 1 << 15,
+ CompositingReasonOpacityWithCompositedDescendants = 1 << 16,
+ CompositingReasonMaskWithCompositedDescendants = 1 << 17,
+ CompositingReasonReflectionWithCompositedDescendants = 1 << 18,
+ CompositingReasonFilterWithCompositedDescendants = 1 << 19,
+ CompositingReasonBlendingWithCompositedDescendants = 1 << 20,
+ CompositingReasonClipsCompositingDescendants = 1 << 21,
+ CompositingReasonPerspective = 1 << 22,
+ CompositingReasonPreserve3D = 1 << 23,
+ CompositingReasonReflectionOfCompositedParent = 1 << 24,
+ CompositingReasonRoot = 1 << 25,
+ CompositingReasonLayerForClip = 1 << 26,
+ CompositingReasonLayerForDescendantClip = 1 << 27,
+ CompositingReasonLayerForScrollbar = 1 << 28,
+ CompositingReasonsLayerForScrollingContainer = 1 << 29,
+ CompositingReasonsLayerForForeground = 1 << 30
+
+ // FIXME: Change this enum to a list of 64-bit constants so that we can
jamesr 2013/05/17 00:10:20 An enum is not a signed type, so I'm not sure what
+ // handle more than 32 reasons. There are already more than 32 reasons,
+ // just not yet captured here.
+};
+
+// It is a typedef to allow bitwise operators to be used without type casts.
+typedef unsigned WebCompositingReasons;
+
+// Aggressively try to catch any mismatch between this enum and the WebCore enum.
+#if WEBKIT_IMPLEMENTATION
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonUnknown) == static_cast<unsigned>(WebCore::CompositingReasonNone), WebCompositingReasons_enum_does_not_match_webcore);
jamesr 2013/05/17 00:10:20 no - put these in AssertMatchingEnums
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReason3DTransform) == static_cast<unsigned>(WebCore::CompositingReason3DTransform), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonVideo) == static_cast<unsigned>(WebCore::CompositingReasonVideo), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonCanvas) == static_cast<unsigned>(WebCore::CompositingReasonCanvas), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonPlugin) == static_cast<unsigned>(WebCore::CompositingReasonPlugin), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonIFrame) == static_cast<unsigned>(WebCore::CompositingReasonIFrame), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonBackfaceVisibilityHidden) == static_cast<unsigned>(WebCore::CompositingReasonBackfaceVisibilityHidden), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonAnimation) == static_cast<unsigned>(WebCore::CompositingReasonAnimation), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonFilters) == static_cast<unsigned>(WebCore::CompositingReasonFilters), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonPositionFixed) == static_cast<unsigned>(WebCore::CompositingReasonPositionFixed), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonPositionSticky) == static_cast<unsigned>(WebCore::CompositingReasonPositionSticky), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonOverflowScrollingTouch) == static_cast<unsigned>(WebCore::CompositingReasonOverflowScrollingTouch), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonBlending) == static_cast<unsigned>(WebCore::CompositingReasonBlending), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonAssumedOverlap) == static_cast<unsigned>(WebCore::CompositingReasonAssumedOverlap), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonOverlap) == static_cast<unsigned>(WebCore::CompositingReasonOverlap), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonNegativeZIndexChildren) == static_cast<unsigned>(WebCore::CompositingReasonNegativeZIndexChildren), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonTransformWithCompositedDescendants) == static_cast<unsigned>(WebCore::CompositingReasonTransformWithCompositedDescendants), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonOpacityWithCompositedDescendants) == static_cast<unsigned>(WebCore::CompositingReasonOpacityWithCompositedDescendants), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonMaskWithCompositedDescendants) == static_cast<unsigned>(WebCore::CompositingReasonMaskWithCompositedDescendants), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonReflectionWithCompositedDescendants) == static_cast<unsigned>(WebCore::CompositingReasonReflectionWithCompositedDescendants), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonFilterWithCompositedDescendants) == static_cast<unsigned>(WebCore::CompositingReasonFilterWithCompositedDescendants), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonBlendingWithCompositedDescendants) == static_cast<unsigned>(WebCore::CompositingReasonBlendingWithCompositedDescendants), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonClipsCompositingDescendants) == static_cast<unsigned>(WebCore::CompositingReasonClipsCompositingDescendants), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonPerspective) == static_cast<unsigned>(WebCore::CompositingReasonPerspective), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonPreserve3D) == static_cast<unsigned>(WebCore::CompositingReasonPreserve3D), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonReflectionOfCompositedParent) == static_cast<unsigned>(WebCore::CompositingReasonReflectionOfCompositedParent), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonRoot) == static_cast<unsigned>(WebCore::CompositingReasonRoot), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonLayerForClip) == static_cast<unsigned>(WebCore::CompositingReasonLayerForClip), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonLayerForDescendantClip) == static_cast<unsigned>(WebCore::CompositingReasonLayerForDescendantClip), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonLayerForScrollbar) == static_cast<unsigned>(WebCore::CompositingReasonLayerForScrollbar), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonsLayerForScrollingContainer) == static_cast<unsigned>(WebCore::CompositingReasonsLayerForScrollingContainer), WebCompositingReasons_enum_does_not_match_webcore);
+COMPILE_ASSERT(static_cast<unsigned>(WebKit::CompositingReasonsLayerForForeground) == static_cast<unsigned>(WebCore::CompositingReasonsLayerForForeground), WebCompositingReasons_enum_does_not_match_webcore);
+#endif
+
+} // namespace WebKit
+
+#endif // WebCompositingReasons_h

Powered by Google App Engine
This is Rietveld 408576698