Trying to comprehend OpenGL

Started by
11 comments, last by Koehler 11 years, 6 months ago
I'm coming from having worked mostly with Direct3D and only a small amount of OpenGL 1.x knowledge, and now that I'm trying to learn the ins and outs of modern OpenGL I'm having a very hard time understanding a few things, but none more than this business with deprecation. I'm trying to figure out what features I should or should not be using if I want to keep my code very core/forward compatible thing-a-ma-bob. I'm targeting 4.x specifically. Why is there no concise information available about what IS and IS NOT considered deprecated?

Even more confusing is when I run into things like this: I read online that GL_EXTENSIONS is deprecated in 3.0, so why on Earth can I still use it when I am using the latest glcorearb.h and a 4.2 core profile forward compatible context? I thought it was supposed to be removed for forward compatible contexts.
Advertisement
I came across these official quick reference cards a few months ago, I saved them for when I later use OpenGL. Maybe they can help? They color-code the deprecated functions, it looks like.
There are plenty of tutorials focusing on the modern API. You can start looking at the Getting Started box in the OpenGL forum for a few of them. If you want a concise list of what's deprecated and what's not, check the quick reference card at the OpenGL Registry. At the registry you can find the API documentation as well which has all the information about deprecated functions but not as a very concise list of course.

Even more confusing is when I run into things like this: I read online that GL_EXTENSIONS is deprecated in 3.0, so why on Earth can I still use it when I am using the latest glcorearb.h and a 4.2 core profile forward compatible context? I thought it was supposed to be removed for forward compatible contexts.

Either non-conforming driver (i doubt it a bit, what GPU?) or you do not have a forward compatible context. Sure you set it up correctly (drop code)?

Trivia: Glew uses that deprecated function which causes a crapton of errors - iirc, one has to allow use of experimental extensions to make glew use the proper functions to get around the problem.

Either non-conforming driver (i doubt it a bit, what GPU?) or you do not have a forward compatible context. Sure you set it up correctly (drop code)?

Trivia: Glew uses that deprecated function which causes a crapton of errors - iirc, one has to allow use of experimental extensions to make glew use the proper functions to get around the problem.


AMD HD 5850 and glGetString(GL_VERSION) is reporting a 4.2 core peofile forward-compatible context, and glGetString(GL_EXTENSIONS) still works without any errors.
AMD tends to be more strict about spec than NVIDIA (for circumstantial reasons), but seems they do not bother to disable that function ... understandable. One of course should not use the function regardless of whether it works with one-or-other driver. I recommend to get a debug context with all the debugging bells and whistles enabled (not available on my hardware, so not sure about their quality currently) or use gDebugger (which definitely does the job) to highlight that kind of problems.
Hi,

A quick question: Does OpenGL deprecated features ever force the GD to change game code?



Clinton

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer


Hi,

A quick question: Does OpenGL deprecated features ever force the GD to change game code?



Clinton

If the rendering code and the game code are sufficiently separated, then you don't have to modify the game code.
Is OpenGL ever a part of a render engine (separated) (or a game engine source code) or is OpenGL a part of the framework?


Clinton

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer

Yes, it can be part of both a rendering engines and frameworks. It is wherever you, or some third party library, use it.

This topic is closed to new replies.

Advertisement