Bug 12235 fixed: Matplot did not update on color_map change 83/10283/2
Calixte DENIZET [Wed, 23 Jan 2013 18:08:40 +0000 (19:08 +0100)]
Change-Id: Ice6321a5f75184db377184f186aa2eb33ad3f08a

scilab/CHANGES_5.4.X
scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/DrawerVisitor.java
scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/ScilabTextureManager.java

index 5800f49..470e21a 100644 (file)
@@ -298,6 +298,8 @@ Bug fixes
 
 * Bug #12232 fixed - There were several memleaks in various fillers.
 
+* Bug #12235 fixed - Matplot did not update on color_map change.
+
 
                     Changes between version 5.3.3 and 5.4.0
                     =======================================
index c92fb13..9cd8130 100644 (file)
@@ -837,6 +837,7 @@ public class DrawerVisitor implements Visitor, Drawer, GraphicView {
                     axesDrawer.disposeAll();
                     fecDrawer.updateAll();
                     colorMapTextureDataProvider.update();
+                    textureManager.disposeAll();
                 } else {
                     labelManager.update(id, property);
                     dataManager.update(id, property);
index a758d47..20a21d5 100644 (file)
@@ -24,13 +24,14 @@ import org.scilab.modules.renderer.JoGLView.util.OutOfMemoryException;
 import java.awt.Dimension;
 import java.nio.ByteBuffer;
 import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @author Pierre Lando
  */
 public class ScilabTextureManager {
 
-    private final HashMap<String, Texture> hashMap = new HashMap<String, Texture>();
+    private final Map<String, Texture> hashMap = new HashMap<String, Texture>();
     private final DrawerVisitor drawerVisitor;
     private final Canvas canvas;
 
@@ -65,6 +66,17 @@ public class ScilabTextureManager {
         }
     }
 
+    public void disposeAll() {
+        for (Map.Entry<String, Texture> entry : hashMap.entrySet()) {
+            Texture t = entry.getValue();
+            if (t != null) {
+                canvas.getTextureManager().dispose(t);
+            }
+        }
+
+        hashMap.clear();
+    }
+
     private class ScilabTextureDataProvider extends AbstractTextureDataProvider implements GraphicView {
         private final String identifier;
         private Dimension dimension;