hi i threw togheter a simple ogl app using WGL_ARB_pixel_format. It just goes through all the pixel formats of the machine and dumps out their attributes.
it looks something like this:
int iAttributes[] = { WGL_PIXEL_TYPE_ARB, WGL_COLOR_BITS_ARB, WGL_RED_BITS_ARB, WGL_GREEN_BITS_ARB, WGL_BLUE_BITS_ARB,...};
for (int i=1; i<formats+1;i++)
{
fprintf(fp, "PF #%d ", i);
if ( wglGetPixelFormatAttribivARB(hDC, i, 0, size, iAttributes, iResults) )
{
fprintf(fp, "WGL_PIXEL_TYPE_ARB = %d", iResults[0]);
fprintf(fp, "\tWGL_COLOR_BITS_ARB = %d", iResults[1]);
fprintf(fp, "\tWGL_RED_BITS_ARB = %d", iResults[2]);
fprintf(fp, "\tWGL_GREEN_BITS_ARB = %d", iResults[3]);
...
...
...
}
}
the stuff this simple app logs generally look right...expect for one value: WGL_SUPPORT_GDI_ARB. Now this should result in a one or zero value. but i think the wglGetPixelFormatAttribivARB method isn't assigning anything to this. The following lines should illustrate my problem:
PF #1 WGL_PIXEL_TYPE_ARB = 8235 WGL_COLOR_BITS_ARB = 32 WGL_ALPHA_BITS_ARB = 8 WGL_DEPTH_BITS_ARB = 24 WGL_NEED_PALETTE_ARB = 8231 WGL_NEED_SYSTEM_PALETTE_ARB = 0 WGL_SWAP_LAYER_BUFFERS_ARB = 0 WGL_NUMBER_UNDERLAYS_ARB = 0 WGL_TRANSPARENT_ARB = 0 WGL_SUPPORT_GDI_ARB = -858993460 WGL_SUPPORT_OPENGL_ARB = 0 GL_ACCUM_BITS_ARB = 1 GL_ACCUM_RED_BITS_ARB = 0 GL_ACCUM_BLUE_BITS_ARB = 0 GL_ACCUM_ALPHA_BITS_ARB = 0
PF #2 WGL_PIXEL_TYPE_ARB = 8235 WGL_COLOR_BITS_ARB = 32 WGL_ALPHA_BITS_ARB = 0 WGL_DEPTH_BITS_ARB = 24 WGL_NEED_PALETTE_ARB = 8231 WGL_NEED_SYSTEM_PALETTE_ARB = 0 WGL_SWAP_LAYER_BUFFERS_ARB = 0 WGL_NUMBER_UNDERLAYS_ARB = 0 WGL_TRANSPARENT_ARB = 0 WGL_SUPPORT_GDI_ARB = -858993460 WGL_SUPPORT_OPENGL_ARB = 0 GL_ACCUM_BITS_ARB = 1 GL_ACCUM_RED_BITS_ARB = 0 GL_ACCUM_BLUE_BITS_ARB = 0 GL_ACCUM_ALPHA_BITS_ARB = 0
PF #3 WGL_PIXEL_TYPE_ARB = 8235 WGL_COLOR_BITS_ARB = 32 WGL_ALPHA_BITS_ARB = 8 WGL_DEPTH_BITS_ARB = 24 WGL_NEED_PALETTE_ARB = 8231 WGL_NEED_SYSTEM_PALETTE_ARB = 0 WGL_SWAP_LAYER_BUFFERS_ARB = 0 WGL_NUMBER_UNDERLAYS_ARB = 0 WGL_TRANSPARENT_ARB = 0 WGL_SUPPORT_GDI_ARB = -858993460 WGL_SUPPORT_OPENGL_ARB = 0 GL_ACCUM_BITS_ARB = 1 GL_ACCUM_RED_BITS_ARB = 64 GL_ACCUM_BLUE_BITS_ARB = 16 GL_ACCUM_ALPHA_BITS_ARB = 16
PF #4 WGL_PIXEL_TYPE_ARB = 8235 WGL_COLOR_BITS_ARB = 32 WGL_ALPHA_BITS_ARB = 0 WGL_DEPTH_BITS_ARB = 24 WGL_NEED_PALETTE_ARB = 8231 WGL_NEED_SYSTEM_PALETTE_ARB = 0 WGL_SWAP_LAYER_BUFFERS_ARB = 0 WGL_NUMBER_UNDERLAYS_ARB = 0 WGL_TRANSPARENT_ARB = 0 WGL_SUPPORT_GDI_ARB = -858993460 WGL_SUPPORT_OPENGL_ARB = 0 GL_ACCUM_BITS_ARB = 1 GL_ACCUM_RED_BITS_ARB = 64 GL_ACCUM_BLUE_BITS_ARB = 16 GL_ACCUM_ALPHA_BITS_ARB = 16
Do you think this could be a bug or something? I get the same thing when i look in the debugger(so i'm not printing out the wrong type). I'm running ATI 9600 with the latest Cat drivers and Win98. Thanks for ur responce.
[edited by - _walrus on August 10, 2003 7:28:33 PM]