From 47745d8ade7238a188f7ab78eaf5e8a269d96fdd Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Tue, 27 Aug 2019 21:41:45 -0400
Subject: [PATCH] Smooth keys + box editor.

---
 CameraPane.java |  275 +++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 188 insertions(+), 87 deletions(-)

diff --git a/CameraPane.java b/CameraPane.java
index 68bd5e4..e039bde 100644
--- a/CameraPane.java
+++ b/CameraPane.java
@@ -8642,7 +8642,9 @@
             {
                 tex.bw = texturecache.texturedata.getWidth();
                 tex.bh = texturecache.texturedata.getHeight();
-                tex.bumpdata = CompressJPEG(CreateBim(((ByteBuffer)texturecache.texturedata.getBuffer()).array(), tex.bw, tex.bh), 0.5f);
+                tex.bumpdata = //CompressJPEG(CreateBim(
+                        ((ByteBuffer)texturecache.texturedata.getBuffer()).array();
+                        //, tex.bw, tex.bh), 0.5f);
             }
         }
     }
@@ -10813,6 +10815,83 @@
 
         if (DrawMode() == DEFAULT)
         {
+            if (manipCamera == lightCamera)
+            {
+//                    switch (e.getKeyCode())
+//                    {
+//                        case DOWN_ARROW:
+//                            lightCamera.DECAL /= 2;
+//                            repaint();
+//                            break;
+//                        case UP_ARROW:
+//                            lightCamera.DECAL *= 2;
+//                            repaint();
+//                            break;
+//                        case LEFT_ARROW:
+//                            lightCamera.SCALE /= 2;
+//                            repaint();
+//                            break;
+//                        case RIGHT_ARROW:
+//                            lightCamera.SCALE *= 2;
+//                            repaint();
+//                            break;
+//                        default:
+//                            break;
+                if (keys[DOWN_ARROW])
+                {
+                    lightCamera.DECAL /= 2;
+                }
+
+                if (keys[UP_ARROW])
+                {
+                    lightCamera.DECAL *= 2;
+                }
+
+                if (keys[LEFT_ARROW])
+                {
+                    lightCamera.SCALE /= 2;
+                }
+
+                if (keys[RIGHT_ARROW])
+                {
+                    lightCamera.SCALE *= 2;
+                }
+            }
+            else
+            {
+                //pingthread.mute = true;
+        
+                boolean keyon = false;
+                
+                if (keys[DOWN_ARROW])
+                {
+                    GoDown(modifiers);
+                    keyon = true;
+                }
+
+                if (keys[UP_ARROW])
+                {
+                    GoUp(modifiers);
+                    keyon = true;
+                }
+
+                if (keys[LEFT_ARROW])
+                {
+                    GoLeft(modifiers);
+                    keyon = true;
+                }
+
+                if (keys[RIGHT_ARROW])
+                {
+                    GoRight(modifiers);
+                    keyon = true;
+                }
+                
+                if (keyon)
+                    repaint();
+                //pingthread.mute = false;
+            }
+            
             currentlydrawing = true;
         }
 
@@ -11337,9 +11416,9 @@
 
             gl.glMatrixMode(GL.GL_MODELVIEW);
 
-gl.glEnable(gl.GL_POLYGON_SMOOTH);
-gl.glHint(gl.GL_POLYGON_SMOOTH_HINT, gl.GL_NICEST);
-gl.glEnable(gl.GL_MULTISAMPLE);
+//gl.glEnable(gl.GL_POLYGON_SMOOTH);
+//gl.glHint(gl.GL_POLYGON_SMOOTH_HINT, gl.GL_NICEST);
+//gl.glEnable(gl.GL_MULTISAMPLE);
         } else
         {
             //gl.glDisable(GL.GL_TEXTURE_2D);
@@ -14521,6 +14600,8 @@
     {
         boolean jump;
         
+        boolean mute;
+        
 //        void JumpToTarget()
 //        {
 //            StepToTarget(true);
@@ -14535,6 +14616,9 @@
         // only one thread!? synchronized
                 void StepToTarget(boolean jump)
         {
+            if (mute)
+                return;
+            
             tmp.set(targetLookAt);
             tmp.sub(manipCamera.lookAt); // june 2014
             
@@ -14828,6 +14912,9 @@
             mouseMode |= ROTATE;
         } // TRANSLATE;
 
+        //System.err.println("lookAt = " + manipCamera.lookAt);
+        //System.err.println("location = " + manipCamera.location);
+        
         targetLookAt.set(manipCamera.lookAt);
         
         prevX = X = anchorX - 10; // (int)(10*renderCamera.Distance());
@@ -15767,98 +15854,112 @@
         }
     }
 
+    boolean keys[] = new boolean[256];
+    int modifiers = 0;
+    
     public void processKeyEvent(KeyEvent e)
     {
         switch (e.getID())
         {
             case KeyEvent.KEY_PRESSED:
-                if (!autorepeat)
-                {
-                    //System.out.println("processKeyEvent: " + KeyEvent.getKeyText(e.getKeyCode()));
-                    keyPressed(e.getKeyChar(), e.getModifiersEx());
-                }
-                if (manipCamera == lightCamera)
-                {
-                    switch (e.getKeyCode())
-                    {
-                        case DOWN_ARROW:
-                            lightCamera.DECAL /= 2;
-                            repaint();
-                            break;
-                        case UP_ARROW:
-                            lightCamera.DECAL *= 2;
-                            repaint();
-                            break;
-                        case LEFT_ARROW:
-                            lightCamera.SCALE /= 2;
-                            repaint();
-                            break;
-                        case RIGHT_ARROW:
-                            lightCamera.SCALE *= 2;
-                            repaint();
-                            break;
-                        default:
-                            break;
-                    }
-                    
-                    System.out.println("DECAL = " + lightCamera.DECAL + "; SCALE = " + lightCamera.SCALE);
-                } else
-                {
-                    if (true) // !autorepeat)
-                    {
-                        boolean reset = true;
-
-                        switch (e.getKeyCode())
-                        {
-                            case DOWN_ARROW:
-                                GoDown(e.getModifiersEx());
-                                repaint();
-                                break;
-                            case UP_ARROW:
-                                GoUp(e.getModifiersEx());
-                                repaint();
-                                break;
-                            case LEFT_ARROW:
-                                GoLeft(e.getModifiersEx());
-                                repaint();
-                                break;
-                            case RIGHT_ARROW:
-                                GoRight(e.getModifiersEx());
-                                repaint();
-                                break;
-                            default:
-                                reset = false;
-                                break;
-                        }
-
-                        if (reset)
-                        {
-                            autorepeat = true;
-
-                            targetLookAt.set(manipCamera.lookAt);
-                        }
-                    }
-                }
+                keys[e.getKeyCode()] = true;
+                modifiers = e.getModifiersEx();
+                keyPressed(e.getKeyChar(), modifiers);
+                //Globals.theRenderer.keyPressed(e.getKeyChar());
+                repaint();
                 break;
-            case KeyEvent.KEY_TYPED:
-                break;
+//                if (!autorepeat)
+//                {
+//                    //System.out.println("processKeyEvent: " + KeyEvent.getKeyText(e.getKeyCode()));
+//                    keyPressed(e.getKeyChar(), e.getModifiersEx());
+//                }
+//                if (manipCamera == lightCamera)
+//                {
+//                    switch (e.getKeyCode())
+//                    {
+//                        case DOWN_ARROW:
+//                            lightCamera.DECAL /= 2;
+//                            repaint();
+//                            break;
+//                        case UP_ARROW:
+//                            lightCamera.DECAL *= 2;
+//                            repaint();
+//                            break;
+//                        case LEFT_ARROW:
+//                            lightCamera.SCALE /= 2;
+//                            repaint();
+//                            break;
+//                        case RIGHT_ARROW:
+//                            lightCamera.SCALE *= 2;
+//                            repaint();
+//                            break;
+//                        default:
+//                            break;
+//                    }
+//                    
+//                    System.out.println("DECAL = " + lightCamera.DECAL + "; SCALE = " + lightCamera.SCALE);
+//                } else
+//                {
+//                    if (true) // !autorepeat)
+//                    {
+//                        boolean reset = true;
+//
+//                        switch (e.getKeyCode())
+//                        {
+//                            case DOWN_ARROW:
+//                                GoDown(e.getModifiersEx());
+//                                repaint();
+//                                break;
+//                            case UP_ARROW:
+//                                GoUp(e.getModifiersEx());
+//                                repaint();
+//                                break;
+//                            case LEFT_ARROW:
+//                                GoLeft(e.getModifiersEx());
+//                                repaint();
+//                                break;
+//                            case RIGHT_ARROW:
+//                                GoRight(e.getModifiersEx());
+//                                repaint();
+//                                break;
+//                            default:
+//                                reset = false;
+//                                break;
+//                        }
+//
+//                        if (reset)
+//                        {
+//                            autorepeat = true;
+//
+//                            targetLookAt.set(manipCamera.lookAt);
+//                        }
+//                    }
+//                }
+//                break;
+//            case KeyEvent.KEY_TYPED:
+//                break;
             case KeyEvent.KEY_RELEASED:
-            {
-                switch (e.getKeyCode())
-                {
-                    case DOWN_ARROW:
-                    case UP_ARROW:
-                    case LEFT_ARROW:
-                    case RIGHT_ARROW:
-                        MODIFIERS &= ~COMMAND;
-                        autorepeat = false;
-                        break;
-                    default:
-                        break;
-                }
+                keys[e.getKeyCode()] = false;
+                modifiers = e.getModifiersEx();
                 keyReleased(e.getKeyChar(), e.getModifiersEx());
+                repaint();
                 break;
-            }
+//            {
+//                switch (e.getKeyCode())
+//                {
+//                    case DOWN_ARROW:
+//                    case UP_ARROW:
+//                    case LEFT_ARROW:
+//                    case RIGHT_ARROW:
+//                        MODIFIERS &= ~COMMAND;
+//                        autorepeat = false;
+//                        break;
+//                    default:
+//                        break;
+//                }
+//                keyReleased(e.getKeyChar(), e.getModifiersEx());
+//                break;
+//            }
             default:
                 break;
         }

--
Gitblit v1.6.2