There are none. What you'll get in the NV SDK are NV-specific libs, but unless you're happy at the prospect of your program running on NV hardware only you'd be well-advised to avoid them. For general vendor-agnostic programming there are no official latest libs, so you need to use the extension-loading mechanism to access higher level functionality. The general advice you'll get is that life is too short to do this by hand so you should use something like GLEW instead.
Hrm, not sure I'm following. Yeah, for extension handling I would use something like GLEW, but I'm just talking about the OpenGL and GLU libraries in and of themselves.
In any of the Nvidia SDK's I got *NO* OpenGL or GLU libs, not NV-specific nor otherwise.
I'm not entirely sure why it's so hard to find them...most Linux distributions have a relatively recent version of BOTH (OpenGL and GLU) in the repos...but for Windows, a MUCH more common system, I can't find shit except the ancient (1.1?) version that comes with MS? And that's all I can ever use unless I want to bind it to one card manu? Why isn't it this way in Linux?
Kind of confused here..
This gets repeated so many times, that we explain it in the Wiki.
http://www.opengl.org/wiki/FAQ#How_D..._On_Windows.3F
also
http://www.opengl.org/wiki/FAQ#Where_can_I_download.3F
also
http://www.opengl.org/wiki/Getting_started
The bottom line is, opengl32.lib has never been updated (the latest version is from 1995). It is for GL 1.1.
If you want to access higher versions, use a library such as GLEW. GLEW isn't just for extensions. It is for getting function pointers for EVERYTHING beyond GL 1.1.
As for GLU, I already mentioned to get it from www.mesa3d.org.
They provide the latest version which is 1.3 (probably from 1995 as well).
Ok, so before this turns into a 10 pages discussion, just get yourself an extension loader and enjoy GL 4.2 or whatever it is that your video card supports.
As for GLU, it is old crap but if you insist, www.mesa3d.org and compile it yourself.
As for GLUT, once again, it is old crap. Use freeGLUT. http://freeglut.sourceforge.net
------------------------------
Sig: http://glhlib.sourceforge.net
an open source GLU replacement library. Much more modern than GLU.
float matrix[16], inverse_matrix[16];
glhLoadIdentityf2(matrix);
glhTranslatef2(matrix, 0.0, 0.0, 5.0);
glhRotateAboutXf2(matrix, angleInRadians);
glhScalef2(matrix, 1.0, 1.0, -1.0);
glhQuickInvertMatrixf2(matrix, inverse_matrix);
glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);
Ah, I didn't know GLEW did more than just extension handling. So if I'm understanding this correctly, with the most up to date version of GLEW, and the regular Windows provided OpenGL 1.1, I'll have *full* access to everything in OpenGL that my gfx card supports?
GLU is old crap? I'm not entirely sure what it does, but I know it has some primitives (spheres and such) as well as other functions that are 'on top of' OpenGL. I'll look more into its functionality, I thought it was necessary. The version I downloaded I believe is freeGLUT (3.6).
That first FAQ link explained a lot, I know it's a specification, not a lib, which is why I was trying to find the one produced by Nvidia. Though it seems the opengl32 that comes with Windows will take care of that. I'll try out some version checking.
EDIT:
I'm pretty new to compiling OpenGL in general, none-the-less in Windows where everything is twice as hard.
GLUT is not GLU; they have nothing to do with one another. Also, FreeGLUT's highest version is 2.8, so if you're using 3.6, you're not using FreeGLUT; you're using the old GLUT that you should never be using.GLU is old crap? I'm not entirely sure what it does, but I know it has some primitives (spheres and such) as well as other functions that are 'on top of' OpenGL. I'll look more into its functionality, I thought it was necessary. The version I downloaded I believe is freeGLUT (3.6).
Yeah, I never said OpenGL and GLUT were the same. It's GLU and OpenGL that I thought got packaged together at some point. I'll have to look into more about GLU when I get a chance, because I really don't get its ties with OpenGL, but moving that one function out of there.
Oh, nvm, I see where you got that from, thought the functions were gluSolidTorus... and gluSphere, etc. - haven't used those functions in ages.
Yeah, I have to do more reading to GLU's place in all this, I never really paid attention, just linked against it.
I'll switch over to free glut, though, thanks.
GL is a low level library for sending commands to the GPU (basically). It is on the same level as Direct3D.
GLU is another library that adds a few functions such gluOrtho2D, gluSphere, gluTesselator. It makes use of GL, but is is ancient compared to GL 4.2 core.
For example, gluSphere makes calls to glBegin, glVertex, glNormal, glTexCoord, glEnd, which are considered deprecated in modern GL.
gluOrtho2D uses glOrtho, which is also deprecated.
GLU is on the same level as D3DX, the Direct3D Utility library. But at least D3DX has kept up with Direct3D.
There are other libraries, created by people at home, that makes GLU obsolete.
In your case, you are only using gluOrtho2D, possibly the most useless function in GLU.
All it does is call glOrtho and sets znear to -1.0 and zfar to 1.0. Obviously, you can do that yourself.
------------------------------
Sig: http://glhlib.sourceforge.net
an open source GLU replacement library. Much more modern than GLU.
float matrix[16], inverse_matrix[16];
glhLoadIdentityf2(matrix);
glhTranslatef2(matrix, 0.0, 0.0, 5.0);
glhRotateAboutXf2(matrix, angleInRadians);
glhScalef2(matrix, 1.0, 1.0, -1.0);
glhQuickInvertMatrixf2(matrix, inverse_matrix);
glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);
... and completely removed from the core profile (and GL 3.1 IIRC).Originally Posted by V-man
Gotcha, I learned this stuff as 'necessary' - I didn't realize it was just utility functions. Thanks for the clarification
Yeah, that's exactly what I changed to get it to work without GLU.
Don't think it was 3.1. I'm using glVertex in my code and it's OpenGL version 3.2 via glGetString. The reason I'm using such an old function is simply because I only need to set some colors here and there (manually). Also, I don't know the newer OpenGL stuff, learned the old stuff, that's all I know.