2012-10-10 94 views
2

通常,我只是使用NSOpenGLContext,但在這種情況下,我的有一個CGContextRef作爲OpenGL上下文,以支持我正在使用的一些其他框架。我的問題是:這可以做到嗎?CGContextRef as OpenGL上下文

我不能使用glReadPixels()來填充上下文,因爲它是方式爲此放慢速度。我必須在整個屏幕上(1440 x 900)至少每秒渲染32次,所以對我來說性能是一個非常重要的問題。有沒有辦法讓OpenGL高效地繪製到CGContextRef中,還是需要某種解決方法?

+0

「我必須有一個CGContextRef」 - 爲什麼? – 2012-10-10 15:15:54

+0

有很多原因。最大的原因是與我正在使用的另一個框架兼容。 – Justin

+0

「*我現在可以完成。*」假設你的意思是「我*知道*」,那你覺得呢? Apple似乎不太可能讓你用隨機的OpenGL調用來顛覆Quartz2D。 –

回答

0

因爲它似乎1功能將導致與使用GLContext和使用glReadPixels()而不是CGContext的問題。爲什麼不製作多個上下文?

閱讀關於共享上下文的here,將Context專用於後臺線程或操作隊列,並將繁重的操作讀入該操作中,並通過共享上下文訪問它以在主線程上下文中呈現它。

如果你還在必須使用CGContextRef,你能告訴我們你需要使用的確切框架嗎?這裏的人可能會提供另一種解決方案

+0

你能告訴我如何使用CGContextRef嗎?我使用QuartzCore,CoreGraphics,Cocoa和一個我爲自己製作特殊效果的框架。在某些情況下,它們的運行速度比OpenGL快,因爲在放大目標對象或場景時,執行相同操作的片段着色器會變慢。如果你仍然認爲我不應該使用CGContextRef,也許我只需要解決其他問題並使用一些更復雜的方法來保持性能。 – Justin

+0

你能告訴我們你需要使用哪種框架,需要CGContextRef嗎? – CStreel