In the docs for glfwCreateWindow, the first remark is:
Windows: Window creation will fail if the Microsoft GDI software OpenGL implementation is the only one available.
I’m a little confused about what this means. I know Microsoft has implemented some interface in the Windows API to support OpenGL, but I thought the actual OpenGL implementation is dependent on the graphics card vendors. Like, Windows API provides the interface to get an OpenGL rendering context displayed on a window’s device context. And I’m pretty sure a graphics card vendor determines what version of an OpenGL implementation the card can support (like the OpenGL 3.3 implementation, or 4.0 implementation).
So that remark sounds like the Microsoft has developed some default OpenGL implementation that all graphics cards are supposed to support (1.1 I’m guessing, looking at this msdn overview). Is this true? If so, then does the remark mean that if in glfwCreateWindow, glfw finds it must use this “default-like” implementation provided by Microsoft, it’ll actually return a failure status? If that’s the case, why is that? Is there something wrong with this “default-like” implementation, or is glfw designed to encourage programmers to use later versions of OpenGL? Just curious.
Also, does this imply that OpenGL is an extension to Microsoft’s GDI? I thought they were two separate things.