分类: 嵌入式
2010-01-25 10:47:13
软件3D引擎由OpenGL ES函数组成,函数的具体实现由软件算法完成,在android系统中,软3D引擎文件主要在路径:
\mydroid\system\core\libpixelflinger
\mydroid\frameworks\base\opengl\libagl
头文件:\mydroid\frameworks\base\include\private\opengles
\mydroid\system\core\include\private\pixelflinger
\mydroid\system\core\include\pixelflinger
下面具体分析每个文件所包含的内容:
gl_context.h 基础的头文件,里面列出了数据主要结构,分类,详细说明了数据间的层次关系,基本上函数调用关系,指针方向,都能从这里找到层次关系。这里及其它的文件中,大多都存在namespace android结构,可以看到这里主要放置了3D方面的函数和关系,很多是标准OpenGL ES函数调用的函数和结构。这个文件中,gl是主结构,下面的ogles_context_t结构是许多3D函数用到的结构关系。
ggl_context.h 也列出了一些主要结构,还定义一些主要数据,及数据赋值、运算函数
array.cpp 定义数值,绘画,渲染函数 在namespace android结构中,有一些3D绘画函数,如画点,画线,画三角等,往下会调用到primitives.cpp里面的函数,是更简单些的绘画函数。
matrix.cpp 矩阵,位置,窗口,深度函数,下面调用的函数基本在namespace android结构中,关系从gl_context.h能找到。
light.cpp 光照,阴影,雾化效果,一些运算会用到fixed文件里面的函数
state.cpp 颜色,深度,状态等情况 原型在pixelflinger.cpp中
texture.cpp 纹理方面函数,会调用到mipmap.cpp里面的函数
pixelflinger.cpp 缓冲,功能开关,重要的操作函数,里面的主函数调用到trap.cpp,picker.cpp,buffer.cpp,
clear.cpp 清除,刷颜色,可以看到里面调用了内存操作函数,要与系统配合
fixed.cpp ggl_fixed.h 一些用到的数据算法,赋值操作
egl.cpp