[mapguide-commits] r9829 - sandbox/jng/mvt_render_fixes/Common/Renderers

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Tue Feb 2 07:27:28 PST 2021


Author: jng
Date: 2021-02-02 07:27:28 -0800 (Tue, 02 Feb 2021)
New Revision: 9829

Modified:
   sandbox/jng/mvt_render_fixes/Common/Renderers/MVTRenderer.cpp
Log:
#2836: Remove geometry clipping code from the ProcessXXX renderer methods. This eliminates the tile border artifact we are experiencing in client applications like OpenLayers/QGIS. If we are meant to clip, we should probably do it at the Stylizer level by having our MVTRenderer return true for RequiresClipping() and find a way to let the renderer customize the clip extents.

Modified: sandbox/jng/mvt_render_fixes/Common/Renderers/MVTRenderer.cpp
===================================================================
--- sandbox/jng/mvt_render_fixes/Common/Renderers/MVTRenderer.cpp	2021-02-02 15:22:09 UTC (rev 9828)
+++ sandbox/jng/mvt_render_fixes/Common/Renderers/MVTRenderer.cpp	2021-02-02 15:27:28 UTC (rev 9829)
@@ -597,20 +597,6 @@
     auto workbuffer = lb->Optimize(m_drawingScale, m_pPool);
     std::unique_ptr<LineBuffer> spLB(workbuffer);
 
-    //Also clip the geometry to the extents if required as we do not want to encode
-    //"out of tile" coordinates
-    auto clipped = workbuffer->Clip(m_extents, LineBuffer::ctArea, m_pPool);
-    if (workbuffer != clipped)
-    {
-        if (spLB.get())
-        {
-            LineBufferPool::FreeLineBuffer(m_pPool, spLB.release());
-        }
-
-        workbuffer = clipped;
-        spLB.reset(workbuffer);
-    }
-
     if (workbuffer)
         m_impl->ProcessPolygon(m_activeFeature, workbuffer);
 
@@ -625,20 +611,6 @@
     auto workbuffer = lb->Optimize(m_drawingScale, m_pPool);
     std::unique_ptr<LineBuffer> spLB(workbuffer);
 
-    //Also clip the geometry to the extents if required as we do not want to encode
-    //"out of tile" coordinates
-    auto clipped = workbuffer->Clip(m_extents, LineBuffer::ctLine, m_pPool);
-    if (workbuffer != clipped)
-    {
-        if (spLB.get())
-        {
-            LineBufferPool::FreeLineBuffer(m_pPool, spLB.release());
-        }
-
-        workbuffer = clipped;
-        spLB.reset(workbuffer);
-    }
-
     if (workbuffer)
         m_impl->ProcessPolyline(m_activeFeature, workbuffer);
 
@@ -662,20 +634,6 @@
     auto workbuffer = lb->Optimize(m_drawingScale, m_pPool);
     std::unique_ptr<LineBuffer> spLB(workbuffer);
 
-    //Also clip the geometry to the extents if required as we do not want to encode
-    //"out of tile" coordinates
-    auto clipped = workbuffer->Clip(m_extents, LineBuffer::ctPoint, m_pPool);
-    if (workbuffer != clipped)
-    {
-        if (spLB.get())
-        {
-            LineBufferPool::FreeLineBuffer(m_pPool, spLB.release());
-        }
-
-        workbuffer = clipped;
-        spLB.reset(workbuffer);
-    }
-
     if (workbuffer)
         m_impl->ProcessMarker(m_activeFeature, workbuffer);
 



More information about the mapguide-commits mailing list