异常:Must use a native order direct Buffer
java.lang.IllegalArgumentException: Must use a native order direct Buffer.
public Buffer intBuffer(int[] data){
IntBuffer intBuffer ;
ByteBuffer bbuffer = ByteBuffer.allocateDirect(data.length * 4); //int和float均占用4字节
bbuffer.order(ByteOrder.nativeOrder());
intBuffer = bbuffer.asIntBuffer();
intBuffer.put(data);
intBuffer.position(0);
return intBuffer ;
}
public Buffer bufferUtilf(float[] data){
FloatBuffer fBuffer ;
ByteBuffer bbuffer= ByteBuffer.allocateDirect(data.length * 4);
bbuffer.order(ByteOrder.nativeOrder());
fBuffer = bbuffer.asFloatBuffer();
fBuffer.put(data);
fBuffer.position(0);
return fBuffer;
}
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, floatBuffer(triangleData));
gl.glColorPointer(4, GL10.GL_FIXED, 0, intBuffer(triangleColor));
参见:http://hi.baidu.com/timestrider/item/b95574723f3603376dc37cee
分享到:
相关推荐
They carefully introduce OpenGL ES 3.0 features such as shadow mapping, instancing, multiple render targets, uniform buffer objects, texture compression, program binaries, and transform feedback. ...
在这个"openGLES3.0Example_8_Simple_VertexShader"示例中,我们将深入探讨如何利用OpenGL ES 3.0的顶点着色器来绘制一个紫色的三角形。顶点着色器是图形管线中的第一步,负责处理输入的顶点数据,包括位置、颜色、...
在Android平台上,NDK(Native Development Kit)允许开发者使用C和C++编写底层代码,而OpenGL ES则是一种用于渲染2D、3D图形的应用程序编程接口。本篇将详细讲解如何在Android NDK环境中利用C语言调用OpenGL ES来...
对于iOS和Android开发来说,使用OpenGLES2.0通常需要结合EAGL(Embedded Apple Graphics Library)或Android的SurfaceView来设置图形上下文,并通过JNI(Java Native Interface)或Swift的桥接调用来执行OpenGL ES的...
由于本篇文章是有关于Android 3D游戏开发技术的介绍,其中涉及到的知识点主要集中在使用OpenGL ES进行Android 3D游戏开发的相关技术和方法。OpenGL ES(Open GL for Embedded Systems)是一种针对移动设备和嵌入式...
After introducing Open GL ES, Pro OpenGL ES for Android explains the basics of 3D math and then orients you to the native Android 3D libraries you'll be using in your own 3D games and the solar ...
After introducing Open GL ES, Pro OpenGL ES for Android explains the basics of 3D math and then orients you to the native Android 3D libraries you'll be using in your own 3D games and the solar ...
Android平台通过JNI(Java Native Interface)来支持OpenGL ES,使得Java代码可以直接调用C/C++编写的图形库,从而提高性能和效率。 在"android opengl es app and jni"的主题中,主要涉及以下几个关键知识点: 1....
1. **OpenGL ES扩展概述**:OpenGL ES(OpenGLES)是OpenGL的嵌入式系统版本,专门用于手机、平板等移动设备。扩展提供了额外的功能和改进,以适应移动硬件的快速发展。 2. **GL_ANDROID扩展系列**: - **GL_...
在Android native绘图中,开发者通常会使用Android的图形库如Android Native Library (ANativeLibrary)、OpenGL ES或者 Vulkan来进行渲染。这些库允许开发者在内存中创建和操作图形缓冲区,然后通过NativeWindow接口...
10. **错误检查和调试**:使用glGetError函数检查OpenGL ES调用中的错误,以及使用Android的OpenGL ES Trace工具进行性能分析和问题定位。 通过这个示例代码压缩包,开发者可以学习到如何初始化OpenGL ES环境、创建...
本示例将详细讲解如何在Android的Native层调用EGL和OpenGL ES。 首先,要使用EGL,我们需要包含相应的头文件并链接相应的库。在C++代码中,通常会引入`EGL/egl.h`和`GLES2/gl2.h`,同时链接`libEGL`和`libGLESv2`库...
然而,对于3D图形的处理,通常会结合Java与OpenGL ES库,通过Java的JNI(Java Native Interface)来调用底层的图形API,实现高效的游戏渲染。 总之,《超级马里奥奥德赛》利用OpenGL ES 3.2的强大功能,为玩家呈现...
在Android中,我们通常通过Java或Kotlin与OpenGL ES进行交互,同时也可以使用C/C++通过JNI(Java Native Interface)来编写更高效的图形处理代码。 要实现在Android应用中使用OpenGL绘制摄像头画面,首先需要创建一...
FBO(Frame Buffer Object)是OpenGL的一个特性,它允许开发者在GPU上创建离屏渲染的目标。在这个场景中,NDK调用OpenGL与Camera2 API结合,实现了一个具有黑白滤镜的相机预览效果。 首先,我们来理解Camera2 API。...
在Android系统中,EGL(Embedded Graphics Library)是图形渲染的核心接口,它为OpenGL ES和其他图形库提供了与平台无关的接口。DRI2(Direct Rendering Infrastructure 2)是EGL在Linux内核上的一个实现,它允许GPU...
ANGELE是Android Native Graphics Library的缩写,是Google为了解决OpenGL ES在不同硬件上的兼容性问题而开发的项目。在Android系统中,ANGLE作为一层适配器,将OpenGL ES调用转换为对应平台的图形库,如Direct3D在...
### Android开发问题集锦第一期知识点详解 #### 一、Bitmap如何保存成为一个bmp文件 **问题背景**: 在Android开发过程中,Bitmap对象是用于处理图像的重要类。然而,开发者可能会遇到一个问题,即如何将Bitmap...
- `android.opengl`:用于3D图形开发,基于OpenGL/ES。 其中,Skia是一个开源的2D矢量图形处理库,它包含了字体处理、坐标变换等功能,能够提供高效的图形渲染性能。而在Android平台上,Skia结合OpenGL/ES及特定的...
`android.opengl`则用于3D图形开发,基于OpenGL/ES。 - **Skia**:这是一个开源的2D矢量图形处理库,具有高效能和简洁的特点。它包含了字体渲染、坐标变换等功能,并且与OpenGL/ES以及特定的硬件特性相结合,显著...