当前位置: 首页 > news >正文

OpenGLES系列demo之框架简介

        在上一篇文章中,简单介绍了openGL ES版的helloworld程序,给出了最简单的使用步骤。在接下来的openGLES系列文章中,主要想通过一些demo由浅入深地记录对openGL ES的学习和总结。而这些系列demo会基于一个基本框架基础来开发,因此本文主要是想先介绍这个基本框架。

        openGLES的开发可以完全在java层完成,调用其相关的一些接口和类。当然也可以在native层通过c++实现,更贴近openGLES本身。其实这两种都可以,基本没有性能上的优劣,相差不大。但是为了以后在openGLES的处理基础上,再加入其他音视频相关操作,所以本博主考虑在c++层去实现。因此框架的搭建会涉及到natvie层。

一、基本框架流程图

二、大致流程简介

1、MyGLSurfaceView

        简单自定义GLSurfaceView,继承GLSurfaceView。

        并在里面调用GLSurfaceView的setRenderer方法。绑定渲染实现。

 2、MyGLRender

        简单自定义一个 Render,实现GLSurfaceView.Renderer接口。

        跟之前的文章不同的是,由于我们要在c++层去做opengles相关操作,所以这里的绘制等回调接口都不直接做事情,而是调用到c++层那边的一些接口。

public class MyGLRender implements GLSurfaceView.Renderer {private static final String TAG = "MyGLRender";private MyNativeRender mNativeRender;private int mSampleType;MyGLRender() {mNativeRender = new MyNativeRender();}@Overridepublic void onSurfaceCreated(GL10 gl, EGLConfig config) {mNativeRender.native_OnSurfaceCreated();Log.e(TAG, "onSurfaceCreated() called with: GL_VERSION = [" + gl.glGetString(GL10.GL_VERSION) + "]");}@Overridepublic void onSurfaceChanged(GL10 gl, int width, int height) {mNativeRender.native_OnSurfaceChanged(width, height);}@Overridepublic void onDrawFrame(GL10 gl) {mNativeRender.native_OnDrawFrame();}public void init() {mNativeRender.native_Init();}public void unInit() {mNativeRender.native_UnInit();}}

3、MyNativeRender

        MyNativeRender只是一个java层到

http://www.xdnf.cn/news/833671.html

相关文章:

  • C++中istringstream、ostringstream、stringstream 的用法
  • 《apue》 首次拜读完经典之作,两三记录
  • 【知识整理】MySQL数据库开发设计规范
  • parentNode和offsetParent的使用
  • simulink仿真技术简介
  • 延迟加载(Lazyload)三种实现方式
  • 2024年最全速看!成为黑k必看13个网站,简称网站大全!_红黑联盟官方网站,2024年最新看看这篇文章吧
  • log4cpp初入门
  • linux查看7799端口使用情况,OEM12C安装文档
  • 使用Flash_TooL软件刷机Android 手机步骤
  • ADODB 使用说明
  • Manifest文件详解
  • IF函数超实用的12种经典用法
  • 函数PostEvent、triggerevent详解
  • 八款好用的浏览器兼容性测试工具推荐
  • 【深度学习】【机器学习】用神经网络进行入侵检测,NSL-KDD数据集,基于机器学习(深度学习)判断网络入侵,网络攻击,流量异常
  • 想染指系统架构?看这篇就够了
  • DevC++graphics.h库(1)库的下载与安装
  • 【windows】--- SQL Server 2008 超详细安装教程
  • 在 SpringBoot 中使用 ThreadPoolTaskScheduler 实现定时任务
  • 一位十年软件工程师告诉你什么是编程思想
  • 【最新】网站下载工具,整站下载工具汇总
  • 原生js中nextSibling和nextElementSibling的坑
  • 如何执行VMware P2V迁移|VMware Converter和替代方案
  • CppCon 2014 学习:Rolling Your Own Circuit Simulator
  • 工作中使用到的单词(软件开发)_第二版
  • 弱口令(Weak Password)总结和爆破工具
  • arm9芯片包括哪些?arm9如何应用
  • pascal编程语言介绍
  • 软件项目开发全套文档(规格说明书;详细设计;测试计划;验收报告)