X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=core%2Fsrc%2Fnet%2Fsf%2Fopenrocket%2Fgui%2Ffigure3d%2FRocketFigure3d.java;fp=core%2Fsrc%2Fnet%2Fsf%2Fopenrocket%2Fgui%2Ffigure3d%2FRocketFigure3d.java;h=8df1e8508b84fc4cb7a9729751d1cf456af26afd;hb=8031b9cf51e0a7fc9d758adee5b59a19af404951;hp=3e3a98c49ecaf418c8167686969980b9e5a503cb;hpb=84d08ef1d4b74a8872e44d30d21a68c53030da1d;p=debian%2Fopenrocket diff --git a/core/src/net/sf/openrocket/gui/figure3d/RocketFigure3d.java b/core/src/net/sf/openrocket/gui/figure3d/RocketFigure3d.java index 3e3a98c4..8df1e850 100644 --- a/core/src/net/sf/openrocket/gui/figure3d/RocketFigure3d.java +++ b/core/src/net/sf/openrocket/gui/figure3d/RocketFigure3d.java @@ -6,8 +6,7 @@ import java.awt.Graphics2D; import java.awt.Point; import java.awt.Rectangle; import java.awt.RenderingHints; -import java.awt.event.HierarchyEvent; -import java.awt.event.HierarchyListener; +import java.awt.SplashScreen; import java.awt.event.MouseEvent; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; @@ -86,20 +85,25 @@ public class RocketFigure3d extends JPanel implements GLEventListener { public RocketFigure3d(Configuration config) { this.configuration = config; this.setLayout(new BorderLayout()); - - /** - * This achieves late GL initialization, so that if there is a crash - * it does not occur until user selects 3D view, so as to not render - * the application unusable. - */ - addHierarchyListener(new HierarchyListener() { - @Override - public void hierarchyChanged(HierarchyEvent e) { - log.verbose("GL - Calling initGLCanvas on hierarchy change"); - initGLCanvas(); - RocketFigure3d.this.removeHierarchyListener(this); - } - }); + + //Only initizlize GL if 3d is enabled. + if ( is3dEnabled() ){ + //Fixes a linux / X bug: Splash must be closed before GL Init + SplashScreen splash = SplashScreen.getSplashScreen(); + if ( splash != null ) + splash.close(); + + initGLCanvas(); + } + } + + /** + * Return true if 3d view is enabled. This may be toggled by the user at + * launch time. + * @return + */ + public static boolean is3dEnabled(){ + return System.getProperty("openrocket.3d.disable") == null; } private void initGLCanvas(){