   opengl implementations
  Hi,I had some questions about the difference between a hardware and software implementation of OpenGl.First of all, I know that the windows software implementation resides in opengl32.dll. Where does the hardware implementation of my graphics card lie on disk? is it part of the device driver?Secondly, I only include a <gl.h> header file in my programs. So how does my program know whether to use the window software implementation or the hardware implementation. (Its actually using the hardware implementation because glGetString(GL_VENDOR) displaye nvidia corporation). If its windows that decides whether to use a software or hardware implementation, would my programs still run if I remove opengl32.dll from my system?Cheers   
  On windows, you are always using Microsoft's implementation of OpenGL. This implementation, however, have a mechanism where third parties can plug their own implementation into it to replace it. This is usually done when installing the device driver. When calling a function, the function basically goes to Microsoft's implementation and is then rerouted to the specific hardware driver if one is installed.If you examine the driver installed, you will find that you most likely cannot load any OpenGL symbols from it. If you want to manually load any OpenGL function, you have to load it from opengl32.dll, whether you have a driver installed or not, and whether you want to use the hardware implementation or not. This is also the reason why you must load extensions with wglGetProcAddress, instead of GetProcAddress, which loads from a generic DLL.So if you remove opengl32.dll? You definitely should not do that. It is a system DLL; a part of the operating system itself. But let's say you do it, you cannot gen any OpenGL application to work. Everything is done via opengl32.dll.   