AGL + Fullscreen broken in Tiger?

I’ve spent some hours, debugging in dual monitor, using the OpenGL Profiler and realize the fact : AGL in fullscreen is broken on Tiger (at least on Geforce4MX).

Simply nothing is rendered.

OpenGL Profiler produces calls of everything, no error from AGL context creation, which were double checked by aglGetError(), just nothing, nada, just black screen.

If i disable the ‘fullscreen’ flags, then it works in a window.

Does someone has experienced such similar problem ?

The AGL Fullscreen sample code seems to work, but not mine.

I had the same problem in another program, i’ve recoded everything using CGL, It was working If I disabled stencil buffering (this other app was using stencil buffering for shadows). - apparently stencil buffering is broken as well …

I even tried

glClearColor(1,1,1,1);
glClear(GL_COLOR_BUFFER_BIT);
aglSwapBuffers(g_pAGLC);

Just black.

[UPDATE]
I’ve converted the application which was using AGL to CGL.
It only works in 16bit mode. when using 32bit display mode, display is black again.

(using CGDisplayBestModeForParameters for searching the display mode).

This is too crazy.

What’s your pixel format?

AGL is a very thin layer on CGL, and my CGL fullscreen code is working fine, so it seems likely this is an incorrect assumption your code makes that Tiger enforces…

the kCGLPFAColorSize was missing. So 16bit and 32bit mode is working again.

Other thing is that if you set kCGLPFAStencilSize to 8 in 16bit mode ,the pixel format is found, but it fails after the CGLSetFullScreen call. So I’ve disabled stencil in 16bit.

Didn’t tried with AGL in fullscreen, I will just keep the AGL for the windowed mode application and uses CGL for full screen now.

Anyway I was planning to use CGL for full screen, which is lower level and seems to have more features than AGL (gamma fading for example ?)

Update

The Carbon AGL Fullscreen Sample
has just gone. What a surprise …

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.