Posted by
yaqiang on
Oct 07, 2019; 3:12pm
URL: https://forum.jogamp.org/glClipPlanef-not-work-in-Java-11-tp4040085p4040087.html
Thanks a lot for your detailed reply! The solution of using the double variant can solve the problem in my laptop with Java 11. I am in bussiness trip that can not test it in my desktop, but I believe it should be working too.
The revised code:
//Draw graphics
float s = 1.01f;
//gl.glClipPlanef(GL2.GL_CLIP_PLANE0, new float[]{1, 0, 0, s}, 0);
gl.glClipPlane(GL2.GL_CLIP_PLANE0, new double[]{1, 0, 0, s}, 0);
gl.glEnable(GL2.GL_CLIP_PLANE0);
//gl.glClipPlanef(GL2.GL_CLIP_PLANE1, new float[]{-1, 0, 0, s}, 0);
gl.glClipPlane(GL2.GL_CLIP_PLANE1, new double[]{-1, 0, 0, s}, 0);
gl.glEnable(GL2.GL_CLIP_PLANE1);
//gl.glClipPlanef(GL2.GL_CLIP_PLANE2, new float[]{0, -1, 0, s}, 0);
gl.glClipPlane(GL2.GL_CLIP_PLANE2, new double[]{0, -1, 0, s}, 0);
gl.glEnable(GL2.GL_CLIP_PLANE2);
//gl.glClipPlanef(GL2.GL_CLIP_PLANE3, new float[]{0, 1, 0, s}, 0);
gl.glClipPlane(GL2.GL_CLIP_PLANE3, new double[]{0, 1, 0, s}, 0);
gl.glEnable(GL2.GL_CLIP_PLANE3);
//gl.glClipPlanef(GL2.GL_CLIP_PLANE4, new float[]{0, 0, 1, s}, 0);
gl.glClipPlane(GL2.GL_CLIP_PLANE4, new double[]{0, 0, 1, s}, 0);
gl.glEnable(GL2.GL_CLIP_PLANE4);
//gl.glClipPlanef(GL2.GL_CLIP_PLANE5, new float[]{0, 0, -1, s}, 0);
gl.glClipPlane(GL2.GL_CLIP_PLANE5, new double[]{0, 0, -1, s}, 0);
gl.glEnable(GL2.GL_CLIP_PLANE5);
for (int m = 0; m < this.graphics.getNumGraphics(); m++) {
Graphic graphic = this.graphics.get(m);
drawGraphics(gl, graphic);
}
gl.glDisable(GL2.GL_CLIP_PLANE0);
gl.glDisable(GL2.GL_CLIP_PLANE1);
gl.glDisable(GL2.GL_CLIP_PLANE2);
gl.glDisable(GL2.GL_CLIP_PLANE3);
gl.glDisable(GL2.GL_CLIP_PLANE4);
gl.glDisable(GL2.GL_CLIP_PLANE5);
www.meteothink.org