如何在後臺運行的OpenGL動畫之上實現「常規」繪製(通常在drawRect方法中完成)?我的應用程序是OpenGL應用程序,它是默認的Xcode遊戲應用程序模板。 GLKViewController沒有drawRect方法,當我添加一個時,它永遠不會被調用。我試圖在drawInRect方法(它確實存在)中實現繪圖代碼,但我得到運行時錯誤。所以總結一下:我想繪製不使用OpenGL的東西(線條,路徑,不管),而是使用常規的石英基元,並將其顯示在現有的3d渲染之上。在OpenGL層上繪製「Regular」
0
A
回答
0
要確保drawRect
被調用,你應該走另一條路線:創建一個標準的可可觸摸的項目,改變主視圖的+ (Class)layerClass
方法返回[CAEAGLLayer class]
,然後開始與繪畫。請注意,CAEAGLLayer
documentation特別警告您不要做您想做的事:
避免在CAEAGLLayer對象之上繪製其他圖層。如果您必須繪製其他非OpenGL內容,則可能會發現如果將透明2D內容放置在GL內容之上,並且確保OpenGL內容不透明並且不進行轉換,則性能成本可以接受。
退房的GLPaint
項目顯示layerClass
超越簡單的OpenGL ES項目中(PaintingView.m
)。他們使用layoutSubviews
和touchesBegan/Moved/Ended
來完成繪圖。
相關問題
- 1. 在gluSphere上繪製的OpenGL線?
- 2. 在柵格圖層上繪製XYZ點
- 3. 在opengl中繪製點
- 4. 如何在iOS上使用OpenGL ES實現多層次繪圖?
- 5. 在GDI中繪製圖層
- 6. 繪製分層OpenGL ES內容的最佳方式是什麼?
- 7. 上層3dPlot繪製網格(gnuplot的5)
- 8. 在CA層上繪圖
- 9. 在java上分層繪畫?
- 10. OpenGL紋理沒有繪製?
- 11. OpenGL iOS視圖不繪製
- 12. OpenGL不更新繪製
- 13. OpenGL線條繪製工件
- 14. OpenGL 4:使用glVertexAttrib繪製
- 15. OpenGL:用VBO繪製線條
- 16. 使用OpenGL繪製NG
- 17. Java openGL繪製紋理
- 18. C++與OpenGL - 繪製廣場
- 19. 的OpenGL圖像繪製
- 20. 繪製2D七邊形OpenGL
- 21. OpenGL繪製圖像。 PIC庫
- 22. OpenGL,一次繪製多少?
- 23. 繪製3D使用OpenGL
- 24. Java openGL - 繪製3D對象
- 25. OpenGL中的繪製順序
- 26. OpenGL - glVertex替換繪製點?
- 27. OpenGL繪製多個對象
- 28. 用OpenGL ES繪製點線
- 29. Opengl-es繪製紋理
- 30. 在OpenGL中繪製一個繪製調用中的多個VBO
謝謝。我發現實際繪圖在renderLineFromPoint中調用[context presentRenderbuffer:GL_RENDERBUFFER_OES]。但是,如何將常規石英繪圖命令合併到此GL層之上的圖層中?我假設我不能使用與GL層相同的「上下文」? – 2012-01-11 18:51:44
在Interface Builder或代碼中,將額外的'UIView'定義爲主視圖的子視圖。每個'UIView'都有一個內部的'CALayer',所以當它被要求繪製自己時,它將使用該層的上下文。當時的GL背景是無關緊要的。 – darvids0n 2012-01-12 00:47:52
[This SO question](http://stackoverflow.com/questions/4500708/marrying-core-animation-with-opengl-es)可能會有所幫助。 – darvids0n 2012-01-12 00:51:02