首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android 3d 有关问题汇总1

2012-08-24 
android 3d 问题汇总1第一例子就遇到问题了!!问题描述:直接生成intBuffer:int one 0x10000// 三角形的3

android 3d 问题汇总1
第一例子就遇到问题了!!

问题描述:

直接生成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了。       

热点排行