第一例子就遇到问题了!!
问题描述:
直接生成intBuffer:
结果就报错:
java.lang.IllegalArgumentException: Must use a native order direct Buffer
解决方案:
1、直接弄一个nativeorder
类似于这样的:
/正方体顶点缓存
这样是可以的。
2、问题出现在sdk版本上
改成3就ok了。
问题描述:
直接生成intBuffer:
int one = 0x10000;
// 三角形的3个顶点
private IntBuffer triggerBuffer = IntBuffer.wrap(new int[]
{ 0, one, 0, // 上顶点
-one, -one, 0, // 左下顶点
one, -one, 0, }); // 右下顶点
结果就报错:
java.lang.IllegalArgumentException: Must use a native order direct Buffer
解决方案:
1、直接弄一个nativeorder
类似于这样的:
/正方体顶点缓存
ByteBuffer qbb = ByteBuffer.allocateDirect(quater.length * 4);
qbb.order(ByteOrder.nativeOrder());
quaterBuffer = qbb.asIntBuffer();
quaterBuffer.put(quater);
quaterBuffer.position(0);
//正方体颜色缓存
ByteBuffer quacbb = ByteBuffer.allocateDirect(quaColors.length * 4);
quacbb.order(ByteOrder.nativeOrder());
quaColorBuffer = quacbb.asIntBuffer();
quaColorBuffer.put(quaColors);
quaColorBuffer.position(0);
这样是可以的。
2、问题出现在sdk版本上
<uses-sdk android:minSdkVersion="3" />
改成3就ok了。