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;
CGLChoosePixelFormat() を呼び出すと「CGNoError」が返されますが、「pixelFormatObj」は NULL です。
このコードは、画面をキャプチャするための参照をオンラインで見たので、おそらく機能するはずです(参照http://cocoadev.com/wiki/ScreenShotCode)。
XCode のデバッガーの下を見ると、attribs[2] は "kCGLPFAAllRenderers" になります。
これがどのような条件で発生する可能性があるかについて、誰かが考えを持っていますか? そして、これを克服する方法は?