Android 如何使用NDK开发OPenGL ES

本文档详细介绍了如何在Android平台上利用NDK进行OpenGLES的开发,结合JNI技术,实现图形渲染。通过实例代码,展示了从创建Shader到处理浮点数,再到Java与C/C++交互的全过程。
摘要由CSDN通过智能技术生成
  Android SDK 提供了一套 OpenGL ES 接口,该接口是基于 Java 的,速度非常 慢,往往很难满足需要。写此文章的目的是为了使用Android 提供的NDK 工具来使用C/C++ 原生代码。因最近在研究Android OpenGL ES 部分,就以使用C++ 来书写opengles 代码, 然后通过JNI 提供给java调用。重要的是避免了调用Android SDK OpenGL ES 接口,是速度大大提高 。

   首先告知大家我使用的平台:(本文将省略如何安装Eclipse ,ADT,及如何配置Android sdk等..)
   Linux Fedora 12 ,Eclipse Helios版本,Android SDK 2.2,Android NDK r4(目前最新)

  安装NDK:  首先去官网下载Android NDK ,在此给提供一个免翻墙的网站:          http://androidappdocs.appspot.com/sdk/ndk/index.html ,并将其加压到任意目录(后文以#NDK 来代表解压目录)

      本文不会大多关注代码部分的讲解,我会将主要代码贴出,并在此文的提供给大家源码下载.文中有关于android.mk 代码的编写,可自行参考#NDK/doc/ANDROID-MK.TXT 文档。
 
     1,在Eclipse 下新建Android 项目 (名字:OpenGl_Jni  包:com.opengl.jni) 新建以下四个类
Activity 类 :

package com.opengl.jni;
import android.app.Activity;
import android.os.Bundle;
public class GLActivity extends Activity {
    /** Called when the activity is first created. */
private GLCanvas mCanvas;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mCanvas = new GLCanvas(getApplication());
        
        setContentView(mCanvas);
    }
...........................
}

GlCanvas 类继承GLSurfaceView类:

package com.opengl.jni;
public class GLCanvas extends GLSurfaceView {

private static final String TAG = "GLCanvas";
private static final boolean DEBUG = false;

public GLCanvas(Context context) {
super(context);
// TODO Auto-generated constructor stub
init(false, 0, 0);
}

public GLCanvas(Context context, boolean translucent, int depth, int stencil) {
super(context);
init(translucent, depth, stencil);
}
................
}

GLRenderer 类实现GLSurfaceView.Renderer 接口 :如下

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值