changeset 9883:3ec3b8e80b67

fix order of drawing objects with opengl renderer
author Shai Ayal <shaiay@users.sourceforge.net>
date Sat, 28 Nov 2009 15:35:32 -0500
parents 9ed5f64e3959
children fed4aad2cdca
files src/ChangeLog src/gl-render.h src/graphics.cc
diffstat 3 files changed, 11 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,11 @@
+2009-11-28  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* gl-render.h (opengl_renderer::draw): Draw children from end of
+	list to preserve correct stacking order (first child should be on
+	top).
+
+	* graphics.cc (maybe_set_children): Store sorted child lists.
+
 2009-11-27  Kacper Kowalik <xarthisius.kk@gmail.com>
 
 	* ls-hdf5.cc (have_h5giterate_bug): Drop this group iteration flag
--- a/src/gl-render.h
+++ b/src/gl-render.h
@@ -60,7 +60,7 @@
     {
       int len = hlist.length ();
 
-      for (int i = 0; i < len; i++)
+      for (int i = len-1; i >= 0; i--)
 	{
 	  graphics_handle h = gh_manager::lookup (hlist(i));
 
--- a/src/graphics.cc
+++ b/src/graphics.cc
@@ -1726,8 +1726,8 @@
 	  Matrix t1 = kids;
 	  Matrix t2 = new_kids;
 
-	  t1.sort ();
-	  t2.sort ();
+	  t1 = t1.sort ();
+	  t2 = t2.sort ();
 
 	  if (t1 != t2)
 	    ok = false;