在Android studio 中测试OpenGL es,app运行崩溃,然后查看日志,发现Error:
原因: 不能直接使用
FloatBuffer.wrap(float [] arr), IntBuffer.wrap(int [] arr)
解决办法:
public IntBuffer bufferUtil(int[] arr){
IntBuffer buffer;
ByteBuffer byteBuffer = ByteBuffer.allocateDirect(arr.length * 4);
byteBuffer.order(ByteOrder.nativeOrder());
buffer = byteBuffer.asIntBuffer();
buffer.put(arr);
buffer.position(0);
return buffer;
}
public FloatBuffer bufferUtil(float[] arr){
FloatBuffer buffer;
ByteBuffer byteBuffer = ByteBuffer.allocateDirect(arr.length * 4);
byteBuffer.order(ByteOrder.nativeOrder());
buffer = byteBuffer.asFloatBuffer();
buffer.put(arr);
buffer.position(0);
return buffer;
}
修改之后,运行成功。