I'm coding 3D engine and I have a question about pixel format. In Direct3D I have an ability to detemine, if back buffer pixel format, depth-stencil format, acceleration and etc. are supported by video card in certain video mode, before actually switching into this mode. So I can allow user to choose this settings via UI, by building a list of available modes and formats. But in OpenGL settings are split into two pieces. I may build list of available video modes via EnumDisplaySetting and list of available pixel formats via DescribePixelFormat. But I'm not sure, if I have to switch into demanded video mode before trying to build list of pixel formats or not? Is results of DescribePixelFormat dependant on current video mode or this list stays unchanged after video mode switch? For example. 32bpp pixel format is listed as supported in 32bpp video mode. If I'll switch into 16bpp mode then, will this 32bpp back buffer pixel format still supported with guarantee on all of the cards or not? Will list of pixel formats change to reflect change of video mode or not? I can't find information about this in any documentation.
P.S. Yeah, I know about ChoosePixelFormat, which searches for closest available pixel format, but I want to allow user to choose that format which is available on their video card.
P.P.S Sorry for my bad English.