From ecc1309a04b527c62ffe97e814daf050dbd025cd Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Sat, 17 Aug 2019 04:13:32 -0400
Subject: [PATCH] Skin shader + material panel fix.

---
 ObjEditor.java   |   17 ++++++++++++++++-
 CameraPane.java  |   17 +++++++++++++----
 GroupEditor.java |    2 ++
 3 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/CameraPane.java b/CameraPane.java
index 8acf68e..3c3d2d0 100644
--- a/CameraPane.java
+++ b/CameraPane.java
@@ -168,7 +168,7 @@
 
     
     // OPTIONS
-    boolean Skinshader = true;
+    boolean Skinshader = false; // true;
     boolean cameraLight = false;
     boolean UVdebug = false;
     boolean Udebug = false;
@@ -10690,9 +10690,18 @@
     static boolean init = false;
     
     double[][] matrix = LA.newMatrix();
+    
+    // This is to refresh the UI of the material panel.
+    ObjEditor patchMaterial;
 
     public void display(GLAutoDrawable drawable)
     {
+        if (patchMaterial.patchMaterial)
+        {
+            patchMaterial.patchMaterial = false;
+            patchMaterial.objectPanel.setSelectedIndex(0);
+        }
+        
         if (Grafreed.savesound && Grafreed.hassound)
         {
             Grafreed.wav.save();
@@ -15282,8 +15291,8 @@
             case 'K':
                 KOMPACTTEXTURE ^= true;
                 //textures.clear();
-                break;
-            case 'P': // Texture Projection macros
+            //    break;
+            //case 'P': // Texture Projection macros
 //                SAVETEXTURE ^= true;
                 macromode = true;
                 Udebug = Vdebug = NORMALdebug = false; programInitialized = false;
@@ -15404,7 +15413,7 @@
                 targetLookAt.set(manipCamera.lookAt);
                 repaint();
                 break;
-            case 'p':
+            case 'P': // p':
        // c'est quoi ca au juste?         spherical ^= true;
                 Skinshader ^= true; programInitialized = false; 
                 repaint();
diff --git a/GroupEditor.java b/GroupEditor.java
index b81fe93..09250cb 100644
--- a/GroupEditor.java
+++ b/GroupEditor.java
@@ -1259,6 +1259,8 @@
                 
                 CreateTexturePanel(textures);
                 
+                resourcecontainer.setSelectedIndex((int)(Math.random() * resourcecontainer.getTabCount()));
+                
                 oe.toolboxPanel.add(textures);
                 
                 textures.preferredHeight = 100;
diff --git a/ObjEditor.java b/ObjEditor.java
index 16de211..2b68312 100644
--- a/ObjEditor.java
+++ b/ObjEditor.java
@@ -426,6 +426,9 @@
 
     static java.util.Vector<Object3D> listUI = new java.util.Vector<Object3D>();
 
+    // This is to refresh the UI of the material panel.
+    boolean patchMaterial;
+    
     void SetupMenu()
     {
         frame.setMenuBar(menuBar = new MenuBar());
@@ -1689,6 +1692,10 @@
         objectPanel.setIconAt(4, GetIcon("icons/XYZ.png"));
         objectPanel.setToolTipTextAt(4, "XYZ/RGB transform");
         
+        patchMaterial = true;
+        cameraView.patchMaterial = this;
+        objectPanel.setSelectedIndex(1);
+                
         /*
         aConstraints.gridx = 0;
         aConstraints.gridwidth = 1;
@@ -1886,7 +1893,15 @@
                 
                 // Skin
                 colorField.setFloat(material.color);
-                saturationField.setFloat(material.modulation);
+                float saturation = material.modulation;
+                
+                if (!cameraView.Skinshader)
+                {
+                    saturation /= 1.5;
+                }
+                
+                saturationField.setFloat(saturation);
+                
                 subsurfaceField.setFloat(material.subsurface);
                 selfshadowField.setFloat(material.diffuseness);
                 diffusenessField.setFloat(material.factor);

--
Gitblit v1.6.2