17

Is there any comprehensive list on OpenGL 3.3 above, where I can find what functions are deprecated / not available anymore?

Say, glLoadIdentity() I don't know if it is removed or not.

I looked into the OpenGL 4.1 Reference Page and didn't find it there. Can I safely assume that its a removed function? Is this a way to know it the function exists anymore?

In the reference page it says that, "These man pages only document the core context." What does it mean by that? What are the things that are absent from that reference page?

What is compatibility profile? Is there any comprehensive list of features available on a particular version of OpenGL?

Nicol Bolas
  • 449,505
  • 63
  • 781
  • 982
Quazi Irfan
  • 2,555
  • 5
  • 34
  • 69
  • 1
    The core profile/context is OpenGL with all the deprecated stuff removed. The compatibility profile is for backwards compatibility, with all the deprecated stuff put back in. – Incredulous Monk Jul 08 '11 at 04:09
  • 1
    It should be also obvious for you that methods like glLoadIdentity are deprecated. Modern OpenGL enforces you to write your own matrices and pass those manually into shader programs. – Michael IV Apr 18 '13 at 17:45

3 Answers3

28

I've created this:

enter image description here

Hope it would be useful. Please fix any errors you can find.

Quazi Irfan
  • 2,555
  • 5
  • 34
  • 69
user206334
  • 850
  • 1
  • 8
  • 18
  • That just made me go :O. This is exactly what I am looking for. How did you do it? Did you parse doc/code or reverse engineer anything to sort it out? I am curious. – Quazi Irfan Apr 18 '13 at 09:39
  • 1
    @iamcreasy List of "core promoted" extensions are in the appendices of OpenGL specification. Also "ARB promoted" extensions are also listed. Whether extension is legacy was gleaned from gl.spec file (field deprecated). Each specification has a list a requirements and a specification version it was created against. – user206334 Apr 18 '13 at 10:20
  • 1
    **"I've created this!"** On the sheet there are multiple creators, so I don't think you're the creator. – vallentin Dec 14 '13 at 06:20
  • @VallentinI think he means he started the document. There's something in the document that says that the file is public editable and someone wrote that who started this was a good idea. – c_str Jun 20 '16 at 00:59
14

If you want a complete list of all functions that are deprecated, look at the gl.spec spec file meanwhile in XML (old format no longer available).

Each function that is deprecated has a deprecated entry followed by a version number.

Otherwise, for a high-level overview, see tjm's answer.

Damon
  • 67,688
  • 20
  • 135
  • 185
  • At least they allow to search into the file :D Where can I find information about what all the spec means? – Quazi Irfan Jul 04 '11 at 15:51
  • There are some comments at the beginning of the file, and sadly that's it. There are some other files that are meant to translate the pseudotypes used in the spec file into real types (such as `gl.tm`), too. But all in all, it's a bit of guesswork. The spec file is not 100% consistent everywhere either. The indented fields following a function are 99.9% correct (missing `alias` entry on `VertexAttribDivisorARB` being one notable exception). Often things are also communicated in comments and `passthru`, but those are very inconsistent in format and completeness - don't rely on those. – Damon Jul 04 '11 at 15:59
  • You mean, I shouldn't rely on the spec on the pages that you have given me? or the details are not 100% correct? I am a new learner and for me, just if deprecated or not-deprecated will be enough. Are this information is correct at least? – Quazi Irfan Jul 04 '11 at 16:06
  • 1
    p.s.: in case you wonder, I've been asking myself the exact same question as you did once and even wrote a spec parser / code generator to generate the minimum possible initialization code necessary for a given version/extension-list combination (yes, I know it's ridiculous, but I like small executables). – Damon Jul 04 '11 at 16:08
  • 1
    Like I said, you can rely on the spec that I linked to, if you stick with the actual data fields. There is a single entry that I know of that's missing (out of a thousand or so functions, which is a _quite_ good quality standard, probably better than most other docs). But: the comments and `passthru` sections spread throughout are tempting, since they offer concise info in easily readable form, and _those_ are _not_ always accurate, which is why I'm warning you about those. :-) – Damon Jul 04 '11 at 16:13
  • What about defines, is there a list of those and their deprecation status around somewhere? – Gordon Wrigley Nov 04 '11 at 13:14
  • They're not in the spec, however, the defines for each and every version (including deprecated ones) and extension are wrapped inside preprocessor guards inside `glext.h`, such as `#ifndef GL_VERSION_1_4_DEPRECATED`. Deprecated versions/features are luckily named in a quite obvious manner, which makes parsing really easy. – Damon Nov 04 '11 at 13:32
  • Or, you could parse `enumext.spec`, which contains these as well. But the format is not any easier than parsing the header. It _might_ make finding aliases easier if you're after that, but other than this there's little point. – Damon Nov 04 '11 at 13:40
  • The link to gl.spec seems dead (404). – cosarara97 Jan 10 '18 at 17:26
  • 1
    @cosarara97: You're right, the spec file was replaced with a similar (but incompatible) XML representation a while ago, and that one is well-hidden as well. I'll update the link. Thanks for noticing. – Damon Jan 11 '18 at 11:21
7

Not certain if this is what you are looking for, but if you got to http://www.opengl.org/registry/, there is a pdf of the "OpenGL 3.3 Core Profile Specification". On page 342 is "Deprecated and Removed Features".

There are also "Core Profile Specification"'s for 4.0 and 4.1, I assume they will have similar entries.

tjm
  • 7,500
  • 2
  • 32
  • 53