Microsoft OpenGL & DST_ALPHA

I read in the OpenGL FAQ that Microsoft’s implementation does not support destination alpha in software. Can video cards which support it in hardware use DST_ALPHA, or is it completely unavaliable under Windows? If it is avaliable, which video cards support it, or how can I find out at run-time in a program if it is supported? Any help would be appreciated a lot.

Well, you can call DescribePixelFormat() for the selected format and check the buffer alpha bit count in the PIXELFORMATDESCRIPTOR struct. That’ll tell you whether you have destination alpha or not. Dunno about the other questions though; sorry.

I think I figured it out. I checked nVidia’s website, and they claimed that the TNT, which I use, has destination alpha support. So I did a little test program and it worked. I think that it needs to render in 32 bit color, though. Thanks, MikeC.

I tried it in 16 bit color and it worked too.
Now I’m really confused!

Maybe it works, but call DescribePixelFormat() and check the alpha bit count - maybe, you have just 1 alpha bit.

There are 3 most popular 16bit pixel format:


Well, maybe it works, but remember that only the last generation cards can support the alpha bitplane, so all the computers on wich your program will run will need a TNT or GeForce. If you want your app to run on any computer, you must not use an alpha bitplane.

Originally posted by j:
I tried it in 16 bit color and it worked too.
Now I’m really confused!

Are you sure you didn’t end up in a MS GDI Generic Implementation? Check the GL_VENDOR.

Also there are some older boards like Permedia2 based ones which do not support alpha blending with “DST” in the formula.