After understanding OpenGL expansion mechanism, I thought of a new question: In OpenGL, if some feature hardware is not implemented, can I use software implementation? Direct3D provides us with a "hardware Abstract Layer", through this layer, completely separated the application and hardware layer, the application can call any interface provided by Direct3D (you know Direct3D using COM), Do not consider hardware conditions. If the hardware supports this feature, how can hardware completion, otherwise the software is completed. Don't know if OpenGL does this similar mechanism? To understand this problem, you should understand OpenGL Specifications, OpenGL Implementations, OpenGL Extensions The relationship between. OpenGL Specification is the organization of OpenGL Architecture Review Board (OpenGL ARB) to maintain, which is actually a standardized product of OpenGL, namely a standard that OpenGL is universal throughout the industry. Different organizations and individuals can basically OpenGL Specification to write its own OpenGL Implementations, which is different versions of OpenGL API. With the continuous update of OpenGL Specification, new features continue to join, OpenGL Implementations should also be updated with OpenGL Sepciration updates, but Not like this. I think some reason is the writer of the OpenGL API. For example, our common OpenGL API is OpenGL implementation on the Windows platform, and Microsoft In order to promote its own DirectX, of course, there are not many OpenGL APIs. Interest. More important reasons lies in practical considerations: new features in OpenGL Specification become more complicated, the amount of operation is increasing, the software is implemented, there is no practical significance (for example, a frame take 10 minutes Will you still look?), So hardware manufacturers put forward the concept of "hardware acceleration (hardware acceleration", using hardware to complete the rendering process of huge compartments, the constant update of hardware products, constantly bring us visual Impact. And OpenGL flexible extension mechanism makes us easy to use any hardware from any hardware in the program (even if these new features do not appear in OpenGL Specification). We can certainly update the OpenGL API, make it satisfied OpenGL Specification, but this is not very significant, from the perspective of practicality It is only possible to implement an OpenGL basic framework, which can be used by OpenGL's extension mechanisms. I think I should be why everyone doesn't have much interest in updating the OpenGL API. Think about it, Microsoft's "sin" that Microsoft does not update the OpenGL API on the Windows platform can alleviate a little :).