android - Android 上的 OpenGL 渲染

标签 android opengl-es

为了尝试在 Android 上构建除 Java/Dalvik 之外的其他平台,我禁用了 zygote 并尝试了此处列出的想法:

http://jiggawatt.org/badc0de/android/index.html#opengl

我已成功编译 OpenGL 测试代码并将其推送到 Android 模拟器(我正在运行 2.3/gingerbread)。而不是彩色三角形,它只会导致带有闪烁“ANDROID_”文本的启动屏幕闪烁。这是输出:

root@android:/data/misc # ./test1                                              
GL version: 1.4
Window specs: 0*0 format=-1416517231
GL context: 162f8
GL surface: 163d0

这似乎表明 libui 的 android_createDisplaySurface() 没有返回正确大小的窗口。但是模拟器上的logcat显示如下,这似乎暗示相反:

D/libEGL  (   73): loaded /system/lib/egl/libEGL_emul.so
D/libEGL  (   73): loaded /system/lib/egl/libGLESv1_CM_emul.so
D/libEGL  (   73): loaded /system/lib/egl/libGLESv2_emul.so
D/eglWrapper(   73): Loading egl dispatch for test1
D/eglWrapper(   73): isNeedEncode? for test1
D/eglWrapper(   73): Initializing native opengl for test1
D/eglWrapper(   73): loading /system/lib/egl/libGLES_android.so into /system/lib/egl/libGLESv1_CM_emul.so complete
D/eglWrapper(   73): loading /system/lib/egl/libGLES_android.so into /system/lib/egl/libGLESv2_emul.so complete
I/gralloc (   73): using (fd=6)
I/gralloc (   73): id           = 
I/gralloc (   73): xres         = 320 px
I/gralloc (   73): yres         = 480 px
I/gralloc (   73): xres_virtual = 320 px
I/gralloc (   73): yres_virtual = 960 px
I/gralloc (   73): bpp          = 16
I/gralloc (   73): r            = 11:5
I/gralloc (   73): g            =  5:6
I/gralloc (   73): b            =  0:5
I/gralloc (   73): width        = 49 mm (165.877548 dpi)
I/gralloc (   73): height       = 74 mm (164.756760 dpi)
I/gralloc (   73): refresh rate = 651.04 Hz
I/pixelflinger(   73): Needs: n=0x03010144 p=0x00000177 t0=0x00000000 t1=0x00000000
I/ARMAssembler(   73): generated scanline__00000177:03010144_00000000_00000000 [ 26 ipp] (63 ins) at [0x4009f1e8:0x4009f2e4] in 9552233 ns

到目前为止,我唯一的猜测是,也许堆栈上的某些东西正在等待 SurfaceFlinger,如果没有 Dalvik,它就不会运行。但它不在日志中。

我意识到这是人迹罕至的地方,但希望一些 android/OpenGL 专家可能对正在发生的事情有一些线索。真诚感谢任何帮助。

最佳答案

自 eclair 或 froyo 以来,Android native 表面已发生变化。你应该试试 framework/base/opengl/tests/angeles/app-linux.cpp .

关于android - Android 上的 OpenGL 渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6286813/

相关文章:

android - 条形图的AchartEngine实现

android - dataSnapshot 有对象,但 getValue() 将返回 null

java - 制作精准的Android节拍器

android opengl es 在两个线程上运行的两个上下文之间共享纹理

android - 基于旋转的 Sprite 运动

java - ANDROID_ID 有问题

android - 当应用程序自动启用它们时,如何在 native react 中获取应用程序权限的系统警报

ios - 带有 iOS GLES 的 UIImageView

c - 如何修复 freetype 错误加载字符

android - 尝试在 Android 模拟器上运行 mapsActivity 时出现 EGL 错误