Jump to content
  • Advertisement
Sign in to follow this  
vertexShaded

OpenGL opengl implementations

This topic is 3338 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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

Share this post


Link to post
Share on other sites
Advertisement
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.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!