0

我正在尝试修复 MAC OS X 10.5 上一个非常有趣的崩溃。

这是代码:

CGLPixelFormatObj pixelFormatObj ;
GLint numPixelFormats ;
CGLPixelFormatAttribute attribs[] =
{
    kCGLPFAFullScreen,
    kCGLPFADisplayMask,
    (CGLPixelFormatAttribute) 0,    /* Display mask bit goes here */
    (CGLPixelFormatAttribute) 0
} ;


if ( display == kCGNullDirectDisplay )
    display = CGMainDisplayID();
attribs[2] = (CGLPixelFormatAttribute) CGDisplayIDToOpenGLDisplayMask(display);


/* Build a full-screen GL context */
CGError error = CGLChoosePixelFormat( attribs, &pixelFormatObj, &numPixelFormats );
if ( pixelFormatObj == NULL )    // No full screen context support
    return NULL;

对 CGLChosePixelFormat() 的调用给出“CGNoError”,但“pixelFormatObj”为 NULL。

这段代码应该可以工作,因为我在网上看到了对它的引用以获取屏幕截图(参考http://cocoadev.com/wiki/ScreenShotCode)。

在 XCode 中的调试器下查看,attribs[2] 变为“kCGLPFAAllRenderers”。

有人知道这可能发生的条件吗?以及如何克服这一点?

4

0 回答 0