【问题标题】:CoreAnimation - Fastest way to obtain a texture of the drawn contentCoreAnimation - 获取绘制内容纹理的最快方法
【发布时间】:2014-11-22 22:38:28
【问题描述】:

我正在使用 CoreAnimation 将内容绘制到屏幕上(例如 CAShapeLayer、CAReplicatorLayer、CATextLayer)。

在屏幕上获取绘制内容纹理的最快方法是什么? (比在我的场景中最多需要 2 秒的 renderInContext 快得多)

我设备上的某处存在一个带有此绘制内容的渲染缓冲区,可能最好的解决方案是能够访问它。

【问题讨论】:

  • 您是否对使用私有 API 感兴趣(即您是否希望您的应用程序出现在商店中)?
  • 我希望我的应用程序最终能在商店中出现,但我正在寻找任何方法让它开始工作。所以如果你知道有一个私有 API 来做这件事,我很高兴知道!

标签: ios objective-c opengl-es core-animation


【解决方案1】:

您可以作为 IOSurface 访问帧缓冲区并从中创建图像(这是 iOS 上的私有 API)。这可能是最快的解决方案。

您应该能够通过搜索“iOS IOSurface”来拼凑一些东西(因为它是私有的,您无法真正阅读任何有关它的官方文档(但是它在 OS X 上是公开的,所以那里有一些文档主要是相关的)。This questions 似乎基本上是正确的,并且看起来是一个很好的起点。

但是,如果您想在商店中发布应用程序,这对您没有帮助,而且我认为它不会为您提供任何可以在商店中重复使用的代码。

【讨论】:

  • 谢谢,看起来很有希望! (无论如何,我一直在与 CARenderServer / CA 性能问题进行长期斗争,请参阅我的其他问题......所以这件事可能会给予更多控制!)但是......我从哪里获得这些 IOSurface 标头?我发现我应该从 Mac Headers 复制它们,但 Yosemite 上没有它们。
  • 是的,对,我看到了这个;)但那是针对 Mac 而不是 iOS。我也在那里找到了框架,但是如何为 iOS 获取它?我再谷歌一下!
猜你喜欢
  • 1970-01-01
  • 2011-08-13
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-21
  • 2011-11-29
相关资源
最近更新 更多