android 3d 有关问题汇总1
android 3d 问题汇总1
第一例子就遇到问题了!!
问题描述:
直接生成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了。