IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> OpenGLES NDK 项目创建(一) -> 正文阅读

[移动开发]OpenGLES NDK 项目创建(一)

1.创建NKD项目

2.引入openglES 依赖

  • 修改CMakeLists.txt文件
target_link_libraries(android GLESv2) //新增android 和 GLESv2

3.具体的代码

  • 方法解释
setEGLContextClientVersion(2); //设置gles 的版本 
glClearColor(.1f,.4f,.6f,1.0f); //glClearColor只起到Set的作用,并不Clear任何  指定刷新颜色缓冲区时所用的颜色。所以,完成一个刷新过程是要 glClearColor(COLOR) 与 glClear(GL_COLOR_BUFFER_BIT) 配合使用
glViewport(0,0,width,height);//x,y 以像素为单位,指定了视口的左下角位置。   width,height 表示这个视口矩形的宽度和高度,根据窗口的实时变化重绘窗口。
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT);//表示要清除颜色缓冲以及深度缓冲和模板缓冲区
  • 创建 GlSurfaceViewRenderer
public class GlSurfaceViewRenderer implements GLSurfaceView.Renderer {

    @Override
    public void onSurfaceCreated(GL10 gl, EGLConfig config) {
        onSurfaceCreated();
    }

    @Override
    public void onSurfaceChanged(GL10 gl, int width, int height) {
        onSurfaceChanged(width,height);
    }

    @Override
    public void onDrawFrame(GL10 gl) {
        onDrawFrame();
    }

    public static native void onSurfaceCreated();
    public static native void onSurfaceChanged(int width,int height);
    public static native void onDrawFrame();
}
  • 修改MainActivity
public class MainActivity extends AppCompatActivity {

    // Used to load the 'native-lib' library on application startup.
    static {
        System.loadLibrary("native-lib");
    }

    private ActivityMainBinding binding;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        MGLSurfaceView mglSurfaceView = new MGLSurfaceView(this);
        setContentView(mglSurfaceView);

    }

    class MGLSurfaceView extends GLSurfaceView{

        private  GlSurfaceViewRenderer glSurfaceViewRenderer;
        public MGLSurfaceView(Context context) {
            super(context);
            setEGLContextClientVersion(2);
            glSurfaceViewRenderer = new GlSurfaceViewRenderer();
            setRenderer(glSurfaceViewRenderer);

        }
    }

    public native String stringFromJNI();
}
  • 创建Sence.cpp
#include <jni.h>
#include <string>
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#include <GLES2/gl2platform.h>

extern "C"
JNIEXPORT void JNICALL
Java_com_example_openglesdemo1_GlSurfaceViewRenderer_onSurfaceCreated(JNIEnv *env, jclass clazz) {

    glClearColor(.1f,.4f,.6f,1.0f);//glClearColor只起到Set的作用,并不Clear任何  指定刷新颜色缓冲区时所用的颜色。所以,完成一个刷新过程是要 glClearColor(COLOR) 与 glClear(GL_COLOR_BUFFER_BIT) 配合使用

}

extern "C"
JNIEXPORT void JNICALL
Java_com_example_openglesdemo1_GlSurfaceViewRenderer_onSurfaceChanged(JNIEnv *env, jclass clazz,
        jint width, jint height) {

    glViewport(0,0,width,height);//x,y 以像素为单位,指定了视口的左下角位置。   width,height 表示这个视口矩形的宽度和高度,根据窗口的实时变化重绘窗口。

}

extern "C"
JNIEXPORT void JNICALL
Java_com_example_openglesdemo1_GlSurfaceViewRenderer_onDrawFrame(JNIEnv *env, jclass clazz) {
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT);//表示要清除颜色缓冲以及深度缓冲和模板缓冲区
}

4.运行结果
在这里插入图片描述

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-27 11:27:30  更:2022-04-27 11:28:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 23:39:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码