2014-11-22 49 views
0

我使用CoreAnimation在屏幕上繪製東西(例如CAShapeLayer,CAReplicatorLayer,CATextLayer)。CoreAnimation - 獲取繪製內容紋理的最快方法

在屏幕上獲取繪製內容的紋理的最快方法是什麼? (比renderInContext快得多,在我的場景中最多需要2秒)

我的設備上某處存在一個渲染緩衝區,其中包含此繪製內容,可能最好的解決方案是能夠訪問它。

+0

你有興趣使用私有API或沒有(即你想在商店中的應用程序)? – 2014-11-23 12:20:14

+0

我希望我的應用程序在t他最後儲存了,但我正在尋找任何可以讓它在第一時間起作用的方法。所以如果你知道一個私有API來做到這一點,我很樂意知道! – Max 2014-11-24 13:14:06

回答

0

您可以作爲IOSurface獲取幀緩衝區,並從中創建一個圖像(這是iOS上的私有API)。這可能是最快的解決方案。

你應該可以通過搜索「iOS IOSurface」來解決問題(因爲它是私人的,你不能真正閱讀任何關於它的官方文檔(不過它在OS X上是公開的,所以那裏有一些文檔是主要是相關的)This questions似乎已經得到它大部分是正確的,並且看起來像一個良好的起點

但是,這不會幫助你,如果你想在商店上發佈的應用程序,我不認爲這它會給你任何代碼,你可以在商店中重複使用。

+0

謝謝,看起來很有希望! (無論如何,我正在與CARenderServer/CA性能問題長期戰鬥,請參閱我的其他問題....所以這件事可能會給一些更多的控制!) 但是...我從哪裏得到這些IOSurface頭?我發現我應該從Mac頭文件中複製它們,但他們不在優勝美地。 – Max 2014-11-24 16:13:07

+0

http://stackoverflow.com/questions/21009761/finding-iosurface-headers – 2014-11-24 16:35:12

+0

是的,對,我看到了這個;)但這是爲Mac而不是爲iOS。我也在那裏找到了框架,但是如何在iOS上獲得它?我會更多一點谷歌! – Max 2014-11-24 17:30:21