Skip to content

Commit 1f2da3d

Browse files
committed
added gfx preference to enable debug/trace pipelines
1 parent 5ee628c commit 1f2da3d

5 files changed

Lines changed: 32 additions & 9 deletions

File tree

‎src/main/java/com/marginallyclever/convenience/helpers/OpenGLHelper.java‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import java.nio.FloatBuffer;
88
import java.nio.IntBuffer;
99
import java.util.ArrayList;
10-
import java.util.Arrays;
1110
import java.util.List;
1211

1312
/**
@@ -33,7 +32,8 @@ public static void checkGLError(GL3 gl3,org.slf4j.Logger logger) {
3332
logger.error("GL error {}: {}", err, glu.gluErrorString(err));
3433
if(!errorCodes.contains(err)) {
3534
errorCodes.add(err);
36-
logger.error("Stack trace: {}", Arrays.toString(Thread.currentThread().getStackTrace()));
35+
var error = new Exception("GL error %s: %s".formatted(err, glu.gluErrorString(err)));
36+
logger.error(error.getMessage(), error);
3737
}
3838
}
3939
}

‎src/main/java/com/marginallyclever/makelangelo/applicationsettings/GFXPreferences.java‎

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
* @author Dan Royer
1717
*/
1818
public class GFXPreferences {
19+
static private SelectBoolean activateDebugGL;
20+
static private SelectBoolean activateTraceGL;
1921
static private SelectBoolean showPenUp;
2022
static private SelectBoolean antialias;
2123
static private SelectBoolean speedOverQuality;
@@ -37,20 +39,28 @@ static protected void firePropertyChange(PropertyChangeEvent e) {
3739
}
3840
}
3941

40-
static private Preferences getMyNode() {
42+
/**
43+
* Get the preferences node for this class
44+
* @return Preferences node
45+
*/
46+
static private Preferences getPreferences() {
4147
return PreferencesHelper.getPreferenceNode(PreferencesHelper.MakelangeloPreferenceKey.GRAPHICS);
4248
}
4349

4450
static public SelectPanel buildPanel() {
45-
Preferences prefs = getMyNode();
51+
Preferences prefs = getPreferences();
4652

4753
SelectPanel panel = new SelectPanel();
54+
activateDebugGL = new SelectBoolean("debugGL",Translator.get("GFXPreferences.debugGL"),prefs.getBoolean("debug GL", prefs.getBoolean("debugGL",false)));
55+
activateTraceGL = new SelectBoolean("traceGL",Translator.get("GFXPreferences.traceGL"),prefs.getBoolean("trace GL", prefs.getBoolean("traceGL",false)));
4856
showPenUp = new SelectBoolean("penup",Translator.get("GFXPreferences.showPenUp"),prefs.getBoolean("show pen up", false));
4957
antialias = new SelectBoolean("antialias",Translator.get("GFXPreferences.antialias"),prefs.getBoolean("antialias", true));
5058
speedOverQuality = new SelectBoolean("SpeedVSQuality",Translator.get("GFXPreferences.speedVSQuality"),prefs.getBoolean("speed over quality", true));
5159
showAllWhileDrawing = new SelectBoolean("drawWhileRunning",Translator.get("GFXPreferences.showAllWhileDrawing"),prefs.getBoolean("Draw all while running", true));
5260
dragSpeed = new SelectSpinner("dragSpeed", Translator.get("GFXPreferences.dragSpeed"), 1, 5, prefs.getInt("dragSpeed", 1));
5361

62+
panel.add(activateDebugGL);
63+
panel.add(activateTraceGL);
5464
panel.add(showPenUp);
5565
panel.add(showAllWhileDrawing);
5666
panel.add(antialias);
@@ -68,7 +78,9 @@ static public SelectPanel buildPanel() {
6878
}
6979

7080
static public void save() {
71-
Preferences prefs = getMyNode();
81+
Preferences prefs = getPreferences();
82+
prefs.putBoolean("debug GL", activateDebugGL.isSelected());
83+
prefs.putBoolean("trace GL", activateTraceGL.isSelected());
7284
prefs.putBoolean("show pen up", showPenUp.isSelected());
7385
prefs.putBoolean("antialias", antialias.isSelected());
7486
prefs.putBoolean("speed over quality", speedOverQuality.isSelected());
@@ -77,14 +89,14 @@ static public void save() {
7789
}
7890

7991
static public boolean getShowPenUp() {
80-
Preferences prefs = getMyNode();
92+
Preferences prefs = getPreferences();
8193
return prefs.getBoolean("show pen up",false);
8294
}
8395

8496
static public void setShowPenUp(boolean state) {
8597
boolean old = getShowPenUp();
8698
if(old != state) {
87-
Preferences prefs = getMyNode();
99+
Preferences prefs = getPreferences();
88100
prefs.putBoolean("show pen up", state);
89101
firePropertyChange(new PropertyChangeEvent(prefs,"show pen up",old,state));
90102
}

‎src/main/java/com/marginallyclever/makelangelo/preview/OpenGLPanel.java‎

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ public class OpenGLPanel extends JPanel implements GLEventListener, MouseWheelLi
3131
private static final Logger logger = LoggerFactory.getLogger(OpenGLPanel.class);
3232

3333
// Use debug pipeline?
34-
private static final boolean DEBUG_GL_ON = false;
35-
private static final boolean TRACE_GL_ON = false;
34+
private static boolean DEBUG_GL_ON = true;
35+
private static boolean TRACE_GL_ON = true;
3636
private GLJPanel glCanvas;
3737
private int canvasWidth,canvasHeight;
3838

@@ -219,6 +219,13 @@ private void setTipXY() {
219219
public void init(GLAutoDrawable glAutoDrawable) {
220220
logger.debug("init");
221221
glAutoDrawable.getGL().getGL3();
222+
223+
Preferences prefs = PreferencesHelper.getPreferenceNode(PreferencesHelper.MakelangeloPreferenceKey.GRAPHICS);
224+
if(prefs != null) {
225+
DEBUG_GL_ON = prefs.getBoolean("debug GL", false);
226+
TRACE_GL_ON = prefs.getBoolean("trace GL", false);
227+
}
228+
222229
activatePipelines(glAutoDrawable);
223230

224231
var gl = glAutoDrawable.getGL().getGL3();

‎src/main/resources/messages.properties‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,12 @@ FlipV=Missing FlipV
9696
FontFace=Missing FontFace
9797
GFXPreferences.Title=Missing GFXPreferences.Title
9898
GFXPreferences.antialias=Missing GFXPreferences.antialias
99+
GFXPreferences.debugGL=Missing GFXPreferences.debugGL
99100
GFXPreferences.dragSpeed=Missing GFXPreferences.dragSpeed
100101
GFXPreferences.showAllWhileDrawing=Missing GFXPreferences.showAllWhileDrawing
101102
GFXPreferences.showPenUp=Missing GFXPreferences.showPenUp
102103
GFXPreferences.speedVSQuality=Missing GFXPreferences.speedVSQuality
104+
GFXPreferences.traceGL=Missing GFXPreferences.traceGL
103105
Generator.randomSeed=Missing Generator.randomSeed
104106
Generator_AnalogClock.name=Missing Generaltor_AnalogClock.name
105107
Generator_FlowField.fromEdge=Missing Generator_FlowField.fromEdge

‎src/main/resources/messages_en.properties‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,12 @@ FlipV=Flip vertical
9696
FontFace=Typeface
9797
GFXPreferences.Title=Graphics
9898
GFXPreferences.antialias=Antialias lines
99+
GFXPreferences.debugGL=Activate debug (requires restart)
99100
GFXPreferences.dragSpeed=camera travel speed
100101
GFXPreferences.showAllWhileDrawing=Show entire image while drawing
101102
GFXPreferences.showPenUp=Show travel moves
102103
GFXPreferences.speedVSQuality=Speed over quality
104+
GFXPreferences.traceGL=Activate tracing (requires restart)
103105
Generator.randomSeed=Random seed value
104106
Generator_AnalogClock.name=Analog clock
105107
Generator_FlowField.fromEdge=Continuous

0 commit comments

Comments
 (0)