gpt4 book ai didi

java - 为 ByteBuffer 分配创建一个辅助函数 android OpenGL ES

转载 作者:行者123 更新时间:2023-12-01 15:28:18 25 4
gpt4 key购买 nike

每次我需要执行以下操作时,为顶点、颜色、光照等分配ByteBuffer内存。

      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);
.......

所以我尝试制作一个类似这样的辅助函数。

   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);

}

但是没有成功。它给了我一个 java.lang.NullPointerException 指向源void draw(GL10 gl) 方法内的 gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertBuff);

最佳答案

您尝试使用 theBuff 作为输出参数,但 Java 没有这些。相反,返回bBuff

并且不需要传入size。 Java 中的 float 始终为 4 个字节。如果您不需要文字,请使用Float.SIZE/8(因为它是位数)。

关于java - 为 ByteBuffer 分配创建一个辅助函数 android OpenGL ES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9904622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com