Let’s say I create an application. The source code references headers from the Mesa 3D Library and links to shared libraries libGL.so., libGLU.so, etc from the Mesa Library. Now, I copy my application to another linux workstation that has an accelerated OpenGL driver and libraries from the card manufacturer (let’s say NVIDIA for good measure). Since the Mesa API and OpenGL API has similar syntax (ahem), will the apllication still work?? I have not tried it yet because of time constraints, but I would like to be prepare for any issues. Can anyone put in there 2 cents?
your app should run without any problems. AFAIK the main reasons that mesa is not a certified OpenGL are legal stuff and the author does not own an OpenGL-License. However Mesa 3.3 passes most OpenGL-Conformance tests without problems. For additional info see the Mesa3d homepage ( http://mesa3d.sourceforge.net/ ) and/or the docs in the Mesa-distibution (e.g. docs/CONFORM).
Hope this helps and is valid for your stuff :-))
Compatibility of implementations is only partially solved by using a common API. There is now a defined ABI (Application Binary Interface) defined which provides a standard to ensure that you can compile with any compliant OpenGL and run with any compliant OpenGL. See: http://oss.sgi.com/projects/ogl-sample/ABI/