What OpenGL Implementation Do Real Games Use?

Started by
13 comments, last by Brother Bob 11 years, 2 months ago

For the OPs benefit - GLUT, GLFW, etc are nothing more than helper libraries. Their job is to deal with the painful (and non-cross-platform) task of creating a window, initializing a GL context, getting function pointers, etc. This next bit is important. Aside from that, they really have nothing much to do with GL itself; they just wrap the native API calls that would otherwise be used to get things up and running.

One major reason why they exist is for e.g. tutorials, sample code, and the like. The native API code to do all this stuff can be huge, and when you're making a tutorial you really don't want the tutorial-specific code to be swamped by all of this extra stuff. You want to focus on the lines of code that are relevant to the tutorial.

They can also serve another purpose in terms of providing a (at least) reasonably cross-platform way of getting a GL context up. Some even provide other services (input, sound, etc) which may range in implementation from simplistic to comprehensive, but for the purposes of OpenGL itself, once that context is up, they step back and everything is just native GL code from there.

If you want to see how a real-life commercial game handles window and GL context creation, you could do a lot worse than look at the source code for one.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

Advertisement

In Mac, I have no idea how it works, but afaik Apple controls the implementation being shipped.

I've read Apple provides some lower level API that driver developers code for. So Apple gets a hold of everything down to which gl calls can be made and then gives control to the driver implementation. That's all I know though...

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator

This is a year-old article explaining what is still mostly the current situation with Mac OS X.

http://renderingpipeline.com/2012/04/sad-state-of-opengl-on-macos-x/

L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

Define what an “actual” 3D game is?

Sorry for being ambiguous, but what I meant by an "actual" OpenGL graphics application is something that utilizes the 3D capabilities of OpenGL, and isn't just drawing quads to the screen.

So if I had a list of all the things I need, and only the things I need, would this be correct:

1. opengl32.lib OR opengl32.a

2. gl.h

3. glew

4. glext

5. glu

6. wglext

C dominates the world of linear procedural computing, which won't advance. The future lies in MASSIVE parallelism.

edit: I misread one of your points which made my response quite strange and incorrect. I'm rewriting it from the beginning in case someone read my old one.

Point 1 and 2 are necessary and are shipped with your compiler, or at least installed if you install any OpenGL distribution. Point 3 and 4 are necessary, and point 5 is useless, if you intend to go with the modern approach of OpenGL. Point 6 is necessary for the same reason, and not needed if you're not going with the modern approach, but it's for Windows only. You may need glxext to access the GLX extensions for other platfoms as well.

This topic is closed to new replies.

Advertisement