summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--make/build.xml2
-rwxr-xr-xsrc/demos/es2/RedSquare.java7
-rw-r--r--src/redbook/src/glredbook1314/mvarray.java20
3 files changed, 17 insertions, 12 deletions
diff --git a/make/build.xml b/make/build.xml
index 6ff868d..f376fa4 100644
--- a/make/build.xml
+++ b/make/build.xml
@@ -73,7 +73,7 @@
<condition property="jogl.cg.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.cg.jar">
<isset property="jogl.cg"/>
</condition>
- <property name="gluegen-rt.jar" value="${gluegen.root}/build/gluegen-rt.jar" />
+ <property name="gluegen-rt.jar" value="${gluegen.root}/${rootrel.build}/gluegen-rt.jar" />
<property name="jogl.gles12.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.gles12.jar" />
<property name="jogl.gles12.dbg.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.gles12.dbg.jar" />
<property name="jogl.gles1.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.gles1.jar" />
diff --git a/src/demos/es2/RedSquare.java b/src/demos/es2/RedSquare.java
index 59dec30..2099fd0 100755
--- a/src/demos/es2/RedSquare.java
+++ b/src/demos/es2/RedSquare.java
@@ -197,6 +197,7 @@ public class RedSquare extends Thread implements WindowListener, KeyListener, Mo
System.err.println(Thread.currentThread()+" GL_EXTENSIONS:");
System.err.println(Thread.currentThread()+" " + gl.glGetString(gl.GL_EXTENSIONS));
System.err.println(Thread.currentThread()+" swapInterval: " + swapInterval + " (GL: "+gl.getSwapInterval()+")");
+ System.err.println(Thread.currentThread()+" isShaderCompilerAvailable: " + ShaderUtil.isShaderCompilerAvailable(gl));
if(debuggl) {
try {
@@ -257,6 +258,8 @@ public class RedSquare extends Thread implements WindowListener, KeyListener, Mo
}
public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {
+ if(null==st) return;
+
GL2ES2 gl = drawable.getGL().getGL2ES2();
st.glUseProgram(gl, true);
@@ -277,6 +280,8 @@ public class RedSquare extends Thread implements WindowListener, KeyListener, Mo
}
public void dispose(GLAutoDrawable drawable) {
+ if(null==st) return;
+
GL2ES2 gl = drawable.getGL().getGL2ES2();
System.out.println(Thread.currentThread()+" RedSquare.dispose: "+gl.getContext());
@@ -288,6 +293,8 @@ public class RedSquare extends Thread implements WindowListener, KeyListener, Mo
}
public void display(GLAutoDrawable drawable) {
+ if(null==st) return;
+
GL2ES2 gl = drawable.getGL().getGL2ES2();
st.glUseProgram(gl, true);
diff --git a/src/redbook/src/glredbook1314/mvarray.java b/src/redbook/src/glredbook1314/mvarray.java
index 0885d9e..b59ff13 100644
--- a/src/redbook/src/glredbook1314/mvarray.java
+++ b/src/redbook/src/glredbook1314/mvarray.java
@@ -10,6 +10,7 @@ import java.nio.IntBuffer;
import javax.media.opengl.*;
import javax.swing.JFrame;
+import com.jogamp.gluegen.runtime.PointerBuffer;
import com.jogamp.opengl.util.GLBuffers;
import javax.media.opengl.awt.GLJPanel;
import javax.media.opengl.glu.GLU;
@@ -48,19 +49,16 @@ public class mvarray //
private int count[] = { 7, 6 };
- private ByteBuffer indices[] = {//
- GLBuffers.newDirectByteBuffer(oneIndices.length),
- GLBuffers.newDirectByteBuffer(twoIndices.length) };
-
// static GLvoid * indices[2] = {oneIndices, twoIndices};
+ private PointerBuffer indices = PointerBuffer.allocateDirect(2);
+
{
vertexBuf.put(vertices);
- indices[0].put(oneIndices);
- indices[1].put(twoIndices);
-
vertexBuf.rewind();
- indices[0].rewind();
- indices[1].rewind();
+
+ indices.referenceBuffer(GLBuffers.newDirectByteBuffer(oneIndices));
+ indices.referenceBuffer(GLBuffers.newDirectByteBuffer(twoIndices));
+ indices.rewind();
}
private boolean mde_bug;
@@ -92,9 +90,9 @@ public class mvarray //
GL.GL_UNSIGNED_BYTE, indices, 2);
else {
// workaround for glMultiDrawElem bug before July
- for (int i = 0; i < indices.length; i++)
+ for (int i = 0; i < indices.capacity(); i++)
gl.glDrawElements(GL.GL_LINE_STRIP, count[i], //
- GL.GL_UNSIGNED_BYTE, indices[i]);
+ GL.GL_UNSIGNED_BYTE, (ByteBuffer)indices.getReferencedBuffer(i));
}
gl.glFlush();
}