<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[172889] trunk/Source</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/172889">172889</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2014-08-23 02:24:44 -0700 (Sat, 23 Aug 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Unify GraphicsLayer::setContentsToMedia and setContentsToCanvas
https://bugs.webkit.org/show_bug.cgi?id=109658
Source/WebCore:
Patch by Byungseon Shin <sun.shin@lge.com> on 2014-08-23
Reviewed by Martin Robinson.
Based on patch originally written by Tim Horton.
Merge setContentsToMedia and setContentsToCanvas into setContentsToPlatformLayer.
* WebCore.exp.in:
Adjust exports.
* platform/graphics/GraphicsLayer.h:
Move ContentsLayerPurpose enum up out of GraphicsLayer platform implmentations
and into GraphicsLayer, so we can use it as a parameter.
Add ContentsLayerForPlugin.
(WebCore::GraphicsLayer::setContentsToPlatformLayer):
Remove setContentsToMedia and setContentsToCanvas, and replace them
with setContentsToPlatformLayer, which previously existed but was unused
and simply called setContentsToMedia.
setContentsToPlatformLayer takes a ContentsLayerPurpose, primarily
so that GraphicsLayerCA can know whether it needs to setNeedsDisplay
the layer when parenting it (canvas) or not (everything else).
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setContentsToPlatformLayer):
Rename function setContentsToMedia -> setContentsToPlatformLayer.
Rename argument mediaLayer -> platformLayer.
Store the passed-in ContentsLayerPurpose.
Remove setContentsToCanvas.
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateContentsPlatformLayer):
Remove updateContentsMediaLayer and updateContentsCanvas layer,
add updateContentsPlatformLayer.
* platform/graphics/ca/GraphicsLayerCA.h:
Do the same to the LayerChange enum.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::setContentsToImage):
(WebCore::GraphicsLayerTextureMapper::setContentsToPlatformLayer):
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::setContentsNeedsDisplay):
(WebCore::CoordinatedGraphicsLayer::setContentsToPlatformLayer):
(WebCore::CoordinatedGraphicsLayer::syncPlatformLayer):
(WebCore::CoordinatedGraphicsLayer::destroyPlatformLayerIfNeeded):
(WebCore::CoordinatedGraphicsLayer::createPlatformLayerIfNeeded):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
Fold these together in the same way as elsewhere.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
Do the same to the LayerChange enum.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::createPlatformLayerIfNeeded):
(WebCore::CoordinatedGraphicsScene::syncPlatformLayerIfNeeded):
(WebCore::CoordinatedGraphicsScene::destroyPlatformLayerIfNeeded):
(WebCore::CoordinatedGraphicsScene::setLayerState):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
* platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
(WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
Rename canvasLayer -> platformLayer.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateConfiguration):
Use the new setContentsToPlatformLayer, passing in the relevant ContentsLayerPurpose.
Source/WebKit2:
Patch by Byungseon Shin <sun.shin@lge.com> on 2014-08-23
Reviewed by Martin Robinson.
Based on patch originally written by Tim Horton.
Merge setContentsToMedia and setContentsToCanvas into setContentsToPlatformLayer.
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(IPC::ArgumentCoder<CoordinatedGraphicsLayerState>::encode):
(IPC::ArgumentCoder<CoordinatedGraphicsLayerState>::decode):
Rename canvas -> platformLayer.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCoreexpin">trunk/Source/WebCore/WebCore.exp.in</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsGraphicsLayerh">trunk/Source/WebCore/platform/graphics/GraphicsLayer.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscaGraphicsLayerCAcpp">trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscaGraphicsLayerCAh">trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicstexmapGraphicsLayerTextureMappercpp">trunk/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicstexmapGraphicsLayerTextureMapperh">trunk/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicstexmapcoordinatedCoordinatedGraphicsLayercpp">trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicstexmapcoordinatedCoordinatedGraphicsLayerh">trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicstexmapcoordinatedCoordinatedGraphicsScenecpp">trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicstexmapcoordinatedCoordinatedGraphicsSceneh">trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicstexmapcoordinatedCoordinatedGraphicsStateh">trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerBackingcpp">trunk/Source/WebCore/rendering/RenderLayerBacking.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2SharedCoordinatedGraphicsCoordinatedGraphicsArgumentCoderscpp">trunk/Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (172888 => 172889)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-08-23 08:16:51 UTC (rev 172888)
+++ trunk/Source/WebCore/ChangeLog        2014-08-23 09:24:44 UTC (rev 172889)
</span><span class="lines">@@ -1,3 +1,75 @@
</span><ins>+2014-08-23 Byungseon Shin <sun.shin@lge.com>
+
+ Unify GraphicsLayer::setContentsToMedia and setContentsToCanvas
+ https://bugs.webkit.org/show_bug.cgi?id=109658
+
+ Reviewed by Martin Robinson.
+
+ Based on patch originally written by Tim Horton.
+ Merge setContentsToMedia and setContentsToCanvas into setContentsToPlatformLayer.
+
+ * WebCore.exp.in:
+ Adjust exports.
+
+ * platform/graphics/GraphicsLayer.h:
+ Move ContentsLayerPurpose enum up out of GraphicsLayer platform implmentations
+ and into GraphicsLayer, so we can use it as a parameter.
+ Add ContentsLayerForPlugin.
+
+ (WebCore::GraphicsLayer::setContentsToPlatformLayer):
+ Remove setContentsToMedia and setContentsToCanvas, and replace them
+ with setContentsToPlatformLayer, which previously existed but was unused
+ and simply called setContentsToMedia.
+ setContentsToPlatformLayer takes a ContentsLayerPurpose, primarily
+ so that GraphicsLayerCA can know whether it needs to setNeedsDisplay
+ the layer when parenting it (canvas) or not (everything else).
+
+ * platform/graphics/ca/GraphicsLayerCA.cpp:
+ (WebCore::GraphicsLayerCA::setContentsToPlatformLayer):
+ Rename function setContentsToMedia -> setContentsToPlatformLayer.
+ Rename argument mediaLayer -> platformLayer.
+ Store the passed-in ContentsLayerPurpose.
+ Remove setContentsToCanvas.
+
+ (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
+ (WebCore::GraphicsLayerCA::updateContentsPlatformLayer):
+ Remove updateContentsMediaLayer and updateContentsCanvas layer,
+ add updateContentsPlatformLayer.
+
+ * platform/graphics/ca/GraphicsLayerCA.h:
+ Do the same to the LayerChange enum.
+
+ * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
+ (WebCore::GraphicsLayerTextureMapper::setContentsToImage):
+ (WebCore::GraphicsLayerTextureMapper::setContentsToPlatformLayer):
+ * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
+ * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
+ (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
+ (WebCore::CoordinatedGraphicsLayer::setContentsNeedsDisplay):
+ (WebCore::CoordinatedGraphicsLayer::setContentsToPlatformLayer):
+ (WebCore::CoordinatedGraphicsLayer::syncPlatformLayer):
+ (WebCore::CoordinatedGraphicsLayer::destroyPlatformLayerIfNeeded):
+ (WebCore::CoordinatedGraphicsLayer::createPlatformLayerIfNeeded):
+ (WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
+ Fold these together in the same way as elsewhere.
+
+ * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
+ Do the same to the LayerChange enum.
+
+ * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
+ (WebCore::CoordinatedGraphicsScene::createPlatformLayerIfNeeded):
+ (WebCore::CoordinatedGraphicsScene::syncPlatformLayerIfNeeded):
+ (WebCore::CoordinatedGraphicsScene::destroyPlatformLayerIfNeeded):
+ (WebCore::CoordinatedGraphicsScene::setLayerState):
+ * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
+ * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
+ (WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
+ Rename canvasLayer -> platformLayer.
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateConfiguration):
+ Use the new setContentsToPlatformLayer, passing in the relevant ContentsLayerPurpose.
+
</ins><span class="cx"> 2014-08-23 Joseph Pecoraro <pecoraro@apple.com>
</span><span class="cx">
</span><span class="cx"> Web Inspector: Do not copy large module source strings
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCoreexpin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.exp.in (172888 => 172889)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.exp.in        2014-08-23 08:16:51 UTC (rev 172888)
+++ trunk/Source/WebCore/WebCore.exp.in        2014-08-23 09:24:44 UTC (rev 172889)
</span><span class="lines">@@ -578,12 +578,10 @@
</span><span class="cx"> __ZN7WebCore15GraphicsLayerCA17suspendAnimationsEd
</span><span class="cx"> __ZN7WebCore15GraphicsLayerCA18setBackgroundColorERKNS_5ColorE
</span><span class="cx"> __ZN7WebCore15GraphicsLayerCA18setContentsToImageEPNS_5ImageE
</span><del>-__ZN7WebCore15GraphicsLayerCA18setContentsToMediaEP7CALayer
</del><span class="cx"> __ZN7WebCore15GraphicsLayerCA18setContentsVisibleEb
</span><span class="cx"> __ZN7WebCore15GraphicsLayerCA18setOpacityInternalEf
</span><span class="cx"> __ZN7WebCore15GraphicsLayerCA18setReplicatedLayerEPNS_13GraphicsLayerE
</span><span class="cx"> __ZN7WebCore15GraphicsLayerCA18setShowDebugBorderEb
</span><del>-__ZN7WebCore15GraphicsLayerCA19setContentsToCanvasEP7CALayer
</del><span class="cx"> __ZN7WebCore15GraphicsLayerCA19setCustomAppearanceENS_13GraphicsLayer16CustomAppearanceE
</span><span class="cx"> __ZN7WebCore15GraphicsLayerCA20setChildrenTransformERKNS_20TransformationMatrixE
</span><span class="cx"> __ZN7WebCore15GraphicsLayerCA20setReplicatedByLayerEPNS_13GraphicsLayerE
</span><span class="lines">@@ -596,6 +594,7 @@
</span><span class="cx"> __ZN7WebCore15GraphicsLayerCA23setContentsNeedsDisplayEv
</span><span class="cx"> __ZN7WebCore15GraphicsLayerCA23setContentsToSolidColorERKNS_5ColorE
</span><span class="cx"> __ZN7WebCore15GraphicsLayerCA23setDebugBackgroundColorERKNS_5ColorE
</span><ins>+__ZN7WebCore15GraphicsLayerCA26setContentsToPlatformLayerEP7CALayerNS_13GraphicsLayer20ContentsLayerPurposeE
</ins><span class="cx"> __ZN7WebCore15GraphicsLayerCA28platformCALayerPaintContentsEPNS_15PlatformCALayerERNS_15GraphicsContextERKNS_9FloatRectE
</span><span class="cx"> __ZN7WebCore15GraphicsLayerCA29platformCALayerAnimationEndedERKN3WTF6StringE
</span><span class="cx"> __ZN7WebCore15GraphicsLayerCA30deviceOrPageScaleFactorChangedEv
</span><span class="lines">@@ -2062,9 +2061,9 @@
</span><span class="cx"> __ZTVN7WebCore28InspectorFrontendClientLocal8SettingsE
</span><span class="cx"> __ZTVN7WebCore31BasicColorMatrixFilterOperationE
</span><span class="cx"> __ZTVN7WebCore37BasicComponentTransferFilterOperationE
</span><ins>+__ZThn???_N7WebCore15GraphicsLayerCA28platformCALayerPaintContentsEPNS_15PlatformCALayerERNS_15GraphicsContextERKNS_9FloatRectE
</ins><span class="cx"> __ZThn???_N7WebCore15GraphicsLayerCA29platformCALayerAnimationEndedERKN3WTF6StringE
</span><span class="cx"> __ZThn???_N7WebCore15GraphicsLayerCA31platformCALayerAnimationStartedERKN3WTF6StringEd
</span><del>-__ZThn???_N7WebCore15GraphicsLayerCA28platformCALayerPaintContentsEPNS_15PlatformCALayerERNS_15GraphicsContextERKNS_9FloatRectE
</del><span class="cx"> __ZThn???_N7WebCore15GraphicsLayerCA31platformCALayerAnimationStartedEd
</span><span class="cx"> __ZThn???_N7WebCore15GraphicsLayerCA40platformCALayerSetNeedsToRevalidateTilesEv
</span><span class="cx"> __ZThn???_NK7WebCore15GraphicsLayerCA26platformCALayerExposedRectEv
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsGraphicsLayerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/GraphicsLayer.h (172888 => 172889)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/GraphicsLayer.h        2014-08-23 08:16:51 UTC (rev 172888)
+++ trunk/Source/WebCore/platform/graphics/GraphicsLayer.h        2014-08-23 09:24:44 UTC (rev 172889)
</span><span class="lines">@@ -251,6 +251,15 @@
</span><span class="cx"> // Returns true if the child list changed.
</span><span class="cx"> WEBCORE_EXPORT virtual bool setChildren(const Vector<GraphicsLayer*>&);
</span><span class="cx">
</span><ins>+ enum ContentsLayerPurpose {
+ NoContentsLayer = 0,
+ ContentsLayerForImage,
+ ContentsLayerForMedia,
+ ContentsLayerForCanvas,
+ ContentsLayerForBackgroundColor,
+ ContentsLayerForPlugin
+ };
+
</ins><span class="cx"> // Add child layers. If the child is already parented, it will be removed from its old parent.
</span><span class="cx"> WEBCORE_EXPORT virtual void addChild(GraphicsLayer*);
</span><span class="cx"> WEBCORE_EXPORT virtual void addChildAtIndex(GraphicsLayer*, int index);
</span><span class="lines">@@ -405,16 +414,12 @@
</span><span class="cx"> // Layer contents
</span><span class="cx"> virtual void setContentsToImage(Image*) { }
</span><span class="cx"> virtual bool shouldDirectlyCompositeImage(Image*) const { return true; }
</span><del>- virtual void setContentsToMedia(PlatformLayer*) { } // video or plug-in
</del><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> virtual PlatformLayer* contentsLayerForMedia() const { return 0; }
</span><span class="cx"> #endif
</span><span class="cx"> // Pass an invalid color to remove the contents layer.
</span><span class="cx"> virtual void setContentsToSolidColor(const Color&) { }
</span><del>- virtual void setContentsToCanvas(PlatformLayer*) { }
- // FIXME: webkit.org/b/109658
- // Should unify setContentsToMedia and setContentsToCanvas
- virtual void setContentsToPlatformLayer(PlatformLayer* layer) { setContentsToMedia(layer); }
</del><ins>+ virtual void setContentsToPlatformLayer(PlatformLayer*, ContentsLayerPurpose) { }
</ins><span class="cx"> virtual bool usesContentsLayer() const { return false; }
</span><span class="cx">
</span><span class="cx"> // Callback from the underlying graphics system to draw layer contents.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscaGraphicsLayerCAcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp (172888 => 172889)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp        2014-08-23 08:16:51 UTC (rev 172888)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp        2014-08-23 09:24:44 UTC (rev 172889)
</span><span class="lines">@@ -923,24 +923,24 @@
</span><span class="cx"> noteLayerPropertyChanged(ContentsImageChanged);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void GraphicsLayerCA::setContentsToMedia(PlatformLayer* mediaLayer)
</del><ins>+void GraphicsLayerCA::setContentsToPlatformLayer(PlatformLayer* platformLayer, ContentsLayerPurpose purpose)
</ins><span class="cx"> {
</span><del>- if (m_contentsLayer && mediaLayer == m_contentsLayer->platformLayer())
</del><ins>+ if (m_contentsLayer && platformLayer == m_contentsLayer->platformLayer())
</ins><span class="cx"> return;
</span><del>-
- // FIXME: The passed in layer might be a raw layer or an externally created
</del><ins>+
+ // FIXME: The passed in layer might be a raw layer or an externally created
</ins><span class="cx"> // PlatformCALayer. To determine this we attempt to get the
</span><span class="cx"> // PlatformCALayer pointer. If this returns a null pointer we assume it's
</span><span class="cx"> // raw. This test might be invalid if the raw layer is, for instance, the
</span><span class="cx"> // PlatformCALayer is using a user data pointer in the raw layer, and
</span><span class="cx"> // the creator of the raw layer is using it for some other purpose.
</span><span class="cx"> // For now we don't support such a case.
</span><del>- PlatformCALayer* platformCALayer = PlatformCALayer::platformCALayer(mediaLayer);
- m_contentsLayer = mediaLayer ? (platformCALayer ? platformCALayer : createPlatformCALayer(mediaLayer, this)) : 0;
- m_contentsLayerPurpose = mediaLayer ? ContentsLayerForMedia : NoContentsLayer;
</del><ins>+ PlatformCALayer* platformCALayer = PlatformCALayer::platformCALayer(platformLayer);
+ m_contentsLayer = platformLayer ? (platformCALayer ? platformCALayer : createPlatformCALayer(platformLayer, this)) : 0;
+ m_contentsLayerPurpose = platformLayer ? purpose : NoContentsLayer;
</ins><span class="cx">
</span><span class="cx"> noteSublayersChanged();
</span><del>- noteLayerPropertyChanged(ContentsMediaLayerChanged);
</del><ins>+ noteLayerPropertyChanged(ContentsPlatformLayerChanged);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="lines">@@ -950,20 +950,6 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-void GraphicsLayerCA::setContentsToCanvas(PlatformLayer* canvasLayer)
-{
- if (m_contentsLayer && canvasLayer == m_contentsLayer->platformLayer())
- return;
-
- // Create the PlatformCALayer to wrap the incoming layer
- m_contentsLayer = canvasLayer ? createPlatformCALayer(canvasLayer, this) : 0;
-
- m_contentsLayerPurpose = canvasLayer ? ContentsLayerForCanvas : NoContentsLayer;
-
- noteSublayersChanged();
- noteLayerPropertyChanged(ContentsCanvasLayerChanged);
-}
-
</del><span class="cx"> void GraphicsLayerCA::layerDidDisplay(PlatformCALayer* layer)
</span><span class="cx"> {
</span><span class="cx"> LayerMap* layerCloneMap;
</span><span class="lines">@@ -1308,11 +1294,8 @@
</span><span class="cx"> if (m_uncommittedChanges & ContentsImageChanged) // Needs to happen before ChildrenChanged
</span><span class="cx"> updateContentsImage();
</span><span class="cx">
</span><del>- if (m_uncommittedChanges & ContentsMediaLayerChanged) // Needs to happen before ChildrenChanged
- updateContentsMediaLayer();
-
- if (m_uncommittedChanges & ContentsCanvasLayerChanged) // Needs to happen before ChildrenChanged
- updateContentsCanvasLayer();
</del><ins>+ if (m_uncommittedChanges & ContentsPlatformLayerChanged) // Needs to happen before ChildrenChanged
+ updateContentsPlatformLayer();
</ins><span class="cx">
</span><span class="cx"> if (m_uncommittedChanges & ContentsColorLayerChanged) // Needs to happen before ChildrenChanged
</span><span class="cx"> updateContentsColorLayer();
</span><span class="lines">@@ -1941,24 +1924,17 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void GraphicsLayerCA::updateContentsMediaLayer()
</del><ins>+void GraphicsLayerCA::updateContentsPlatformLayer()
</ins><span class="cx"> {
</span><del>- if (!m_contentsLayer || m_contentsLayerPurpose != ContentsLayerForMedia)
</del><ins>+ if (!m_contentsLayer)
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- // Video layer was set as m_contentsLayer, and will get parented in updateSublayerList().
</del><ins>+ // Platform layer was set as m_contentsLayer, and will get parented in updateSublayerList().
</ins><span class="cx"> setupContentsLayer(m_contentsLayer.get());
</span><del>- updateContentsRects();
-}
</del><span class="cx">
</span><del>-void GraphicsLayerCA::updateContentsCanvasLayer()
-{
- if (!m_contentsLayer || m_contentsLayerPurpose != ContentsLayerForCanvas)
- return;
</del><ins>+ if (m_contentsLayerPurpose == ContentsLayerForCanvas)
+ m_contentsLayer->setNeedsDisplay();
</ins><span class="cx">
</span><del>- // CanvasLayer was set as m_contentsLayer, and will get parented in updateSublayerList().
- setupContentsLayer(m_contentsLayer.get());
- m_contentsLayer->setNeedsDisplay();
</del><span class="cx"> updateContentsRects();
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscaGraphicsLayerCAh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h (172888 => 172889)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h        2014-08-23 08:16:51 UTC (rev 172888)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h        2014-08-23 09:24:44 UTC (rev 172889)
</span><span class="lines">@@ -126,11 +126,10 @@
</span><span class="cx"> WEBCORE_EXPORT virtual void removeAnimation(const String& animationName) override;
</span><span class="cx">
</span><span class="cx"> WEBCORE_EXPORT virtual void setContentsToImage(Image*) override;
</span><del>- WEBCORE_EXPORT virtual void setContentsToMedia(PlatformLayer*) override;
</del><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> WEBCORE_EXPORT virtual PlatformLayer* contentsLayerForMedia() const override;
</span><span class="cx"> #endif
</span><del>- WEBCORE_EXPORT virtual void setContentsToCanvas(PlatformLayer*) override;
</del><ins>+ WEBCORE_EXPORT virtual void setContentsToPlatformLayer(PlatformLayer*, ContentsLayerPurpose) override;
</ins><span class="cx"> WEBCORE_EXPORT virtual void setContentsToSolidColor(const Color&) override;
</span><span class="cx">
</span><span class="cx"> virtual bool usesContentsLayer() const override { return m_contentsLayerPurpose != NoContentsLayer; }
</span><span class="lines">@@ -374,8 +373,7 @@
</span><span class="cx"> void updateBackgroundColor();
</span><span class="cx">
</span><span class="cx"> void updateContentsImage();
</span><del>- void updateContentsMediaLayer();
- void updateContentsCanvasLayer();
</del><ins>+ void updateContentsPlatformLayer();
</ins><span class="cx"> void updateContentsColorLayer();
</span><span class="cx"> void updateContentsRects();
</span><span class="cx"> void updateMaskLayer();
</span><span class="lines">@@ -429,24 +427,23 @@
</span><span class="cx"> AnimationChanged = 1LLU << 13,
</span><span class="cx"> DirtyRectsChanged = 1LLU << 14,
</span><span class="cx"> ContentsImageChanged = 1LLU << 15,
</span><del>- ContentsMediaLayerChanged = 1LLU << 16,
- ContentsCanvasLayerChanged = 1LLU << 17,
- ContentsColorLayerChanged = 1LLU << 18,
- ContentsRectsChanged = 1LLU << 19,
- MaskLayerChanged = 1LLU << 20,
- ReplicatedLayerChanged = 1LLU << 21,
- ContentsNeedsDisplay = 1LLU << 22,
- AcceleratesDrawingChanged = 1LLU << 23,
- ContentsScaleChanged = 1LLU << 24,
- ContentsVisibilityChanged = 1LLU << 25,
- VisibleRectChanged = 1LLU << 26,
- FiltersChanged = 1LLU << 27,
- TilingAreaChanged = 1LLU << 28,
- TilesAdded = 1LLU < 29,
- DebugIndicatorsChanged = 1LLU << 30,
- CustomAppearanceChanged = 1LLU << 31,
- CustomBehaviorChanged = 1LLU << 32,
- BlendModeChanged = 1LLU << 33
</del><ins>+ ContentsPlatformLayerChanged = 1LLU << 16,
+ ContentsColorLayerChanged = 1LLU << 17,
+ ContentsRectsChanged = 1LLU << 18,
+ MaskLayerChanged = 1LLU << 19,
+ ReplicatedLayerChanged = 1LLU << 20,
+ ContentsNeedsDisplay = 1LLU << 21,
+ AcceleratesDrawingChanged = 1LLU << 22,
+ ContentsScaleChanged = 1LLU << 23,
+ ContentsVisibilityChanged = 1LLU << 24,
+ VisibleRectChanged = 1LLU << 25,
+ FiltersChanged = 1LLU << 26,
+ TilingAreaChanged = 1LLU << 27,
+ TilesAdded = 1LLU < 28,
+ DebugIndicatorsChanged = 1LLU << 29,
+ CustomAppearanceChanged = 1LLU << 30,
+ CustomBehaviorChanged = 1LLU << 31,
+ BlendModeChanged = 1LLU << 32
</ins><span class="cx"> };
</span><span class="cx"> typedef uint64_t LayerChangeFlags;
</span><span class="cx"> enum ScheduleFlushOrNot { ScheduleFlush, DontScheduleFlush };
</span><span class="lines">@@ -473,14 +470,6 @@
</span><span class="cx"> FloatRect m_visibleRect;
</span><span class="cx"> FloatSize m_sizeAtLastVisibleRectUpdate;
</span><span class="cx">
</span><del>- enum ContentsLayerPurpose {
- NoContentsLayer = 0,
- ContentsLayerForImage,
- ContentsLayerForMedia,
- ContentsLayerForCanvas,
- ContentsLayerForBackgroundColor
- };
-
</del><span class="cx"> ContentsLayerPurpose m_contentsLayerPurpose;
</span><span class="cx"> bool m_isPageTiledBackingLayer : 1;
</span><span class="cx"> bool m_needsFullRepaint : 1;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicstexmapGraphicsLayerTextureMappercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp (172888 => 172889)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp        2014-08-23 08:16:51 UTC (rev 172888)
+++ trunk/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp        2014-08-23 09:24:44 UTC (rev 172889)
</span><span class="lines">@@ -371,17 +371,17 @@
</span><span class="cx"> m_compositedImage = 0;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- setContentsToMedia(m_compositedImage.get());
</del><ins>+ setContentsToPlatformLayer(m_compositedImage.get(), ContentsLayerForImage);
</ins><span class="cx"> notifyChange(ContentChange);
</span><span class="cx"> GraphicsLayer::setContentsToImage(image);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void GraphicsLayerTextureMapper::setContentsToMedia(TextureMapperPlatformLayer* media)
</del><ins>+void GraphicsLayerTextureMapper::setContentsToPlatformLayer(TextureMapperPlatformLayer* media, ContentsLayerPurpose purpose)
</ins><span class="cx"> {
</span><span class="cx"> if (media == m_contentsLayer)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- GraphicsLayer::setContentsToMedia(media);
</del><ins>+ GraphicsLayer::setContentsToPlatformLayer(media, purpose);
</ins><span class="cx"> notifyChange(ContentChange);
</span><span class="cx">
</span><span class="cx"> if (m_contentsLayer)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicstexmapGraphicsLayerTextureMapperh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h (172888 => 172889)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h        2014-08-23 08:16:51 UTC (rev 172888)
+++ trunk/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h        2014-08-23 09:24:44 UTC (rev 172889)
</span><span class="lines">@@ -68,8 +68,7 @@
</span><span class="cx"> virtual void setContentsToImage(Image*);
</span><span class="cx"> virtual void setContentsToSolidColor(const Color&);
</span><span class="cx"> Color solidColor() const { return m_solidColor; }
</span><del>- virtual void setContentsToMedia(PlatformLayer*);
- virtual void setContentsToCanvas(PlatformLayer* canvas) { setContentsToMedia(canvas); }
</del><ins>+ virtual void setContentsToPlatformLayer(PlatformLayer*, ContentsLayerPurpose);
</ins><span class="cx"> virtual void setShowDebugBorder(bool) override;
</span><span class="cx"> virtual void setDebugBorder(const Color&, float width) override;
</span><span class="cx"> virtual void setShowRepaintCounter(bool) override;
</span><span class="lines">@@ -112,7 +111,7 @@
</span><span class="cx"> void prepareBackingStoreIfNeeded();
</span><span class="cx"> bool shouldHaveBackingStore() const;
</span><span class="cx">
</span><del>- virtual void platformLayerWillBeDestroyed() override { setContentsToMedia(0); }
</del><ins>+ virtual void platformLayerWillBeDestroyed() override { setContentsToPlatformLayer(0, NoContentsLayer); }
</ins><span class="cx"> virtual void setPlatformLayerNeedsDisplay() override { setContentsNeedsDisplay(); }
</span><span class="cx">
</span><span class="cx"> // This set of flags help us defer which properties of the layer have been
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicstexmapcoordinatedCoordinatedGraphicsLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp (172888 => 172889)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp        2014-08-23 08:16:51 UTC (rev 172888)
+++ trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp        2014-08-23 09:24:44 UTC (rev 172889)
</span><span class="lines">@@ -121,12 +121,12 @@
</span><span class="cx"> , m_pendingContentsScaleAdjustment(false)
</span><span class="cx"> , m_pendingVisibleRectAdjustment(false)
</span><span class="cx"> #if USE(GRAPHICS_SURFACE)
</span><del>- , m_isValidCanvas(false)
- , m_pendingCanvasOperation(None)
</del><ins>+ , m_isValidPlatformLayer(false)
+ , m_pendingPlatformLayerOperation(None)
</ins><span class="cx"> #endif
</span><span class="cx"> , m_coordinator(0)
</span><span class="cx"> , m_compositedNativeImagePtr(0)
</span><del>- , m_canvasPlatformLayer(0)
</del><ins>+ , m_platformLayer(0)
</ins><span class="cx"> , m_animationStartedTimer(this, &CoordinatedGraphicsLayer::animationStartedTimerFired)
</span><span class="cx"> , m_scrollableArea(0)
</span><span class="cx"> {
</span><span class="lines">@@ -383,36 +383,37 @@
</span><span class="cx"> void CoordinatedGraphicsLayer::setContentsNeedsDisplay()
</span><span class="cx"> {
</span><span class="cx"> #if USE(GRAPHICS_SURFACE)
</span><del>- if (m_canvasPlatformLayer)
- m_pendingCanvasOperation |= SyncCanvas;
</del><ins>+ if (m_platformLayer)
+ m_pendingPlatformLayerOperation |= SyncPlatformLayer;
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> notifyFlushRequired();
</span><span class="cx"> addRepaintRect(contentsRect());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void CoordinatedGraphicsLayer::setContentsToCanvas(PlatformLayer* platformLayer)
</del><ins>+void CoordinatedGraphicsLayer::setContentsToPlatformLayer(PlatformLayer* platformLayer, ContentsLayerPurpose purpose)
</ins><span class="cx"> {
</span><span class="cx"> #if USE(GRAPHICS_SURFACE)
</span><del>- if (m_canvasPlatformLayer) {
- ASSERT(m_canvasToken.isValid());
</del><ins>+ if (m_platformLayer) {
+ ASSERT(m_platformLayerToken.isValid());
</ins><span class="cx"> if (!platformLayer) {
</span><del>- m_pendingCanvasOperation |= DestroyCanvas;
- m_pendingCanvasOperation &= ~CreateCanvas;
- } else if ((m_canvasSize != platformLayer->platformLayerSize()) || (m_canvasToken != platformLayer->graphicsSurfaceToken())) {
- // m_canvasToken can be different to platformLayer->graphicsSurfaceToken(), even if m_canvasPlatformLayer equals platformLayer.
- m_pendingCanvasOperation |= RecreateCanvas;
</del><ins>+ m_pendingPlatformLayerOperation |= DestroyPlatformLayer;
+ m_pendingPlatformLayerOperation &= ~CreatePlatformLayer;
+ } else if ((m_platformLayerSize != platformLayer->platformLayerSize()) || (m_platformLayerToken != platformLayer->graphicsSurfaceToken())) {
+ // m_platformLayerToken can be different to platformLayer->graphicsSurfaceToken(), even if m_platformLayer equals platformLayer.
+ m_pendingPlatformLayerOperation |= RecreatePlatformLayer;
</ins><span class="cx"> }
</span><span class="cx"> } else {
</span><span class="cx"> if (platformLayer)
</span><del>- m_pendingCanvasOperation |= CreateAndSyncCanvas;
</del><ins>+ m_pendingPlatformLayerOperation |= CreateAndSyncPlatformLayer;
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- m_canvasPlatformLayer = platformLayer;
- // m_canvasToken is updated only here. In detail, when GraphicsContext3D is changed or reshaped, m_canvasToken is changed and setContentsToCanvas() is always called.
- m_canvasSize = m_canvasPlatformLayer ? m_canvasPlatformLayer->platformLayerSize() : IntSize();
- m_canvasToken = m_canvasPlatformLayer ? m_canvasPlatformLayer->graphicsSurfaceToken() : GraphicsSurfaceToken();
- ASSERT(!(!m_canvasToken.isValid() && m_canvasPlatformLayer));
</del><ins>+ m_platformLayer = platformLayer;
+ // m_platformLayerToken is updated only here.
+ // In detail, when GraphicsContext3D is changed or reshaped, m_platformLayerToken is changed and setContentsToPlatformLayer() is always called.
+ m_platformLayerSize = m_platformLayer ? m_platformLayer->platformLayerSize() : IntSize();
+ m_platformLayerToken = m_platformLayer ? m_platformLayer->graphicsSurfaceToken() : GraphicsSurfaceToken();
+ ASSERT(!(!m_platformLayerToken.isValid() && m_platformLayer));
</ins><span class="cx">
</span><span class="cx"> notifyFlushRequired();
</span><span class="cx"> #else
</span><span class="lines">@@ -720,53 +721,53 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if USE(GRAPHICS_SURFACE)
</span><del>-void CoordinatedGraphicsLayer::syncCanvas()
</del><ins>+void CoordinatedGraphicsLayer::syncPlatformLayer()
</ins><span class="cx"> {
</span><del>- destroyCanvasIfNeeded();
- createCanvasIfNeeded();
</del><ins>+ destroyPlatformLayerIfNeeded();
+ createPlatformLayerIfNeeded();
</ins><span class="cx">
</span><del>- if (!(m_pendingCanvasOperation & SyncCanvas))
</del><ins>+ if (!(m_pendingPlatformLayerOperation & SyncPlatformLayer))
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- m_pendingCanvasOperation &= ~SyncCanvas;
</del><ins>+ m_pendingPlatformLayerOperation &= ~SyncPlatformLayer;
</ins><span class="cx">
</span><del>- if (!m_isValidCanvas)
</del><ins>+ if (!m_isValidPlatformLayer)
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- ASSERT(m_canvasPlatformLayer);
- m_layerState.canvasFrontBuffer = m_canvasPlatformLayer->copyToGraphicsSurface();
- m_layerState.canvasShouldSwapBuffers = true;
</del><ins>+ ASSERT(m_platformLayer);
+ m_layerState.platformLayerFrontBuffer = m_platformLayer->copyToGraphicsSurface();
+ m_layerState.platformLayerShouldSwapBuffers = true;
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void CoordinatedGraphicsLayer::destroyCanvasIfNeeded()
</del><ins>+void CoordinatedGraphicsLayer::destroyPlatformLayerIfNeeded()
</ins><span class="cx"> {
</span><del>- if (!(m_pendingCanvasOperation & DestroyCanvas))
</del><ins>+ if (!(m_pendingPlatformLayerOperation & DestroyPlatformLayer))
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- if (m_isValidCanvas) {
- m_isValidCanvas = false;
- m_layerState.canvasToken = GraphicsSurfaceToken();
- m_layerState.canvasChanged = true;
</del><ins>+ if (m_isValidPlatformLayer) {
+ m_isValidPlatformLayer = false;
+ m_layerState.platformLayerToken = GraphicsSurfaceToken();
+ m_layerState.platformLayerChanged = true;
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- m_pendingCanvasOperation &= ~DestroyCanvas;
</del><ins>+ m_pendingPlatformLayerOperation &= ~DestroyPlatformLayer;
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void CoordinatedGraphicsLayer::createCanvasIfNeeded()
</del><ins>+void CoordinatedGraphicsLayer::createPlatformLayerIfNeeded()
</ins><span class="cx"> {
</span><del>- if (!(m_pendingCanvasOperation & CreateCanvas))
</del><ins>+ if (!(m_pendingPlatformLayerOperation & CreatePlatformLayer))
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- ASSERT(m_canvasPlatformLayer);
- if (!m_isValidCanvas) {
- m_layerState.canvasSize = m_canvasPlatformLayer->platformLayerSize();
- m_layerState.canvasToken = m_canvasPlatformLayer->graphicsSurfaceToken();
- m_layerState.canvasSurfaceFlags = m_canvasPlatformLayer->graphicsSurfaceFlags();
- m_layerState.canvasChanged = true;
- m_isValidCanvas = true;
</del><ins>+ ASSERT(m_platformLayer);
+ if (!m_isValidPlatformLayer) {
+ m_layerState.platformLayerSize = m_platformLayer->platformLayerSize();
+ m_layerState.platformLayerToken = m_platformLayer->graphicsSurfaceToken();
+ m_layerState.platformLayerSurfaceFlags = m_platformLayer->graphicsSurfaceFlags();
+ m_layerState.platformLayerChanged = true;
+ m_isValidPlatformLayer = true;
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- m_pendingCanvasOperation &= ~CreateCanvas;
</del><ins>+ m_pendingPlatformLayerOperation &= ~CreatePlatformLayer;
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="lines">@@ -791,7 +792,7 @@
</span><span class="cx"> syncFilters();
</span><span class="cx"> #endif
</span><span class="cx"> #if USE(GRAPHICS_SURFACE)
</span><del>- syncCanvas();
</del><ins>+ syncPlatformLayer();
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> // Only unset m_movingVisibleRect after we have updated the visible rect after the animation stopped.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicstexmapcoordinatedCoordinatedGraphicsLayerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h (172888 => 172889)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h        2014-08-23 08:16:51 UTC (rev 172888)
+++ trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h        2014-08-23 09:24:44 UTC (rev 172889)
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx"> virtual void setShowDebugBorder(bool) override;
</span><span class="cx"> virtual void setShowRepaintCounter(bool) override;
</span><span class="cx"> virtual bool shouldDirectlyCompositeImage(Image*) const override;
</span><del>- virtual void setContentsToCanvas(PlatformLayer*) override;
</del><ins>+ virtual void setContentsToPlatformLayer(PlatformLayer*, ContentsLayerPurpose) override;
</ins><span class="cx"> virtual void setMaskLayer(GraphicsLayer*) override;
</span><span class="cx"> virtual void setReplicatedByLayer(GraphicsLayer*) override;
</span><span class="cx"> virtual void setNeedsDisplay() override;
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx"> virtual void removeAnimation(const String&) override;
</span><span class="cx"> virtual void suspendAnimations(double time) override;
</span><span class="cx"> virtual void resumeAnimations() override;
</span><del>- virtual bool usesContentsLayer() const override { return m_canvasPlatformLayer || m_compositedImage; }
</del><ins>+ virtual bool usesContentsLayer() const override { return m_platformLayer || m_compositedImage; }
</ins><span class="cx">
</span><span class="cx"> void syncPendingStateChangesIncludingSubLayers();
</span><span class="cx"> void updateContentBuffersIncludingSubLayers();
</span><span class="lines">@@ -154,18 +154,18 @@
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> #if USE(GRAPHICS_SURFACE)
</span><del>- enum PendingCanvasOperation {
</del><ins>+ enum PendingPlatformLayerOperation {
</ins><span class="cx"> None = 0x00,
</span><del>- CreateCanvas = 0x01,
- DestroyCanvas = 0x02,
- SyncCanvas = 0x04,
- CreateAndSyncCanvas = CreateCanvas | SyncCanvas,
- RecreateCanvas = CreateAndSyncCanvas | DestroyCanvas
</del><ins>+ CreatePlatformLayer = 0x01,
+ DestroyPlatformLayer = 0x02,
+ SyncPlatformLayer = 0x04,
+ CreateAndSyncPlatformLayer = CreatePlatformLayer | SyncPlatformLayer,
+ RecreatePlatformLayer = CreateAndSyncPlatformLayer | DestroyPlatformLayer
</ins><span class="cx"> };
</span><span class="cx">
</span><del>- void syncCanvas();
- void destroyCanvasIfNeeded();
- void createCanvasIfNeeded();
</del><ins>+ void syncPlatformLayer();
+ void destroyPlatformLayerIfNeeded();
+ void createPlatformLayerIfNeeded();
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> virtual void setDebugBorder(const Color&, float width) override;
</span><span class="lines">@@ -232,8 +232,8 @@
</span><span class="cx"> bool m_pendingContentsScaleAdjustment : 1;
</span><span class="cx"> bool m_pendingVisibleRectAdjustment : 1;
</span><span class="cx"> #if USE(GRAPHICS_SURFACE)
</span><del>- bool m_isValidCanvas : 1;
- unsigned m_pendingCanvasOperation : 3;
</del><ins>+ bool m_isValidPlatformLayer : 1;
+ unsigned m_pendingPlatformLayerOperation : 3;
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> CoordinatedGraphicsLayerClient* m_coordinator;
</span><span class="lines">@@ -244,10 +244,10 @@
</span><span class="cx"> NativeImagePtr m_compositedNativeImagePtr;
</span><span class="cx"> RefPtr<CoordinatedImageBacking> m_coordinatedImageBacking;
</span><span class="cx">
</span><del>- PlatformLayer* m_canvasPlatformLayer;
</del><ins>+ PlatformLayer* m_platformLayer;
</ins><span class="cx"> #if USE(GRAPHICS_SURFACE)
</span><del>- IntSize m_canvasSize;
- GraphicsSurfaceToken m_canvasToken;
</del><ins>+ IntSize m_platformLayerSize;
+ GraphicsSurfaceToken m_platformLayerToken;
</ins><span class="cx"> #endif
</span><span class="cx"> Timer<CoordinatedGraphicsLayer> m_animationStartedTimer;
</span><span class="cx"> GraphicsLayerAnimations m_animations;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicstexmapcoordinatedCoordinatedGraphicsScenecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp (172888 => 172889)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp        2014-08-23 08:16:51 UTC (rev 172888)
+++ trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp        2014-08-23 09:24:44 UTC (rev 172889)
</span><span class="lines">@@ -165,37 +165,37 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if USE(GRAPHICS_SURFACE)
</span><del>-void CoordinatedGraphicsScene::createCanvasIfNeeded(TextureMapperLayer* layer, const CoordinatedGraphicsLayerState& state)
</del><ins>+void CoordinatedGraphicsScene::createPlatformLayerIfNeeded(TextureMapperLayer* layer, const CoordinatedGraphicsLayerState& state)
</ins><span class="cx"> {
</span><del>- if (!state.canvasToken.isValid())
</del><ins>+ if (!state.platformLayerToken.isValid())
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- RefPtr<TextureMapperSurfaceBackingStore> canvasBackingStore(TextureMapperSurfaceBackingStore::create());
- m_surfaceBackingStores.set(layer, canvasBackingStore);
- canvasBackingStore->setGraphicsSurface(GraphicsSurface::create(state.canvasSize, state.canvasSurfaceFlags, state.canvasToken));
- layer->setContentsLayer(canvasBackingStore.get());
</del><ins>+ RefPtr<TextureMapperSurfaceBackingStore> platformLayerBackingStore(TextureMapperSurfaceBackingStore::create());
+ m_surfaceBackingStores.set(layer, platformLayerBackingStore);
+ platformLayerBackingStore->setGraphicsSurface(GraphicsSurface::create(state.platformLayerSize, state.platformLayerSurfaceFlags, state.platformLayerToken));
+ layer->setContentsLayer(platformLayerBackingStore.get());
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void CoordinatedGraphicsScene::syncCanvasIfNeeded(TextureMapperLayer* layer, const CoordinatedGraphicsLayerState& state)
</del><ins>+void CoordinatedGraphicsScene::syncPlatformLayerIfNeeded(TextureMapperLayer* layer, const CoordinatedGraphicsLayerState& state)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(m_textureMapper);
</span><span class="cx">
</span><del>- if (state.canvasChanged) {
- destroyCanvasIfNeeded(layer, state);
- createCanvasIfNeeded(layer, state);
</del><ins>+ if (state.platformLayerChanged) {
+ destroyPlatformLayerIfNeeded(layer, state);
+ createPlatformLayerIfNeeded(layer, state);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- if (state.canvasShouldSwapBuffers) {
</del><ins>+ if (state.platformLayerShouldSwapBuffers) {
</ins><span class="cx"> ASSERT(m_surfaceBackingStores.contains(layer));
</span><span class="cx"> SurfaceBackingStoreMap::iterator it = m_surfaceBackingStores.find(layer);
</span><del>- RefPtr<TextureMapperSurfaceBackingStore> canvasBackingStore = it->value;
- canvasBackingStore->swapBuffersIfNeeded(state.canvasFrontBuffer);
</del><ins>+ RefPtr<TextureMapperSurfaceBackingStore> platformLayerBackingStore = it->value;
+ platformLayerBackingStore->swapBuffersIfNeeded(state.platformLayerFrontBuffer);
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void CoordinatedGraphicsScene::destroyCanvasIfNeeded(TextureMapperLayer* layer, const CoordinatedGraphicsLayerState& state)
</del><ins>+void CoordinatedGraphicsScene::destroyPlatformLayerIfNeeded(TextureMapperLayer* layer, const CoordinatedGraphicsLayerState& state)
</ins><span class="cx"> {
</span><del>- if (state.canvasToken.isValid())
</del><ins>+ if (state.platformLayerToken.isValid())
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> m_surfaceBackingStores.remove(layer);
</span><span class="lines">@@ -319,7 +319,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> setLayerAnimationsIfNeeded(layer, layerState);
</span><span class="cx"> #if USE(GRAPHICS_SURFACE)
</span><del>- syncCanvasIfNeeded(layer, layerState);
</del><ins>+ syncPlatformLayerIfNeeded(layer, layerState);
</ins><span class="cx"> #endif
</span><span class="cx"> setLayerRepaintCountIfNeeded(layer, layerState);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicstexmapcoordinatedCoordinatedGraphicsSceneh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h (172888 => 172889)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h        2014-08-23 08:16:51 UTC (rev 172888)
+++ trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h        2014-08-23 09:24:44 UTC (rev 172889)
</span><span class="lines">@@ -100,9 +100,9 @@
</span><span class="cx"> #endif
</span><span class="cx"> void setLayerAnimationsIfNeeded(TextureMapperLayer*, const CoordinatedGraphicsLayerState&);
</span><span class="cx"> #if USE(GRAPHICS_SURFACE)
</span><del>- void createCanvasIfNeeded(TextureMapperLayer*, const CoordinatedGraphicsLayerState&);
- void syncCanvasIfNeeded(TextureMapperLayer*, const CoordinatedGraphicsLayerState&);
- void destroyCanvasIfNeeded(TextureMapperLayer*, const CoordinatedGraphicsLayerState&);
</del><ins>+ void createPlatformLayerIfNeeded(TextureMapperLayer*, const CoordinatedGraphicsLayerState&);
+ void syncPlatformLayerIfNeeded(TextureMapperLayer*, const CoordinatedGraphicsLayerState&);
+ void destroyPlatformLayerIfNeeded(TextureMapperLayer*, const CoordinatedGraphicsLayerState&);
</ins><span class="cx"> #endif
</span><span class="cx"> void setLayerRepaintCountIfNeeded(TextureMapperLayer*, const CoordinatedGraphicsLayerState&);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicstexmapcoordinatedCoordinatedGraphicsStateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h (172888 => 172889)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h        2014-08-23 08:16:51 UTC (rev 172888)
+++ trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h        2014-08-23 09:24:44 UTC (rev 172889)
</span><span class="lines">@@ -89,8 +89,8 @@
</span><span class="cx"> bool filtersChanged: 1;
</span><span class="cx"> bool childrenChanged: 1;
</span><span class="cx"> bool repaintCountChanged : 1;
</span><del>- bool canvasChanged: 1;
- bool canvasShouldSwapBuffers: 1;
</del><ins>+ bool platformLayerChanged: 1;
+ bool platformLayerShouldSwapBuffers: 1;
</ins><span class="cx"> bool isScrollableChanged: 1;
</span><span class="cx"> bool committedScrollOffsetChanged: 1;
</span><span class="cx"> bool contentsTilingChanged: 1;
</span><span class="lines">@@ -131,7 +131,7 @@
</span><span class="cx"> , mask(InvalidCoordinatedLayerID)
</span><span class="cx"> , imageID(InvalidCoordinatedImageBackingID)
</span><span class="cx"> #if USE(GRAPHICS_SURFACE)
</span><del>- , canvasFrontBuffer(0)
</del><ins>+ , platformLayerFrontBuffer(0)
</ins><span class="cx"> #endif
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="lines">@@ -163,10 +163,10 @@
</span><span class="cx"> Vector<TileUpdateInfo> tilesToUpdate;
</span><span class="cx">
</span><span class="cx"> #if USE(GRAPHICS_SURFACE)
</span><del>- IntSize canvasSize;
- GraphicsSurfaceToken canvasToken;
- uint32_t canvasFrontBuffer;
- GraphicsSurface::Flags canvasSurfaceFlags;
</del><ins>+ IntSize platformLayerSize;
+ GraphicsSurfaceToken platformLayerToken;
+ uint32_t platformLayerFrontBuffer;
+ GraphicsSurface::Flags platformLayerSurfaceFlags;
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> IntSize committedScrollOffset;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerBackingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (172888 => 172889)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2014-08-23 08:16:51 UTC (rev 172888)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2014-08-23 09:24:44 UTC (rev 172889)
</span><span class="lines">@@ -589,20 +589,20 @@
</span><span class="cx"> }
</span><span class="cx"> #else
</span><span class="cx"> if (!pluginViewBase->shouldNotAddLayer())
</span><del>- m_graphicsLayer->setContentsToMedia(pluginViewBase->platformLayer());
</del><ins>+ m_graphicsLayer->setContentsToPlatformLayer(pluginViewBase->platformLayer(), GraphicsLayer::ContentsLayerForPlugin);
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> #if ENABLE(VIDEO)
</span><span class="cx"> else if (renderer().isVideo()) {
</span><span class="cx"> HTMLMediaElement* mediaElement = toHTMLMediaElement(renderer().element());
</span><del>- m_graphicsLayer->setContentsToMedia(mediaElement->platformLayer());
</del><ins>+ m_graphicsLayer->setContentsToPlatformLayer(mediaElement->platformLayer(), GraphicsLayer::ContentsLayerForMedia);
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(WEBGL) || ENABLE(ACCELERATED_2D_CANVAS)
</span><span class="cx"> else if (renderer().isCanvas() && canvasCompositingStrategy(renderer()) == CanvasAsLayerContents) {
</span><span class="cx"> const HTMLCanvasElement* canvas = toHTMLCanvasElement(renderer().element());
</span><span class="cx"> if (CanvasRenderingContext* context = canvas->renderingContext())
</span><del>- m_graphicsLayer->setContentsToCanvas(context->platformLayer());
</del><ins>+ m_graphicsLayer->setContentsToPlatformLayer(context->platformLayer(), GraphicsLayer::ContentsLayerForCanvas);
</ins><span class="cx"> layerConfigChanged = true;
</span><span class="cx"> }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (172888 => 172889)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-08-23 08:16:51 UTC (rev 172888)
+++ trunk/Source/WebKit2/ChangeLog        2014-08-23 09:24:44 UTC (rev 172889)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2014-08-23 Byungseon Shin <sun.shin@lge.com>
+
+ Unify GraphicsLayer::setContentsToMedia and setContentsToCanvas
+ https://bugs.webkit.org/show_bug.cgi?id=109658
+
+ Reviewed by Martin Robinson.
+
+ Based on patch originally written by Tim Horton.
+ Merge setContentsToMedia and setContentsToCanvas into setContentsToPlatformLayer.
+
+ * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
+ (IPC::ArgumentCoder<CoordinatedGraphicsLayerState>::encode):
+ (IPC::ArgumentCoder<CoordinatedGraphicsLayerState>::decode):
+ Rename canvas -> platformLayer.
+
</ins><span class="cx"> 2014-08-22 Commit Queue <commit-queue@webkit.org>
</span><span class="cx">
</span><span class="cx"> Unreviewed, rolling out r172866.
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedCoordinatedGraphicsCoordinatedGraphicsArgumentCoderscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp (172888 => 172889)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp        2014-08-23 08:16:51 UTC (rev 172888)
+++ trunk/Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp        2014-08-23 09:24:44 UTC (rev 172889)
</span><span class="lines">@@ -686,11 +686,11 @@
</span><span class="cx"> encoder << state.tilesToUpdate;
</span><span class="cx">
</span><span class="cx"> #if USE(GRAPHICS_SURFACE)
</span><del>- if (state.canvasChanged) {
- encoder << state.canvasSize;
- encoder << state.canvasToken;
- encoder << state.canvasFrontBuffer;
- encoder << state.canvasSurfaceFlags;
</del><ins>+ if (state.platformLayerChanged) {
+ encoder << state.platformLayerSize;
+ encoder << state.platformLayerToken;
+ encoder << state.platformLayerFrontBuffer;
+ encoder << state.platformLayerSurfaceFlags;
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="lines">@@ -776,17 +776,17 @@
</span><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> #if USE(GRAPHICS_SURFACE)
</span><del>- if (state.canvasChanged) {
- if (!decoder.decode(state.canvasSize))
</del><ins>+ if (state.platformLayerChanged) {
+ if (!decoder.decode(state.platformLayerSize))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><del>- if (!decoder.decode(state.canvasToken))
</del><ins>+ if (!decoder.decode(state.platformLayerToken))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><del>- if (!decoder.decode(state.canvasFrontBuffer))
</del><ins>+ if (!decoder.decode(state.platformLayerFrontBuffer))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><del>- if (!decoder.decode(state.canvasSurfaceFlags))
</del><ins>+ if (!decoder.decode(state.platformLayerSurfaceFlags))
</ins><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx"> #endif
</span></span></pre>
</div>
</div>
</body>
</html>