Android 上的原生 OpenGL/ES - 系统 - goandroid
来源:百度文库 编辑:神马文学网 时间:2024/04/25 13:04:31
Android 上的原生 OpenGL/ES
Android 已提供初步的 OpenGL/ES 封裝,實做則是透過 agl (Android OpenGL) 底層的 PixelFlinger 與 GPU。關於 Java 部份的 OpenGL APIs 操作,可參閱原始程式碼 frameworks/base/opengl/java/android/opengl/GLSurfaceView.java ,不過現在只看 C 程式的部份。動態連結函式庫必須連結到以下三者:
不過,在模擬器顯示的狀況會比實體遜色頗多,可見到相當嚴重的重繪動作,但基本上是可用的。
surface manager 可以準備一塊 surface,把 surface 的 fd (一塊 ashmem 記憶體) 傳給一個 app,讓 app 可以在上面作畫。有了這層理解,我們對 android 可以有更自由的發揮,例如,可以不改一行 cairo 的程式碼,就利用 cairo 與 c++ 寫出一個會動的時鐘而 Surface manager 顧名思義,就是管理邏輯上眾多的 surface,其底層對應於 OpenGL|ES 的實做。透過 surface 的處理,我們可讓像 fdclock 這樣原生 (native) 的 C 語言程式,透過同樣在 GNU/Linux 上原生的 Cairo 函式庫,無痛的顯示處理。這實在很吸引人,畢竟若能在 Android 平台充分重用 GNU/Linux 既有的軟體功能,會是多麼有趣的事。且讓我們思考是否能在 Android 上撰寫 C 語言的 OpenGL/ES 應用程式。
Android 已提供初步的 OpenGL/ES 封裝,實做則是透過 agl (Android OpenGL) 底層的 PixelFlinger 與 GPU。關於 Java 部份的 OpenGL APIs 操作,可參閱原始程式碼 frameworks/base/opengl/java/android/opengl/GLSurfaceView.java ,不過現在只看 C 程式的部份。動態連結函式庫必須連結到以下三者:
- libEGL : OpenGL/ES APIs
- libGLESv1_CM : Reference implementation
- libui : Android UI framework (native)
$ . build/envsetup.sh參考的螢幕顯示如下:
$ cd angeles-test/
$ mm
make: Entering directory `/home/jserv/Myth/mydroid'
target arm C: angeles-test <= /home/jserv/Myth/mydroid/angeles-test/demo.c
...
不過,在模擬器顯示的狀況會比實體遜色頗多,可見到相當嚴重的重繪動作,但基本上是可用的。
原文地址 http://jserv.blogspot.com/2009/05/android-opengles.html
Android 上的原生 OpenGL/ES - 系统 - goandroid
Android上JNI的调试 - 系统 - goandroid
Android的IPC机制Binder的各个部分 - 系统 - goandroid
Android的IPC机制Binder的各个部分 - 系统 - goandroid
Android Graphic : apk and Skia/OpenGL|ES - 一醉...
JNI與Android VM之關係 - 系统 - goandroid
OpenGL的安装 - OpenGL
Google Android 手机上的服务器系统运维工具
Android平台文件管理助手 ES文件浏览器评测
ES文件浏览器: Android平台文件管理助手 ES软件评测_Android软件评测_A...
气质的培养es
Android系统架构
原生態的絕美
基于MFC下的OpenGL框架
Es/No与Eb/No的关系
《基于MFC的OpenGL编程》Part 2 Setting up OpenGL on Windows
android上的游戏下载神器-地瓜!集合市面上所有优秀的游戏! - Droid/Mile...
Sciphone N21 全球首款采用Android系统的山寨手机上市
原生家庭对人的影响
原生家庭对个人的影响
极美的原生晶体矿石
Android系统与应用内容介绍
Android怎样修改系统时间?(转)
【多图】Google工程师解析Android系统架构