Android OpenGL ES 开发教程(4):OpenGL ES API 命名习惯
来源:互联网 发布:一起来做淘宝 编辑:程序博客网 时间:2024/06/06 00:47
OpenGL ES是个跨平台的3D图形开发包规范,最常见的实现是采用C语言实现的,Android OpenGL ES 实现上是使用Java 语言对底层的C接口进行了封装,因此在android.opengl javax.microedition.khronos.egl ,javax.microedition.khronos.opengles 包中定义的OpenGL相关的类和方法带有很强的C语言色彩。
- 定义的常量都以GL_为前缀。比如GL10.GL_COLOR_BUFFER_BIT
- OpenGL ES 指令以gl开头 ,比如gl.glClearColor
- 某些OpenGL指令以3f 或4f结尾,3和4代表参数的个数,f代表参数类型为浮点数,如gl.glColor4f ,i,x 代表 int如 gl.glColor4x
- 对应以v结尾的OpenGL ES 指令,代表参数类型为一个矢量(Vector) ,如 glTexEnvfv
- 所有8-bit整数对应到byte 类型,16-bit 对应到short类型,32-bit整数(包括GLFixed)对应到int类型,而所有32-bit 浮点数对应到float 类型。
- GL_TRUE,GL_FALSE 对应到boolean类型
- C字符串((char*)) 对应到Java 的 UTF-8 字符串。
在前面Android OpenGL ES 开发中的Buffer使用 说过OpenGL ES 说过为了提高性能,通常将顶点,颜色等值存放在java.nio 包中定义的Buffer类中。下表列出了OpenGL ES指令后缀, Java类型,Java Buffer(java.nio)类型的对照表
如下面代码 将为顶点指定color 值,使用FloatBuffer 来存放顶点的Color数组
- // The colors mapped to the vertices.
- float[] colors = {
- 1f, 0f, 0f, 1f, // vertex 0 red
- 0f, 1f, 0f, 1f, // vertex 1 green
- 0f, 0f, 1f, 1f, // vertex 2 blue
- 1f, 0f, 1f, 1f, // vertex 3 magenta
- };
- ...
- // float has 4 bytes, colors (RGBA) * 4 bytes
- ByteBuffer cbb
- = ByteBuffer.allocateDirect(colors.length * 4);
- cbb.order(ByteOrder.nativeOrder());
- colorBuffer = cbb.asFloatBuffer();
- colorBuffer.put(colors);
- colorBuffer.position(0);
原文出处:http://blog.csdn.net/mapdigit/article/details/7561577
0 0
- Android OpenGL ES 开发教程(4):OpenGL ES API 命名习惯
- Android OpenGL ES 开发教程(4):OpenGL ES API 命名习惯
- Android OpenGL ES 开发教程(4):OpenGL ES API 命名习惯
- Android OpenGL ES(三):OpenGL ES API 命名习惯
- Android OpenGL ES 开发教程(2):关于OpenGL ES
- Android OpenGL ES 开发教程(3):OpenGL ES管道(Pipeline)
- Android OpenGL ES 开发教程(2):关于OpenGL ES
- Android OpenGL ES 开发教程(3):OpenGL ES管道(Pipeline)
- Android OpenGL ES 开发教程(2):关于OpenGL ES
- Android OpenGL ES 开发教程(3):OpenGL ES管道(Pipeline)
- Android OpenGL ES 教程
- Android开发之OpenGL+ES教程
- Android OpenGL ES 简明开发教程
- Android OpenGL ES 简明开发教程
- Android开发之OpenGL+ES教程
- Android OpenGL ES 简明开发教程
- Android OpenGL ES 开发教程(1):导言
- Android OpenGL ES 开发教程(6):GLSurfaceView
- 学习敏捷开发,party_bid故事卡1---创建活动
- 【设计模式】命令模式
- Public Class Form1
- 单词数 (STL set集合)
- Intent调用系统拍照程序,返回图片太小的问题
- Android OpenGL ES 开发教程(4):OpenGL ES API 命名习惯
- popupWindow简单用法实例
- 写给新入职的毕业生们
- DSP芯片的定点运算
- Imports Microsoft.Office.Interop
- LeetCode-Word Search
- IOS 用数据库收藏
- ios中KeyChain用途
- codeforces #260 A. Laptops(水)