Für die Zuweisung von ByteBuffer
Speicher für Scheitelpunkte, Farben, Beleuchtung usw. muss ich jedes Mal Folgendes tun.Erstellen einer Helferfunktion für die ByteBuffer-Zuweisung android OpenGL ES
ByteBuffer bBuff=ByteBuffer.allocateDirect(vertices.length*4);
bBuff.order(ByteOrder.nativeOrder());
vertBuff=bBuff.asFloatBuffer();
vertBuff.put(vertices);
vertBuff.position(0);
ByteBuffer bColorBuff=ByteBuffer.allocateDirect(colorVals.length*4);
bColorBuff.order(ByteOrder.nativeOrder());
colorBuff=bColorBuff.asFloatBuffer();
colorBuff.put(colorVals);
colorBuff.position(0);
.......
Also habe ich versucht, eine Hilfsfunktion so etwas zu machen.
private void fBFromFA(float array[], int size, FloatBuffer theBuff){
ByteBuffer bBuff=ByteBuffer.allocateDirect(array.length*size);
bBuff.order(ByteOrder.nativeOrder());
theBuff=bBuff.asFloatBuffer();
theBuff.put(array);
theBuff.position(0);
}
Aber es hat nicht funktioniert. es gab mir eine java.lang.NullPointerException
zeigt die Quelle auf gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertBuff);
innerhalb der void draw(GL10 gl)
Methode.