From 8768a855af9ccc482a9520ce708ef32e0e6e0e7d Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Fri, 04 Oct 2019 20:06:36 -0400
Subject: [PATCH] Block multiple download.

---
 Composite.java |  111 ++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 72 insertions(+), 39 deletions(-)

diff --git a/Composite.java b/Composite.java
index 6156d60..32ee24c 100644
--- a/Composite.java
+++ b/Composite.java
@@ -160,36 +160,37 @@
 //        //Touch();
 //    }
     
-    public void clear()
-    {
-        if (blockloop)
-        {
-            //blockloop = false;
-            return;
-        }
-
-        blockloop = true;
-        //Applet3D.tracein("Clear", this);
-        for (int i = 0; i < Children().size(); i++)
-        {
-            Object3D obj = (Object3D) Children().get(i); // reserve(i);
-            
-            //if (!obj.ReadOnly()) // Object3D Serial...
-            if (!(obj instanceof Composite) || !((Composite) obj).ReadOnly())
-            {
-                obj.clear();
-                //Children().release(i);
-                Children().remove(i);
-                --i;
-            } else
-            {
-                //Children().release(i);
-            }
-        }
-        //Applet3D.traceout("Clear", this);
-
-        blockloop = false;
-    }
+    // JUNE 2019??? That cannot work...
+//    public void clear()
+//    {
+//        if (blockloop)
+//        {
+//            //blockloop = false;
+//            return;
+//        }
+//
+//        blockloop = true;
+//        //Applet3D.tracein("Clear", this);
+//        for (int i = 0; i < Children().size(); i++)
+//        {
+//            Object3D obj = (Object3D) Children().get(i); // reserve(i);
+//            
+//            //if (!obj.ReadOnly()) // Object3D Serial...
+//            if (!(obj instanceof Composite) || !((Composite) obj).ReadOnly())
+//            {
+//                obj.clear();
+//                //Children().release(i);
+//                Children().remove(i);
+//                --i;
+//            } else
+//            {
+//                //Children().release(i);
+//            }
+//        }
+//        //Applet3D.traceout("Clear", this);
+//
+//        blockloop = false;
+//    }
 
     boolean ReadOnly()
     {
@@ -205,6 +206,7 @@
 
     boolean HasLoops()
     {
+                new Exception().printStackTrace();
         System.exit(0);
         if (blockloop)
         {
@@ -277,11 +279,15 @@
 
         Composite compo = new Composite();
 
-        super.deepCopySelf(compo);
+        super.deepCopyNode(compo);
+        
+        compo.count = 2;
         
         for (int i = 0; i < Children().size(); i++)
         {
             Object3D obj = (Object3D) Children().reserve(i);
+            if (obj == null)
+                continue;
             compo.addChild(obj.copyExpand());
             Children().release(i);
         }
@@ -291,9 +297,9 @@
         return compo;
     }
 
-    protected void deepCopySelf(Object3D other)
+    protected void deepCopyNode(Object3D other)
     {
-        super.deepCopySelf(other);
+        super.deepCopyNode(other);
         
         if (false)
         {
@@ -348,6 +354,7 @@
         
     void getBounds0(cVector minima, cVector maxima, boolean xform)
     {
+                new Exception().printStackTrace();
         System.exit(0);
         minima.x = minima.y = minima.z = 1E10;
         maxima.x = maxima.y = maxima.z = -1E10;
@@ -398,7 +405,6 @@
         {
             child = (Object3D) e.nextElement();
         }
-
     }
 
     void createEditWindow(GroupEditor callee, boolean newWindow) //, boolean root)
@@ -787,6 +793,8 @@
 
     void draw(ClickInfo info, int level, boolean select)
     {
+        new Exception().printStackTrace();
+        
         ClickInfo newInfo = new ClickInfo();
         newInfo.flags = info.flags;
         newInfo.bounds = info.bounds;
@@ -837,7 +845,7 @@
         }
 
         if ((//display.drawMode == CameraPane.SHADOW ||
-                display.DrawMode() == CameraPane.SELECTION || CameraPane.DEBUG_SELECTION) &&
+                display.DrawMode() == CameraPane.SELECTION || display.IsDebugSelection()) &&
                 //HasTransparency())
         // SERIAL PATCH
 //        if (viewCode == -1)
@@ -855,7 +863,7 @@
 
     cTexture tex = null;
 
-    boolean selectmode = display.DrawMode() == display.SELECTION || CameraPane.DEBUG_SELECTION;
+    boolean selectmode = display.DrawMode() == display.SELECTION || display.IsDebugSelection();
         
     if (//display.drawMode != display.SHADOW &&
             !selectmode // display.drawMode != display.SELECTION
@@ -864,8 +872,29 @@
         tex = GetTextures();
     }
 
-    display.BindTextures(tex, texres);
+    boolean failedPigment = false;
+    boolean failedBump = false;
     
+    try
+    {
+        display.BindPigmentTexture(tex, texres);
+    }
+    catch (Exception e)
+    {
+    //    System.err.println("FAILED: " + this);
+        failedPigment = true;
+    }
+           
+    try
+    {
+        display.BindBumpTexture(tex, texres);
+    }
+    catch (Exception e)
+    {
+        //System.err.println("FAILED: " + this);
+        failedBump = true;
+    }
+               
         if (//true) // new NORMAND
             touched || softtouched)
         {
@@ -927,7 +956,11 @@
             }
         }
     
-    display.ReleaseTextures(tex);
+    if (!failedBump)
+        display.ReleaseBumpTexture(tex);
+    
+    if (!failedPigment)
+        display.ReleasePigmentTexture(tex);
     }
 
     void Reset0()
@@ -994,7 +1027,7 @@
 //        }
 //    }
 
-    void drawSelfOld(CameraPane display, Object3D /*Composite*/ root, boolean selected)
+    void drawSelfOld(iCameraPane display, Object3D /*Composite*/ root, boolean selected)
     {
 //        if (count <= 0) // || display.IsFreezed())
 //        {

--
Gitblit v1.6.2