On 19 June 2015 at 21:10, Matteo Bruni matteo.mystral@gmail.com wrote:
Probably? I can think of two possible variations of the concept: either just pass the major / minor version pretty much directly to wglCreateContextAttribs() or make it a sort of a selector between "supported" GL versions (so it would be just 2.1 and 3.2 initially and be extended to other options in the future). I think I prefer the first option even though it gives the users more chance to shoot themselves in the foot.
The way I had imagined the different context versions working was that we'd essentially end up with an ordered list of versions to try. E.g. "4.0, 3.3, 3.2, 1.0". In that case you could just compare the versions in the list against the limit from the registry and skip them. So e.g. someone setting "2.1" would end up passing 1.0 to CreateContextAttribs(). (Note how that also works when adding support for newer context versions. You initially just add support and have to enable it in the registry. After a while you just bump the default value.) I guess passing the value directly to CreateContextAttribs() would also work, but I'm not sure I see what advantage that would have, and it may not end up being any less code. We'll probably want a winediag message in either scenario.