Wire in prefs dialog to Preferences and RocketFigure3d

This commit is contained in:
bkuker 2013-09-24 13:12:14 -04:00
parent d16d1c4a13
commit 321761cf0f
3 changed files with 26 additions and 12 deletions

View File

@ -580,35 +580,34 @@ public class PreferencesDialog extends JDialog {
trans.get("pref.dlg.lbl.effect1"), -2, Style.ITALIC),
"spanx, wrap");
BooleanModel enableGLModel = new BooleanModel(true);//TODO
BooleanModel enableGLModel = new BooleanModel(preferences.getBoolean(Preferences.OPENGL_ENABLED, true));
final JCheckBox enableGL = new JCheckBox(enableGLModel);
enableGL.setText("Enable 3D Graphics"); //TODO Translation
enableGL.setSelected(true); //TODO
enableGL.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//TODO
preferences.putBoolean(Preferences.OPENGL_ENABLED, enableGL.isSelected());
}
});
panel.add(enableGL, "wrap");
final JCheckBox enableAA = new JCheckBox("Enable Antialiasing"); //TODO Translation
enableAA.setSelected(true); //TODO
enableAA.setSelected(preferences.getBoolean(Preferences.OPENGL_ENABLE_AA, true));
enableAA.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//TODO
preferences.putBoolean(Preferences.OPENGL_ENABLE_AA, enableAA.isSelected());
}
});
enableGLModel.addEnableComponent(enableAA);
panel.add(enableAA, "wrap");
final JCheckBox useFBO = new JCheckBox("Use Offscreen Rendering"); //TODO Translation
useFBO.setSelected(false); //TODO
useFBO.setSelected(preferences.getBoolean(Preferences.OPENGL_USE_FBO, false));
useFBO.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//TODO
preferences.putBoolean(Preferences.OPENGL_USE_FBO, useFBO.isSelected());
}
});
enableGLModel.addEnableComponent(useFBO);

View File

@ -41,6 +41,8 @@ import net.sf.openrocket.gui.figureelements.FigureElement;
import net.sf.openrocket.gui.main.Splash;
import net.sf.openrocket.rocketcomponent.Configuration;
import net.sf.openrocket.rocketcomponent.RocketComponent;
import net.sf.openrocket.startup.Application;
import net.sf.openrocket.startup.Preferences;
import net.sf.openrocket.util.Coordinate;
import net.sf.openrocket.util.MathUtil;
@ -125,7 +127,11 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
* @return
*/
public static boolean is3dEnabled() {
return System.getProperty("openrocket.3d.disable") == null;
//Allow disable by command line, if program won't even start
if (System.getProperty("openrocket.3d.disable") != null)
return false;
//return by preference
return Application.getPreferences().getBoolean(Preferences.OPENGL_ENABLED, true);
}
private void initGLCanvas() {
@ -139,18 +145,22 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
log.trace("GL - creating GLCapabilities");
final GLCapabilities caps = new GLCapabilities(glp);
if (true) {
if (Application.getPreferences().getBoolean(Preferences.OPENGL_ENABLE_AA, true)) {
log.trace("GL - setSampleBuffers");
caps.setSampleBuffers(true);
log.trace("GL - setNumSamples");
caps.setNumSamples(6);
log.trace("GL - Creating GLCanvas");
canvas = new GLCanvas(caps);
} else {
log.trace("GL - Not enabling AA by user pref");
}
if (Application.getPreferences().getBoolean(Preferences.OPENGL_USE_FBO, false)) {
log.trace("GL - Creating GLJPanel");
canvas = new GLJPanel(caps);
} else {
log.trace("GL - Creating GLCanvas");
canvas = new GLCanvas(caps);
}
log.trace("GL - Registering as GLEventListener on canvas");

View File

@ -50,6 +50,11 @@ public abstract class Preferences {
public static final String PREFERRED_THRUST_CURVE_MOTOR_NODE = "preferredThrustCurveMotors";
private static final String AUTO_OPEN_LAST_DESIGN = "AUTO_OPEN_LAST_DESIGN";
//Preferences related to 3D graphics
public static final String OPENGL_ENABLED = "OpenGL_Is_Enabled";
public static final String OPENGL_ENABLE_AA = "OpenGL_Antialiasing_Is_Enabled";
public static final String OPENGL_USE_FBO = "OpenGL_Use_FBO";
/*
* ******************************************************************************************
*