2012-05-08 89 views
0

我有兩個UIViews,每個都有自己單獨的renderbuffers和frameBuffers。它們屬於不同的ViewControllers。我已經通過NSNotificationCenter連接了它們,這樣就完成了設置。在另一個類RenderBuffer/FrameBuffer渲染紋理在OpenGL ES 2.0 iOS 5中

我只需要在ClassAView的frameBuffer中將紋理基本渲染到ClassBView的frameBuffer中。這似乎是它應該很容易......我在我在ClassAView約束紋理試過路過:

glBindTexture(GL_TEXTURE_2D, myClassATexture);

然後後說,輕敲屏幕,我嘗試過傳遞紋理ClassBView:


// in ClassA: 
[classBView addTexture:myClassATexture]; 

// In ClassB's addTexture method: 
myClassBTexture = newTexture 
glClear, glBindTexture, etc... 
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); 
[self presentFramebuffer]; 

但它導致了黑屏。我試圖NSLog myClassATexture,但它打印出「0」。

無論如何,我將如何有效地將ClassA中已渲染的紋理傳遞給ClassB?

我的目標是iOS 5.0,所以如果有一個簡單的方法來做到這一點,需要iOS 5我都是耳朵。 :)

謝謝一堆!

+0

你正在嘗試應該工作。問題是紋理ID是0.這基本上意味着沒有紋理。 – user1118321

+0

啊哈,所以也許它被渲染後失效了?顯然,我對opengl很陌生。 :) – taber

+0

哈哈,我後來在代碼中無意中使它失效,有效地將它設置爲0.糟糕!我拿出來,它的工作原理!真棒。 – taber

回答

0

紋理ID爲0表示沒有紋理,因此您需要確保正確複製紋理ID以便以後使用。