前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >速读原著-Android应用开发入门教程(使用OpenGL图形接口的程序结构)

速读原著-Android应用开发入门教程(使用OpenGL图形接口的程序结构)

作者头像
cwl_java
发布2020-02-13 15:09:42
6640
发布2020-02-13 15:09:42
举报
文章被收录于专栏:cwl_Javacwl_Java

第 10 章 OpenGL 3D图形的使用

10.1 使用OpenGL图形接口的程序结构。

在 Android 中,可以直接支持 3D 图形的绘制,主要使用 OpenGL 标准的类javax.microedition.khronos.egl,但是需要结合 Android GUI 系统使用。Android 中 OpenGL 接口使用的结构如图所示:

在这里插入图片描述
在这里插入图片描述

在使用 3D 的图形 API 方面,主要的步骤通常如下所示: 1.扩展实现 android.view.GLSurfaceView 类。 2.扩展实现 android.opengl.GLSurfaceView 中的 Renderer(渲染器)。 3.实现 GLSurfaceView::Renderer 中的 onDrawFrame()等函数。

android.opengl.GLSurfaceView 扩展了 android.view.SurfaceViewandroid. view.SurfaceView 扩展了 android.view.View,因此 GLSurfaceView 本身可以作为 android. view.View 来使用。GLSurfaceView::Renderer 是一个接口,其中主要定义了以下几个方法:

代码语言:javascript
复制
abstract void onDrawFrame(GL10 gl) // 绘制当前帧
abstract void onSurfaceChanged(GL10 gl, int width, int height) 
 // Surface 变化时调用
abstract void onSurfaceCreated(GL10 gl, EGLConfig config) 
 // Surface 创建时调用

各个方法的参数 GL10 是 javax.microedition.khronos.egl 包中的通用函数。GLSurface View::Renderer 中的onSurfaceChanged()onSurfaceCreated() 方法实际上是和 SurfaceView 中的两个方法对应的。实现的GLSurfaceView::Renderer,通过 GLSurfaceViewsetRenderer()方法将其设置到 GLSurfaceView 中。

在 ApiDemo 的示例程序中,android/apis/graphics/中的 GLSurfaceViewActivity、TouchRotateActivity、TriangleActivity 等程序和 spritetext/及/Kube/目录中的程序是 OpenGL 的示例程序。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第 10 章 OpenGL 3D图形的使用
    • 10.1 使用OpenGL图形接口的程序结构。
    相关产品与服务
    图像处理
    图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档