2012-10-10 32 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