Fix the order of init() calls to fix brightness problem on paint vs
texture. Clean up the setType method, but it is still not great.
This commit is contained in:
parent
9b96dabb16
commit
381cab468c
@ -396,7 +396,6 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
|
|||||||
@Override
|
@Override
|
||||||
public void init(final GLAutoDrawable drawable) {
|
public void init(final GLAutoDrawable drawable) {
|
||||||
log.verbose("GL - init()");
|
log.verbose("GL - init()");
|
||||||
rr.init(drawable);
|
|
||||||
|
|
||||||
final GL2 gl = drawable.getGL().getGL2();
|
final GL2 gl = drawable.getGL().getGL2();
|
||||||
gl.glClearDepth(1.0f); // clear z-buffer to the farthest
|
gl.glClearDepth(1.0f); // clear z-buffer to the farthest
|
||||||
@ -418,6 +417,8 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
|
|||||||
|
|
||||||
gl.glEnable(GLLightingFunc.GL_NORMALIZE);
|
gl.glEnable(GLLightingFunc.GL_NORMALIZE);
|
||||||
|
|
||||||
|
rr.init(drawable);
|
||||||
|
|
||||||
extrasOverlay = new Overlay(drawable);
|
extrasOverlay = new Overlay(drawable);
|
||||||
caretOverlay = new Overlay(drawable);
|
caretOverlay = new Overlay(drawable);
|
||||||
}
|
}
|
||||||
@ -650,30 +651,33 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
|
|||||||
// execute the runnable if the drawable isn't realized.
|
// execute the runnable if the drawable isn't realized.
|
||||||
// In order to trump this, we test if the canvas has not been realized and initialize
|
// In order to trump this, we test if the canvas has not been realized and initialize
|
||||||
// the renderer accordingly. There is certainly a better way to do this.
|
// the renderer accordingly. There is certainly a better way to do this.
|
||||||
if (!canvas.isRealized()) {
|
|
||||||
if (t == TYPE_FIGURE) {
|
final RocketRenderer newRR;
|
||||||
rr = new FigureRenderer();
|
|
||||||
} else if (t == TYPE_FINISHED) {
|
switch (t) {
|
||||||
rr = new RealisticRenderer(document);
|
case TYPE_FINISHED:
|
||||||
} else if (t == TYPE_UNFINISHED) {
|
newRR = new RealisticRenderer(document);
|
||||||
rr = new UnfinishedRenderer(document);
|
break;
|
||||||
}
|
case TYPE_UNFINISHED:
|
||||||
|
newRR = new UnfinishedRenderer(document);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
newRR = new FigureRenderer();
|
||||||
}
|
}
|
||||||
canvas.invoke(true, new GLRunnable() {
|
|
||||||
@Override
|
if (!canvas.isRealized()) {
|
||||||
public boolean run(GLAutoDrawable drawable) {
|
rr = newRR;
|
||||||
rr.dispose(drawable);
|
} else {
|
||||||
if (t == TYPE_FIGURE) {
|
canvas.invoke(true, new GLRunnable() {
|
||||||
rr = new FigureRenderer();
|
@Override
|
||||||
} else if (t == TYPE_FINISHED) {
|
public boolean run(GLAutoDrawable drawable) {
|
||||||
rr = new RealisticRenderer(document);
|
rr.dispose(drawable);
|
||||||
} else if (t == TYPE_UNFINISHED) {
|
rr = newRR;
|
||||||
rr = new UnfinishedRenderer(document);
|
newRR.init(drawable);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
rr.init(drawable);
|
});
|
||||||
return false;
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user