1

我的公司开发了一个 3D HW 加速器,我们已经准备好 EGL + OpenGLES1.1 库并在 Linux 下工作。我需要将这些库移植到 Android。我在同一个硬件平台上也有一个工作的 Android,但它当然是使用它自己的基于 sw 的 OpenGLES 渲染器(放置在 frameworks/base/opengles/libagl 并链接为 system/libs/egl/libGLES_android.so) . 首先,我的想法是通过编译我自己的库来替换原来的 libagl 源,但这并不是那么简单……我不知道如何进行,所以这里有一些问题:

  1. 我在哪里可以找到有关此级别 Android 开发的一些文档/规范?
  2. 最初的基于 SW 的渲染器与系统提供的专用表面紧密配合,任何可能发生的绘图都在该表面中完成。我不能那样工作——我的硬件加速器总是绘制到预定义的内存区域(具有固定的物理地址和格式),所以我需要找到一种方法(2a)将绘制结果复制到系统提供的表面,或者( 2b) 告诉系统创建一个指向我的硬件操作区域和格式的表面。2b 会更好,因为复制较少。做什么和怎么做?
  3. 我的硬件加速器仅适用于物理地址。我应该在哪里以及如何映射输出缓冲区的已知物理地址?
  4. 使用 NDK 进行这种开发/移植是否可能/优选/有用?

谢谢,

安杰尔科

4

0 回答 0