Is gluPerspective deprecated?

Started by
10 comments, last by TheChubu 11 years, 4 months ago
I am currently using gluPerspective to setup my perspective projection. Since I want to use OpenGL 4.0 I have substitute code to setup perspective. Should I avoid using gluPerspective? What can happen in the long run if I use deprecated functions?
Advertisement
glu* can't be deprecated, because glu* functions aren't part of OpenGL to begin with, they're part of a GL utility library that has many alternatives.

[edit]n.b. this doesn't mean you should be using it -- it's just a wrapper around other GL functions, which may themselves be deprecated[/edit]
ok thanks
It's true that gluPerspective is just a software helper function, but -- it will most likely call either glFrustum or glLoad/MultMatrix internally (haven't checked and would be implementation-dependent anyway - although glLoadMatrix would violate spec) and those calls ARE deprecated.

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

i looked around the web on this there is some conflicting information stating 'opengl 3+ doesn't support gluPerspective' and there are the once that state like Hodgman said 'glu is not part of opengl so it is still valid'. I checked opengl spec file i found on opengl.org it seems that it is not deprecated after all.
Lets solve it in the simplest way. Create a core GL context and call the function you want. If it works, it is not deprecated. glu is not the part of the core functionality, so it cannot be deprecated directly, but it uses deprecated (legacy) commands, so it cannot be executed in the core profile. In short, it is not deprecated since it has never been the part of the core, but it cannot execute in core context now.
Sorry for this post. Combination of Android, Opera Mobile and scripts on this page generated two identical posts. Since there is no way to delete a post (reqest for the administrator/web master), I had to modify it.
i just tried this with GLFW and gluPerspective works in core profile
And what do you expect to happen when you call it, even if there is no error reported? The function operates on the current matrix stack, but there is no such thing in a core context.

And what do you expect to happen when you call it, even if there is no error reported? The function operates on the current matrix stack, but there is no such thing in a core context.


Yup, this basically.

If gluPerspective works in your tests, all that means is that your GL implementation is not fully conformant in that it's allowing you to do things in a core profile that you should not be allowed to do. So the fact that it works is something you should most definitely not be relying on, because a future driver revision, or other hardware, could quite easily break it.

If you want to construct a perspective matrix there is a much easier way that will work in all cases. Just grab a sample implementation of gluPerspective from something like Mesa and re-implement it in a conformant manner. Or better yet, use a tried and trusted matrix library that will already contain a routine for constructing a perspective matrix.

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

This topic is closed to new replies.

Advertisement