Diff
Modified: trunk/ChangeLog (142111 => 142112)
--- trunk/ChangeLog 2013-02-07 14:42:20 UTC (rev 142111)
+++ trunk/ChangeLog 2013-02-07 14:47:50 UTC (rev 142112)
@@ -1,3 +1,16 @@
+2013-02-07 Caio Marcelo de Oliveira Filho <[email protected]>
+
+ [CoordinatedGraphics] Use ScrollingCoordinator to track fixed layers
+ https://bugs.webkit.org/show_bug.cgi?id=108990
+
+ Reviewed by Noam Rosenthal.
+
+ Add a new test that allow us to remove the fixed positioning of a layer but still keeping
+ it compositing. Coordinated Graphics had a bug where the CoordinatedSceneGraph would still
+ count this layer as fixed position.
+
+ * ManualTests/remove-fixed-position-but-keep-compositing.html: Added.
+
2013-02-07 Gustavo Noronha Silva <[email protected]>
Unreviewed build fix after r141196 for 32 bits autotools.
Added: trunk/ManualTests/remove-fixed-position-but-keep-compositing.html (0 => 142112)
--- trunk/ManualTests/remove-fixed-position-but-keep-compositing.html (rev 0)
+++ trunk/ManualTests/remove-fixed-position-but-keep-compositing.html 2013-02-07 14:47:50 UTC (rev 142112)
@@ -0,0 +1,46 @@
+<html>
+
+ <body style="height: 10000px">
+
+ <button id="toggle">Toggle</button>
+
+ <p>
+ The black rectangle starts fixed, and due to a -webkit-transform will be composited. Toggle to unfix it and scroll: the black rectangle should scroll with the page and not overlap the numbers.
+ </p>
+
+ <div id="rect" style="background-color: black; width: 200px; height: 200px; position: fixed; -webkit-transform: translate3d(0,0,0)">
+ </div>
+
+1<br>
+2<br>
+3<br>
+4<br>
+5<br>
+6<br>
+7<br>
+8<br>
+9<br>
+10<br>
+11<br>
+12<br>
+13<br>
+14<br>
+15<br>
+16<br>
+17<br>
+18<br>
+19<br>
+20<br>
+
+<script>
+var rect = document.getElementById("rect");
+var toggle = document.getElementById("toggle");
+
+toggle.addEventListener("click", function (ev) {
+ if (rect.style.position === "fixed") {
+ rect.style.position = "";
+ } else {
+ rect.style.position = "fixed";
+ }
+});
+</script>
Modified: trunk/Source/WebCore/CMakeLists.txt (142111 => 142112)
--- trunk/Source/WebCore/CMakeLists.txt 2013-02-07 14:42:20 UTC (rev 142111)
+++ trunk/Source/WebCore/CMakeLists.txt 2013-02-07 14:47:50 UTC (rev 142112)
@@ -44,6 +44,7 @@
"${WEBCORE_DIR}/page"
"${WEBCORE_DIR}/page/animation"
"${WEBCORE_DIR}/page/scrolling"
+ "${WEBCORE_DIR}/page/scrolling/coordinatedgraphics"
"${WEBCORE_DIR}/platform"
"${WEBCORE_DIR}/platform/animation"
"${WEBCORE_DIR}/platform/audio"
@@ -1820,6 +1821,7 @@
page/scrolling/ScrollingConstraints.cpp
page/scrolling/ScrollingCoordinator.cpp
+ page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp
platform/Arena.cpp
platform/AsyncFileSystem.cpp
Modified: trunk/Source/WebCore/ChangeLog (142111 => 142112)
--- trunk/Source/WebCore/ChangeLog 2013-02-07 14:42:20 UTC (rev 142111)
+++ trunk/Source/WebCore/ChangeLog 2013-02-07 14:47:50 UTC (rev 142112)
@@ -1,3 +1,49 @@
+2013-02-07 Caio Marcelo de Oliveira Filho <[email protected]>
+
+ [CoordinatedGraphics] Use ScrollingCoordinator to track fixed layers
+ https://bugs.webkit.org/show_bug.cgi?id=108990
+
+ Reviewed by Noam Rosenthal.
+
+ WebCore keeps ScrollingCoordinator up-to-date about whether layers are fixed or not, so we
+ don't need to traverse the tree every frame to get this information.
+
+ The function ScrollingCoordinator::setLayerIsFixedToContainerLayer() is called when
+ RenderLayerBacking is updating its graphics layers.
+
+ The new code also works in new situations where the previous was broken: if a layer changed
+ from being fixed to not fixed (but still kept as a layer for other reasons), the layer will
+ be correctly updated. Previous implementation only had logic to mark layers as fixed, but
+ not the other way round. A manual test was added to illustrate the solved problem.
+
+ Testing was done with the existing manual tests that make use of "position:fixed". Automatic
+ tests are mostly not affected by this because usage of this information affects only the
+ UseFixedLayout mode, not used by default in WebKitTestRunner. Work to improve this situation
+ will be tracked in bug https://bugs.webkit.org/show_bug.cgi?id=109175.
+
+ * CMakeLists.txt:
+ * Target.pri:
+ * WebCore.pri:
+ * page/scrolling/ScrollingCoordinator.cpp:
+ (WebCore::ScrollingCoordinator::create): create specific version of ScrollingCoordinator.
+ * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp: Added.
+ (WebCore):
+ (WebCore::ScrollingCoordinatorCoordinatedGraphics::ScrollingCoordinatorCoordinatedGraphics):
+ (WebCore::ScrollingCoordinatorCoordinatedGraphics::setLayerIsFixedToContainerLayer):
+ update layer information using existing hook in ScrollingCoordinator.
+ * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h: Added.
+ (WebCore):
+ (ScrollingCoordinatorCoordinatedGraphics):
+ * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
+ (WebCore::CoordinatedGraphicsLayer::setFixedToViewport): now that setting viewport is not
+ embedded in the synchronization work, we need to mark the layer so it is updated in the
+ next frame.
+ (WebCore):
+ (WebCore::CoordinatedGraphicsLayer::flushCompositingState): remove call to syncFixedLayers().
+ * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
+ (CoordinatedGraphicsLayerClient): remove now unused syncFixedLayers() from client.
+ (CoordinatedGraphicsLayer):
+
2013-02-07 Keishi Hattori <[email protected]>
REGRESSION (r140778): Calendar Picker doesn't open when the element has the required attribute
Modified: trunk/Source/WebCore/Target.pri (142111 => 142112)
--- trunk/Source/WebCore/Target.pri 2013-02-07 14:42:20 UTC (rev 142111)
+++ trunk/Source/WebCore/Target.pri 2013-02-07 14:47:50 UTC (rev 142112)
@@ -4066,6 +4066,7 @@
use?(3D_GRAPHICS) {
HEADERS += \
+ page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h \
platform/graphics/cpu/arm/GraphicsContext3DNEON.h \
platform/graphics/ANGLEWebKitBridge.h \
platform/graphics/Extensions3D.h \
@@ -4090,6 +4091,7 @@
platform/graphics/texmap/coordinated/UpdateAtlas.h
SOURCES += \
+ page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp \
platform/graphics/ANGLEWebKitBridge.cpp \
platform/graphics/GraphicsContext3D.cpp \
platform/graphics/gpu/DrawingBuffer.cpp \
Modified: trunk/Source/WebCore/WebCore.pri (142111 => 142112)
--- trunk/Source/WebCore/WebCore.pri 2013-02-07 14:42:20 UTC (rev 142111)
+++ trunk/Source/WebCore/WebCore.pri 2013-02-07 14:47:50 UTC (rev 142112)
@@ -50,6 +50,7 @@
$$SOURCE_DIR/page/animation \
$$SOURCE_DIR/page/qt \
$$SOURCE_DIR/page/scrolling \
+ $$SOURCE_DIR/page/scrolling/coordinatedgraphics \
$$SOURCE_DIR/platform \
$$SOURCE_DIR/platform/animation \
$$SOURCE_DIR/platform/audio \
@@ -63,6 +64,7 @@
$$SOURCE_DIR/platform/graphics/qt \
$$SOURCE_DIR/platform/graphics/surfaces \
$$SOURCE_DIR/platform/graphics/texmap \
+ $$SOURCE_DIR/platform/graphics/texmap/coordinated \
$$SOURCE_DIR/platform/graphics/transforms \
$$SOURCE_DIR/platform/image-decoders \
$$SOURCE_DIR/platform/image-decoders/bmp \
Modified: trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp (142111 => 142112)
--- trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp 2013-02-07 14:42:20 UTC (rev 142111)
+++ trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp 2013-02-07 14:47:50 UTC (rev 142112)
@@ -52,6 +52,10 @@
#include "ScrollingCoordinatorChromium.h"
#endif
+#if USE(COORDINATED_GRAPHICS)
+#include "ScrollingCoordinatorCoordinatedGraphics.h"
+#endif
+
namespace WebCore {
PassRefPtr<ScrollingCoordinator> ScrollingCoordinator::create(Page* page)
@@ -64,6 +68,10 @@
return adoptRef(new ScrollingCoordinatorChromium(page));
#endif
+#if USE(COORDINATED_GRAPHICS)
+ return adoptRef(new ScrollingCoordinatorCoordinatedGraphics(page));
+#endif
+
return adoptRef(new ScrollingCoordinator(page));
}
Added: trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp (0 => 142112)
--- trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp (rev 0)
+++ trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp 2013-02-07 14:47:50 UTC (rev 142112)
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2013 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * 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 THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * 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 THE COPYRIGHT HOLDERS OR
+ * 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.
+ */
+
+#include "config.h"
+
+#if USE(COORDINATED_GRAPHICS)
+
+#include "ScrollingCoordinatorCoordinatedGraphics.h"
+
+#include "CoordinatedGraphicsLayer.h"
+#include "Page.h"
+#include "Settings.h"
+
+namespace WebCore {
+
+ScrollingCoordinatorCoordinatedGraphics::ScrollingCoordinatorCoordinatedGraphics(Page* page)
+ : ScrollingCoordinator(page)
+{
+}
+
+void ScrollingCoordinatorCoordinatedGraphics::setLayerIsFixedToContainerLayer(GraphicsLayer* layer, bool enable)
+{
+ if (!m_page->settings()->acceleratedCompositingForFixedPositionEnabled())
+ return;
+ toCoordinatedGraphicsLayer(layer)->setFixedToViewport(enable);
+}
+
+} // namespace WebCore
+
+#endif // USE(COORDINATED_GRAPHICS)
Added: trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h (0 => 142112)
--- trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h (rev 0)
+++ trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h 2013-02-07 14:47:50 UTC (rev 142112)
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2013 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * 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 THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * 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 THE COPYRIGHT HOLDERS OR
+ * 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 ScrollingCoordinatorCoordinatedGraphics_h
+#define ScrollingCoordinatorCoordinatedGraphics_h
+
+#if USE(COORDINATED_GRAPHICS)
+
+#include "ScrollingCoordinator.h"
+
+namespace WebCore {
+
+class ScrollingCoordinatorCoordinatedGraphics : public ScrollingCoordinator {
+public:
+ explicit ScrollingCoordinatorCoordinatedGraphics(Page*);
+
+ virtual void setLayerIsFixedToContainerLayer(GraphicsLayer*, bool);
+};
+
+} // namespace WebCore
+
+#endif // USE(COORDINATED_GRAPHICS)
+
+#endif
Modified: trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp (142111 => 142112)
--- trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp 2013-02-07 14:42:20 UTC (rev 142111)
+++ trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp 2013-02-07 14:47:50 UTC (rev 142112)
@@ -464,6 +464,15 @@
return m_id;
}
+void CoordinatedGraphicsLayer::setFixedToViewport(bool isFixed)
+{
+ if (m_fixedToViewport == isFixed)
+ return;
+
+ m_fixedToViewport = isFixed;
+ didChangeLayerState();
+}
+
void CoordinatedGraphicsLayer::flushCompositingState(const FloatRect& rect)
{
if (!m_coordinator->isFlushingLayerChanges()) {
@@ -478,8 +487,6 @@
if (CoordinatedGraphicsLayer* replica = toCoordinatedGraphicsLayer(replicaLayer()))
replica->flushCompositingStateForThisLayerOnly();
- m_coordinator->syncFixedLayers();
-
flushCompositingStateForThisLayerOnly();
for (size_t i = 0; i < children().size(); ++i)
Modified: trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h (142111 => 142112)
--- trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h 2013-02-07 14:42:20 UTC (rev 142111)
+++ trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h 2013-02-07 14:47:50 UTC (rev 142112)
@@ -72,7 +72,6 @@
virtual void setLayerAnimations(CoordinatedLayerID, const GraphicsLayerAnimations&) = 0;
virtual void detachLayer(CoordinatedGraphicsLayer*) = 0;
- virtual void syncFixedLayers() = 0;
virtual PassOwnPtr<GraphicsContext> beginContentUpdate(const IntSize&, CoordinatedSurface::Flags, uint32_t& atlasID, IntPoint&) = 0;
};
@@ -137,7 +136,7 @@
CoordinatedLayerID id() const;
- void setFixedToViewport(bool isFixed) { m_fixedToViewport = isFixed; }
+ void setFixedToViewport(bool isFixed);
IntRect coverRect() const { return m_mainBackingStore ? m_mainBackingStore->mapToContents(m_mainBackingStore->coverRect()) : IntRect(); }
Modified: trunk/Source/WebKit2/ChangeLog (142111 => 142112)
--- trunk/Source/WebKit2/ChangeLog 2013-02-07 14:42:20 UTC (rev 142111)
+++ trunk/Source/WebKit2/ChangeLog 2013-02-07 14:47:50 UTC (rev 142112)
@@ -1,3 +1,22 @@
+2013-02-07 Caio Marcelo de Oliveira Filho <[email protected]>
+
+ [CoordinatedGraphics] Use ScrollingCoordinator to track fixed layers
+ https://bugs.webkit.org/show_bug.cgi?id=108990
+
+ Reviewed by Noam Rosenthal.
+ Signed off for WebKit2 by Simon Fraser.
+
+ WebCore keeps ScrollingCoordinator up-to-date about whether layers are fixed or not, so we
+ don't need to traverse the tree every frame to get this information.
+
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: remove
+ syncFixedLayers() and its helper functions. Those were used to identify the fixed layers
+ and are not needed anymore.
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
+ * WebProcess/WebPage/DrawingAreaImpl.cpp:
+ (WebKit::DrawingAreaImpl::DrawingAreaImpl): enable the scrolling coordinator usage for
+ Coordinated Graphics.
+
2013-02-07 Michael BrĂ¼ning <[email protected]>
[Qt][WK2] Fold QtWebPageLoadClient into QQuickWebViewPrivate and move to C API.
Modified: trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp (142111 => 142112)
--- trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp 2013-02-07 14:42:20 UTC (rev 142111)
+++ trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp 2013-02-07 14:47:50 UTC (rev 142112)
@@ -469,54 +469,6 @@
scheduleLayerFlush();
}
-static void updateOffsetFromViewportForSelf(RenderLayer* renderLayer)
-{
- // These conditions must match the conditions in RenderLayerCompositor::requiresCompositingForPosition.
- RenderLayerBacking* backing = renderLayer->backing();
- if (!backing)
- return;
-
- RenderStyle* style = renderLayer->renderer()->style();
- if (!style)
- return;
-
- if (!renderLayer->renderer()->isOutOfFlowPositioned() || renderLayer->renderer()->style()->position() != FixedPosition)
- return;
-
- if (!renderLayer->renderer()->container()->isRenderView())
- return;
-
- if (!renderLayer->isStackingContainer())
- return;
-
- CoordinatedGraphicsLayer* graphicsLayer = toCoordinatedGraphicsLayer(backing->graphicsLayer());
- graphicsLayer->setFixedToViewport(true);
-}
-
-static void updateOffsetFromViewportForLayer(RenderLayer* renderLayer)
-{
- updateOffsetFromViewportForSelf(renderLayer);
-
- if (renderLayer->firstChild())
- updateOffsetFromViewportForLayer(renderLayer->firstChild());
- if (renderLayer->nextSibling())
- updateOffsetFromViewportForLayer(renderLayer->nextSibling());
-}
-
-void CoordinatedLayerTreeHost::syncFixedLayers()
-{
- if (!m_webPage->corePage()->settings() || !m_webPage->corePage()->settings()->acceleratedCompositingForFixedPositionEnabled())
- return;
-
- if (!m_webPage->mainFrame()->view()->hasViewportConstrainedObjects())
- return;
-
- RenderLayer* rootRenderLayer = m_webPage->mainFrame()->contentRenderer()->compositor()->rootRenderLayer();
- ASSERT(rootRenderLayer);
- if (rootRenderLayer->firstChild())
- updateOffsetFromViewportForLayer(rootRenderLayer->firstChild());
-}
-
void CoordinatedLayerTreeHost::lockAnimations()
{
m_animationsLocked = true;
Modified: trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h (142111 => 142112)
--- trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h 2013-02-07 14:42:20 UTC (rev 142111)
+++ trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h 2013-02-07 14:47:50 UTC (rev 142112)
@@ -105,7 +105,6 @@
#endif
virtual void setLayerRepaintCount(WebCore::CoordinatedLayerID, int) OVERRIDE;
virtual void detachLayer(WebCore::CoordinatedGraphicsLayer*);
- virtual void syncFixedLayers();
virtual PassOwnPtr<WebCore::GraphicsContext> beginContentUpdate(const WebCore::IntSize&, WebCore::CoordinatedSurface::Flags, uint32_t& atlasID, WebCore::IntPoint&);
Modified: trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp (142111 => 142112)
--- trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp 2013-02-07 14:42:20 UTC (rev 142111)
+++ trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp 2013-02-07 14:47:50 UTC (rev 142112)
@@ -73,6 +73,7 @@
#if USE(COORDINATED_GRAPHICS)
m_alwaysUseCompositing = true;
+ webPage->corePage()->settings()->setScrollingCoordinatorEnabled(true);
#endif
if (m_alwaysUseCompositing)