1

我正在 swift/metal 中实现一个应用程序、iPad、iOS8.1+,仅限横向

主视图有 3 个容器,带有用于启动子进程的左侧拉出/滑出/图标抽屉

左侧滑出将仅包含图标,没有用于数据库访问、麦克风、模板覆盖、视频记录、airplay、iTunes、Dropbox、用户配置等内容的文本

3 个主要容器,视图 1 将保存一个 3d 渲染模型,这将占用 75% 的水平/垂直

视图 2 将在视图 1 中保存渲染模型的 2d 侧投影(也称为侧视图或顶视图)

视图 3 将保存在视图 1 或视图 2 或 pdf 文档或 web 容器中选择的内容的详细子视图

我担心线程,因为这个应用程序将异步拉入大量数据,通过 gpu 缓冲区渲染,然后通过 airplay 将结果推送到视频屏幕。

据说没有“金属视图容器”,但有 GLKView、3d/2d 的 SceneKit。

我需要定义 3 个通用容器视图并构建它们吗?或者这是另一种方式来砍掉现有的金属 GLview?

有人已经建造了这样的金属容器吗?

感谢您的任何积极帮助。

4

1 回答 1

0

不,GLKView即使GLKViewController它们都在 GPU 上执行,也不打算与 Metal 一起使用。如果使用 Metal,必须创建自己的 MetalView和 Metal ViewController。这是因为 OpenGL 完成了CAEAGLLayer,Metal 完成了CAMetalLayer. 我不知道有没有人这样做过。Apple 很可能会在 SDK 的下一次迭代中创建这些类。

对于 3 个容器,您可以创建 3 个单独的图层,但手动告诉金属绘制 3 个单独的部分更有效。然而,这并不是一件容易的事。

只要您在执行期间不弄乱 Metal 缓冲区数据,我认为您不必担心线程。当传递给 GPU 时,Metal 的缓冲区数据不会被复制(你可以)。复制 OpenGL 缓冲区数据。

于 2014-11-20T15:50:21.917 回答