diff scripts/plot/draw/patch.m @ 18802:75f8926deef1

Fix Z-order stacking of patches and axes grid lines (bug #40722). * gl-render.h (set_polygon_offset): Change function prototype for offset argument to float. * gl-render.cc (set_polygon_offset): Change offset argument to type float. Now matches OpenGL prototype for glPolygonOffset. * gl-render.cc (patch_tesselator::patch_tesselator): Change constructor variable idx to a float, from int. * gl-render.cc (patch_tesselator::begin): Pass index directly to set_polygon_offset. * gl-render.cc (opengl_renderer::draw_patch): Call patch_tesselator with index of 1.0 for filled portion of patch to push it down below outline of patch. * patch.m: For 2-D patches, set zlim to [-1,1] so that axes 'layer' property works.
author Rik <rik@octave.org>
date Sat, 17 May 2014 12:56:11 -0700
parents d63878346099
children 87c3848cf3c0
line wrap: on
line diff
--- a/scripts/plot/draw/patch.m	Fri May 16 08:20:11 2014 -0700
+++ b/scripts/plot/draw/patch.m	Sat May 17 12:56:11 2014 -0700
@@ -88,6 +88,15 @@
     print_usage ();
   endif
 
+  ## FIXME: This is a hack to get 'layer' command to work for 2D patches
+  ##        Alternative is much more complicated surgery in graphics.cc.
+  ##        of get_children_limits() for 'z' axis and 'patch' object type.
+  if (! ishold ())
+    if (isempty (get (htmp, "zdata")))
+      set (hax, "zlim", [-1 1]);
+    endif
+  endif
+
   if (nargout > 0)
     h = htmp;
   endif