1

我在 opengl android 中有一个 Textured Cube 组件。它可以在触摸事件上旋转,我们可以将此组件用作单独的视图。但是当我尝试在滚动视图中使用多个立方体组件时,我遇到了一个问题。

我知道 andorid 在滚动视图中不支持不同的 glsurface 视图组件。

我听说过 API 级别 14 中包含的 TextureView,它能够保持打开的 gl 视图并像 andorid 原生视图一样工作,但我无法使用 TextuerView 实现相同的 opengl 立方体组件。

所以我有几个问题

  1. 是否可以在 TextureView 上绘制 opengl 立方体组件?如果可能的话怎么办?

opengl 视图的 2 秒问题第一次加载需要时间(显示为黑屏 1 或 2 秒)。

  1. 我们可以使用带有android自定义视图类(没有opengl)的正交二维投影来实现立方体组件吗?
4

1 回答 1

1

您可以将 OpenGL ES 与 TextureView 一起使用,就像使用 SurfaceView 一样。最好有一个单独的 EGL 上下文并将每个 TextureView 视为不同的表面。这将避免拥有多个上下文并在它们之间切换的开销。

拥有一个单一的表面并自己处理渲染和滚动会更有效,但这需要更多的工作。

Grafika 有很多例子。最简单的就是“ TextureView GL 活动”,虽然有点不好看但是演示了基本概念。

于 2015-01-19T17:24:27.240 回答