我是OpenGL ES的新手。 我正在嘗試編寫iOS應用程序的屏幕錄製代碼,尤其是遊戲。iOS應用程序的快速屏幕錄製
我使用this answer中用代碼描述的'render to texture'方法捕獲屏幕併爲cocos2d遊戲編寫視頻。 一種修改我做的是,當我打電話CVOpenGLESTextureCacheCreate
然後我用 [EAGLContext currentContext]
而不是
[[GPUImageOpenGLESContext sharedImageProcessingOpenGLESContext] context]
它確實記錄視頻,但有兩個問題
(1) - 當它開始錄製,然後屏幕上的新圖形停止。我希望應用程序繼續在屏幕上繪圖。由於我是OpenGL ES的新手,對幀緩衝區對象等沒有深入的瞭解,所以我很難弄清楚如何在屏幕上同時繪圖並捕捉屏幕。我會欣賞這方面的代碼示例。
(2) - 錄製的視頻翻轉過來。我怎樣才能正確的方向?
以前我認爲glReadPixels
方法太多,但有性能缺陷。
更新:一些想法也浮現在腦海。據我瞭解甚少,
我可以簡單地畫我的紋理返回到畫面,但不知道怎麼辦。
OR
我可以有一個二級FBO,我可以紋理附加到它,即
glGenFramebuffersOES(1, &textureFrameBuffer);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, textureFrameBuffer);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, CVOpenGLESTextureGetName(renderTexture), 0);
//Then I restore the screen FBO.
glBindFramebufferOES(GL_FRAMEBUFFER_OES, 1);
但如果我這樣做,那麼我怎麼複製屏幕繪製到我的中學FBO?
是你的問題解決了工作?我仍然面臨同樣的問題,而不是cocos2d我使用Sparrow框架? –