详解 Android 图形系统
2010-03-10 16:45:00 来源:WEB开发网egl_native_window_t 定 义了一个本地window类 。这个类提供了对本地window 的所有描述以及用于egl (opengl 与本地图形系统的接口)操作本地windwo的所有方法。
EGLNativeSurface是egl_native_window_t的 一个派生类。
EGLDisplaySurface是EGLNativeSurface的 派生类。 EGLDisplaySurface 是一个非常重要的类,在这个类里,真正打开framebuffer设 备(/dev/graphics/fb0 或者/dev/fb0),并将这个设备封装成EGLDisplaySurface的 形式供server使用。函数mapFrameBuffer打开framebuffer, 创建两个缓冲区,(一个是on screen front 缓冲区, 另一个back buffer, 可能位于offscreen framebuffer,也可能位于系统内存 )。 函数swapBuffers将back buffer内容拷贝到front buffer中。
DisplayHardware 类中初始化了egl系统,并为本地窗口对象EGLDisplaySurface 创 建了对应的EGLSurface 对象。surfaceflinger 使用DisplayHardware去 和本地窗口打交道。
jni
7.frameworks/base/core/jni/android/graphics
8.frameworks/base/core/jni/android/opengl
9.frameworks/base/core/jni/android/android_view_*.cpp
这 些目录下的代码在Java层的graphics 组件和native (c++)组 件之间衔接,将java层的功能调用转换到对应的本地调用。
hardware/libhardware实 现了HAL(Hardware Abstraction Layer)层,copybit device是其中一个模块。
更多精彩
赞助商链接