<!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>[213147] releases/WebKitGTK/webkit-2.16/Source/WebCore</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/213147">213147</a></dd>
<dt>Author</dt> <dd>carlosgc@webkit.org</dd>
<dt>Date</dt> <dd>2017-02-28 02:11:00 -0800 (Tue, 28 Feb 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>Merge <a href="http://trac.webkit.org/projects/webkit/changeset/213044">r213044</a> - [TextureMapper] Clean up BitmapTextureGL construction
https://bugs.webkit.org/show_bug.cgi?id=168909

Reviewed by Carlos Garcia Campos.

Have the BitmapTextureGL constructor accept an rvalue reference pointer
to the GraphicsContext3D object. A static create() method is also added
to help with constructing these objects. Construction sites are updated
appropriately.

The BitmapTextureGL constructor is further cleaned up by moving default
member initializations together with the member declarations.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):
* platform/graphics/texmap/BitmapTextureGL.cpp:
(WebCore::BitmapTextureGL::BitmapTextureGL):
* platform/graphics/texmap/BitmapTextureGL.h:
* platform/graphics/texmap/BitmapTexturePool.cpp:
(WebCore::BitmapTexturePool::createTexture):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::createTexture):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#releasesWebKitGTKwebkit216SourceWebCoreChangeLog">releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog</a></li>
<li><a href="#releasesWebKitGTKwebkit216SourceWebCoreplatformgraphicsgstreamerMediaPlayerPrivateGStreamerBasecpp">releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit216SourceWebCoreplatformgraphicstexmapBitmapTextureGLcpp">releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit216SourceWebCoreplatformgraphicstexmapBitmapTextureGLh">releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/texmap/BitmapTextureGL.h</a></li>
<li><a href="#releasesWebKitGTKwebkit216SourceWebCoreplatformgraphicstexmapBitmapTexturePoolcpp">releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/texmap/BitmapTexturePool.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit216SourceWebCoreplatformgraphicstexmapTextureMapperGLcpp">releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="releasesWebKitGTKwebkit216SourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog (213146 => 213147)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog        2017-02-28 10:10:48 UTC (rev 213146)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog        2017-02-28 10:11:00 UTC (rev 213147)
</span><span class="lines">@@ -1,5 +1,30 @@
</span><span class="cx"> 2017-02-27  Zan Dobersek  &lt;zdobersek@igalia.com&gt;
</span><span class="cx"> 
</span><ins>+        [TextureMapper] Clean up BitmapTextureGL construction
+        https://bugs.webkit.org/show_bug.cgi?id=168909
+
+        Reviewed by Carlos Garcia Campos.
+
+        Have the BitmapTextureGL constructor accept an rvalue reference pointer
+        to the GraphicsContext3D object. A static create() method is also added
+        to help with constructing these objects. Construction sites are updated
+        appropriately.
+
+        The BitmapTextureGL constructor is further cleaned up by moving default
+        member initializations together with the member declarations.
+
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
+        (WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):
+        * platform/graphics/texmap/BitmapTextureGL.cpp:
+        (WebCore::BitmapTextureGL::BitmapTextureGL):
+        * platform/graphics/texmap/BitmapTextureGL.h:
+        * platform/graphics/texmap/BitmapTexturePool.cpp:
+        (WebCore::BitmapTexturePool::createTexture):
+        * platform/graphics/texmap/TextureMapperGL.cpp:
+        (WebCore::TextureMapperGL::createTexture):
+
+2017-02-27  Zan Dobersek  &lt;zdobersek@igalia.com&gt;
+
</ins><span class="cx">         [TextureMapper] Remove InterpolationQuality, TextDrawingModeFlags member variables
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=168906
</span><span class="cx"> 
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit216SourceWebCoreplatformgraphicsgstreamerMediaPlayerPrivateGStreamerBasecpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp (213146 => 213147)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp        2017-02-28 10:10:48 UTC (rev 213146)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp        2017-02-28 10:11:00 UTC (rev 213147)
</span><span class="lines">@@ -704,7 +704,7 @@
</span><span class="cx">         if (UNLIKELY(!m_context3D))
</span><span class="cx">             m_context3D = GraphicsContext3D::create(GraphicsContext3DAttributes(), nullptr, GraphicsContext3D::RenderToCurrentGLContext);
</span><span class="cx"> 
</span><del>-        RefPtr&lt;BitmapTexture&gt; texture = adoptRef(new BitmapTextureGL(m_context3D));
</del><ins>+        auto texture = BitmapTextureGL::create(*m_context3D);
</ins><span class="cx">         texture-&gt;reset(size, GST_VIDEO_INFO_HAS_ALPHA(&amp;videoInfo) ? BitmapTexture::SupportsAlpha : BitmapTexture::NoFlag);
</span><span class="cx">         buffer = std::make_unique&lt;TextureMapperPlatformLayerBuffer&gt;(WTFMove(texture));
</span><span class="cx">     }
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit216SourceWebCoreplatformgraphicstexmapBitmapTextureGLcpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp (213146 => 213147)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp        2017-02-28 10:10:48 UTC (rev 213146)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp        2017-02-28 10:11:00 UTC (rev 213147)
</span><span class="lines">@@ -57,18 +57,8 @@
</span><span class="cx">     return static_cast&lt;BitmapTextureGL*&gt;(texture);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-BitmapTextureGL::BitmapTextureGL(PassRefPtr&lt;GraphicsContext3D&gt; context3D, const Flags flags)
-    : m_id(0)
-    , m_fbo(0)
-    , m_rbo(0)
-    , m_depthBufferObject(0)
-    , m_shouldClear(true)
-    , m_context3D(context3D)
-#if OS(DARWIN)
-    , m_type(GL_UNSIGNED_INT_8_8_8_8_REV)
-#else
-    , m_type(GraphicsContext3D::UNSIGNED_BYTE)
-#endif
</del><ins>+BitmapTextureGL::BitmapTextureGL(RefPtr&lt;GraphicsContext3D&gt;&amp;&amp; context3D, const Flags flags)
+    : m_context3D(WTFMove(context3D))
</ins><span class="cx"> {
</span><span class="cx">     if (flags &amp; FBOAttachment)
</span><span class="cx">         m_internalFormat = m_format = GraphicsContext3D::RGBA;
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit216SourceWebCoreplatformgraphicstexmapBitmapTextureGLh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/texmap/BitmapTextureGL.h (213146 => 213147)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/texmap/BitmapTextureGL.h        2017-02-28 10:10:48 UTC (rev 213146)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/texmap/BitmapTextureGL.h        2017-02-28 10:11:00 UTC (rev 213147)
</span><span class="lines">@@ -38,7 +38,11 @@
</span><span class="cx"> 
</span><span class="cx"> class BitmapTextureGL : public BitmapTexture {
</span><span class="cx"> public:
</span><del>-    BitmapTextureGL(PassRefPtr&lt;GraphicsContext3D&gt;, const Flags = NoFlag);
</del><ins>+    static Ref&lt;BitmapTexture&gt; create(Ref&lt;GraphicsContext3D&gt;&amp;&amp; context3D, const Flags flags = NoFlag)
+    {
+        return adoptRef(*new BitmapTextureGL(WTFMove(context3D), flags));
+    }
+
</ins><span class="cx">     virtual ~BitmapTextureGL();
</span><span class="cx"> 
</span><span class="cx">     IntSize size() const override;
</span><span class="lines">@@ -73,19 +77,18 @@
</span><span class="cx">     GC3Dint internalFormat() const { return m_internalFormat; }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><ins>+    BitmapTextureGL(RefPtr&lt;GraphicsContext3D&gt;&amp;&amp;, const Flags);
</ins><span class="cx"> 
</span><del>-    Platform3DObject m_id;
</del><ins>+    Platform3DObject m_id { 0 };
</ins><span class="cx">     IntSize m_textureSize;
</span><span class="cx">     IntRect m_dirtyRect;
</span><del>-    Platform3DObject m_fbo;
-    Platform3DObject m_rbo;
-    Platform3DObject m_depthBufferObject;
-    bool m_shouldClear;
</del><ins>+    Platform3DObject m_fbo { 0 };
+    Platform3DObject m_rbo { 0 };
+    Platform3DObject m_depthBufferObject { 0 };
+    bool m_shouldClear { true };
</ins><span class="cx">     ClipStack m_clipStack;
</span><span class="cx">     RefPtr&lt;GraphicsContext3D&gt; m_context3D;
</span><span class="cx"> 
</span><del>-    BitmapTextureGL();
-
</del><span class="cx">     void clearIfNeeded();
</span><span class="cx">     void createFboIfNeeded();
</span><span class="cx"> 
</span><span class="lines">@@ -93,7 +96,13 @@
</span><span class="cx"> 
</span><span class="cx">     GC3Dint m_internalFormat;
</span><span class="cx">     GC3Denum m_format;
</span><del>-    GC3Denum m_type;
</del><ins>+    GC3Denum m_type {
+#if OS(DARWIN)
+        GL_UNSIGNED_INT_8_8_8_8_REV
+#else
+        GraphicsContext3D::UNSIGNED_BYTE
+#endif
+    };
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> BitmapTextureGL* toBitmapTextureGL(BitmapTexture*);
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit216SourceWebCoreplatformgraphicstexmapBitmapTexturePoolcpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/texmap/BitmapTexturePool.cpp (213146 => 213147)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/texmap/BitmapTexturePool.cpp        2017-02-28 10:10:48 UTC (rev 213146)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/texmap/BitmapTexturePool.cpp        2017-02-28 10:11:00 UTC (rev 213147)
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx"> RefPtr&lt;BitmapTexture&gt; BitmapTexturePool::createTexture(const BitmapTexture::Flags flags)
</span><span class="cx"> {
</span><span class="cx"> #if USE(TEXTURE_MAPPER_GL)
</span><del>-    return adoptRef(new BitmapTextureGL(m_context3D, flags));
</del><ins>+    return BitmapTextureGL::create(*m_context3D, flags);
</ins><span class="cx"> #else
</span><span class="cx">     return nullptr;
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit216SourceWebCoreplatformgraphicstexmapTextureMapperGLcpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp (213146 => 213147)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp        2017-02-28 10:10:48 UTC (rev 213146)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp        2017-02-28 10:11:00 UTC (rev 213147)
</span><span class="lines">@@ -748,8 +748,7 @@
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;BitmapTexture&gt; TextureMapperGL::createTexture()
</span><span class="cx"> {
</span><del>-    BitmapTextureGL* texture = new BitmapTextureGL(m_context3D);
-    return adoptRef(texture);
</del><ins>+    return BitmapTextureGL::create(*m_context3D);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> std::unique_ptr&lt;TextureMapper&gt; TextureMapper::platformCreateAccelerated()
</span></span></pre>
</div>
</div>

</body>
</html>