Add a great amount of verbose debugging
authorbkuker <bkuker@180e2498-e6e9-4542-8430-84ac67f01cd8>
Thu, 9 Aug 2012 18:02:25 +0000 (18:02 +0000)
committerbkuker <bkuker@180e2498-e6e9-4542-8430-84ac67f01cd8>
Thu, 9 Aug 2012 18:02:25 +0000 (18:02 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@964 180e2498-e6e9-4542-8430-84ac67f01cd8

core/src/net/sf/openrocket/gui/figure3d/RocketFigure3d.java

index 3402f361c84e34855a45df45a78dff0271886481..3e3a98c49ecaf418c8167686969980b9e5a503cb 100644 (file)
@@ -87,9 +87,15 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
                this.configuration = config;\r
                this.setLayout(new BorderLayout());\r
 \r
+               /**\r
+                * This achieves late GL initialization, so that if there is a crash\r
+                * it does not occur until user selects 3D view, so as to not render\r
+                * the application unusable.\r
+                */\r
                addHierarchyListener(new HierarchyListener() {\r
                        @Override\r
                        public void hierarchyChanged(HierarchyEvent e) {\r
+                               log.verbose("GL - Calling initGLCanvas on hierarchy change");\r
                                initGLCanvas();\r
                                RocketFigure3d.this.removeHierarchyListener(this);\r
                        }\r
@@ -100,19 +106,35 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
                log.debug("Initializing RocketFigure3D OpenGL Canvas");\r
                try {\r
                        log.debug("Setting up GL capabilities...");\r
+                       \r
+                       log.verbose("GL - Getting Default Profile");\r
                        GLProfile glp = GLProfile.getDefault();\r
+                       \r
+                       log.verbose("GL - creating GLCapabilities");\r
                        GLCapabilities caps = new GLCapabilities(glp);\r
+                       \r
+                       log.verbose("GL - setSampleBuffers");\r
                        caps.setSampleBuffers(true);\r
+                       \r
+                       log.verbose("GL - setNumSamples");\r
                        caps.setNumSamples(6);\r
+                       \r
+                       log.verbose("GL - setStencilBits");\r
                        caps.setStencilBits(1);\r
 \r
-                       log.debug("Creating OpenGL Canvas");\r
+                       log.verbose("GL - Creating Canvas");\r
                        canvas = new GLCanvas(caps);\r
 \r
+                       log.verbose("GL - Registering as GLEventListener on canvas");\r
                        canvas.addGLEventListener(this);\r
+                       \r
+                       log.verbose("GL - Adding canvas to this JPanel");\r
                        this.add(canvas, BorderLayout.CENTER);\r
 \r
+                       log.verbose("GL - Setting up mouse listeners");\r
                        setupMouseListeners();\r
+                       \r
+                       log.verbose("GL - Rasterizine Carets"); //reticulating splines?\r
                        rasterizeCarets();\r
                        \r
                } catch (Throwable t) {\r
@@ -346,10 +368,12 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
 \r
        @Override\r
        public void dispose(GLAutoDrawable drawable) {\r
+               log.verbose("GL - dispose() called");\r
        }\r
 \r
        @Override\r
        public void init(GLAutoDrawable drawable) {\r
+               log.verbose("GL - init() called");\r
                rr.init(drawable);\r
 \r
                GL2 gl = drawable.getGL().getGL2();\r
@@ -374,10 +398,13 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
 \r
                extrasOverlay = new Overlay(drawable);\r
                caretOverlay = new Overlay(drawable);\r
+               \r
+               log.verbose("GL - init() complete");\r
        }\r
 \r
        @Override\r
        public void reshape(GLAutoDrawable drawable, int x, int y, int w, int h) {\r
+               log.verbose("GL - reshape() called");\r
                GL2 gl = drawable.getGL().getGL2();\r
                GLU glu = new GLU();\r
 \r
@@ -390,6 +417,7 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
                gl.glMatrixMode(GLMatrixFunc.GL_MODELVIEW);\r
                \r
                redrawExtras = true;\r
+               log.verbose("GL - reshape() complete");\r
        }\r
 \r
        @SuppressWarnings("unused")\r
@@ -428,6 +456,7 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
        }\r
 \r
        private void setupView(GL2 gl, GLU glu) {\r
+               log.verbose("GL - setupView() called");\r
                gl.glLoadIdentity();\r
 \r
                gl.glLightfv(GLLightingFunc.GL_LIGHT1, GLLightingFunc.GL_POSITION,\r
@@ -463,6 +492,8 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
                gl.glScaled(-1,1,1);\r
                gl.glTranslated(-1,0,0);\r
                gl.glMatrixMode(GLMatrixFunc.GL_MODELVIEW);\r
+               \r
+               log.verbose("GL - setupView() complete");\r
        }\r
 \r
        /**\r
@@ -475,15 +506,19 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
        }\r
 \r
        private void internalRepaint(){\r
+               log.verbose("GL - internalRepaint() called");\r
                super.repaint();\r
                if (canvas != null)\r
                        canvas.display();\r
+               log.verbose("GL - internalRepaint() complete");\r
        }\r
        \r
        @Override\r
        public void repaint() {\r
+               log.verbose("GL - repaint() called");\r
                redrawExtras = true;\r
                internalRepaint();\r
+               log.verbose("GL - repaint() complete");\r
        }\r
 \r
        private Set<RocketComponent> selection = new HashSet<RocketComponent>();\r
@@ -514,6 +549,7 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
        // ///////////// Extra methods\r
 \r
        private Coordinate project(Coordinate c, GL2 gl, GLU glu) {\r
+               log.verbose("GL - project() called");\r
                double[] mvmatrix = new double[16];\r
                double[] projmatrix = new double[16];\r
                int[] viewport = new int[4];\r
@@ -525,8 +561,10 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
                double out[] = new double[4];\r
                glu.gluProject(c.x, c.y, c.z, mvmatrix, 0, projmatrix, 0, viewport, 0,\r
                                out, 0);\r
-\r
+               \r
+               log.verbose("GL - peoject() complete");\r
                return new Coordinate(out[0], out[1], out[2]);\r
+               \r
        }\r
 \r
        private Coordinate cp = new Coordinate(0, 0, 0);\r