325 const unsigned char *versionstr = j2d_glGetString(GL_VERSION); 326 if (!OGLContext_IsVersionSupported(versionstr)) { 327 J2dRlsTraceLn(J2D_TRACE_ERROR, "CGLGraphicsConfig_getCGLConfigInfo: OpenGL 1.2 is required"); 328 [NSOpenGLContext clearCurrentContext]; 329 [argValue addObject: [NSNumber numberWithLong: 0L]]; 330 return; 331 } 332 J2dRlsTraceLn1(J2D_TRACE_INFO, "CGLGraphicsConfig_getCGLConfigInfo: OpenGL version=%s", versionstr); 333 334 jint caps = CAPS_EMPTY; 335 OGLContext_GetExtensionInfo(env, &caps); 336 337 GLint value = 0; 338 [sharedPixelFormat 339 getValues: &value 340 forAttribute: NSOpenGLPFADoubleBuffer 341 forVirtualScreen: contextVirtualScreen]; 342 if (value != 0) { 343 caps |= CAPS_DOUBLEBUFFERED; 344 } 345 [sharedPixelFormat 346 getValues: &value 347 forAttribute: NSOpenGLPFAAlphaSize 348 forVirtualScreen: contextVirtualScreen]; 349 if (value != 0) { 350 caps |= CAPS_STORED_ALPHA; 351 } 352 353 J2dRlsTraceLn2(J2D_TRACE_INFO, 354 "CGLGraphicsConfig_getCGLConfigInfo: db=%d alpha=%d", 355 (caps & CAPS_DOUBLEBUFFERED) != 0, 356 (caps & CAPS_STORED_ALPHA) != 0); 357 358 // remove before shipping (?) 359 #if 1 360 [sharedPixelFormat 361 getValues: &value 362 forAttribute: NSOpenGLPFAAccelerated 363 forVirtualScreen: contextVirtualScreen]; 364 if (value == 0) { 365 [sharedPixelFormat 366 getValues: &value 367 forAttribute: NSOpenGLPFARendererID 368 forVirtualScreen: contextVirtualScreen]; 369 fprintf(stderr, "WARNING: GL pipe is running in software mode (Renderer ID=0x%x)\n", (int)value); 370 } 371 #endif 372 373 // 0: the buffers are swapped with no regard to the vertical refresh rate 374 // 1: the buffers are swapped only during the vertical retrace 375 GLint params = swapInterval; 376 [context setValues: ¶ms forParameter: NSOpenGLCPSwapInterval]; | 325 const unsigned char *versionstr = j2d_glGetString(GL_VERSION); 326 if (!OGLContext_IsVersionSupported(versionstr)) { 327 J2dRlsTraceLn(J2D_TRACE_ERROR, "CGLGraphicsConfig_getCGLConfigInfo: OpenGL 1.2 is required"); 328 [NSOpenGLContext clearCurrentContext]; 329 [argValue addObject: [NSNumber numberWithLong: 0L]]; 330 return; 331 } 332 J2dRlsTraceLn1(J2D_TRACE_INFO, "CGLGraphicsConfig_getCGLConfigInfo: OpenGL version=%s", versionstr); 333 334 jint caps = CAPS_EMPTY; 335 OGLContext_GetExtensionInfo(env, &caps); 336 337 GLint value = 0; 338 [sharedPixelFormat 339 getValues: &value 340 forAttribute: NSOpenGLPFADoubleBuffer 341 forVirtualScreen: contextVirtualScreen]; 342 if (value != 0) { 343 caps |= CAPS_DOUBLEBUFFERED; 344 } 345 346 J2dRlsTraceLn1(J2D_TRACE_INFO, 347 "CGLGraphicsConfig_getCGLConfigInfo: db=%d", 348 (caps & CAPS_DOUBLEBUFFERED) != 0); 349 350 // remove before shipping (?) 351 #if 1 352 [sharedPixelFormat 353 getValues: &value 354 forAttribute: NSOpenGLPFAAccelerated 355 forVirtualScreen: contextVirtualScreen]; 356 if (value == 0) { 357 [sharedPixelFormat 358 getValues: &value 359 forAttribute: NSOpenGLPFARendererID 360 forVirtualScreen: contextVirtualScreen]; 361 fprintf(stderr, "WARNING: GL pipe is running in software mode (Renderer ID=0x%x)\n", (int)value); 362 } 363 #endif 364 365 // 0: the buffers are swapped with no regard to the vertical refresh rate 366 // 1: the buffers are swapped only during the vertical retrace 367 GLint params = swapInterval; 368 [context setValues: ¶ms forParameter: NSOpenGLCPSwapInterval]; |