I am sponsoring this fasttrack for Stefan Teleman, and have set the timeout for a week from now, next Thursday, January 21.
The case materials directory includes an additional document, glut-appendix-1.txt with a list of the functions in the GLUT API. -Alan Coopersmith- alan.coopersmith at sun.com Sun Microsystems, Inc. - X Window System Engineering Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI This information is Copyright 2010 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: GLUT 1.2. Name of Document Author/Supplier: Author: Calin Teleman 1.3 Date of This Document: 14 January, 2010 4. Technical Description Introducing GLUT [ The OpenGL Utility Toolkit ] with X11 in Solaris Stefan Teleman <stefan.teleman at sun.com> 7 January 2010 1. Summary and Motivation GLUT [ The OpenGL Utility Toolkit ] [0] is a collection of functions providing a standardized access to a windowing system and to various input devices, in a platform-independent manner, and within an OpenGL [1] Context. The main purpose of GLUT is the avoidance of clobbering the OpenGL namespace with device, platform and operating-system specific functions. This platform independence comes at the expense of full device interaction features availability, and some loss of programming flexibility. From the FreeGLUT page: GLUT (and hence freeglut) allows the user to create and manage windows containing OpenGL contexts on a wide range of platforms and also read the mouse, keyboard and joystick functions. GLUT also provides general-purpose APIs simplifying some standard OpenGL programming idioms. Absent these GLUT APIs, these idioms would have had to be duplicated by the application programmer, for every OpenGL application. GLUT was originally developed and maintained by Mark Kilgard at SGI, under a very restrictive license. The last release from SGI was GLUT 3.7, in August 1998. Due to the licensing restrictions imposed by the canonical GLUT 3.7 license, and to the fact that it has not had a canonical upgrade release since August 1998, the SGI GLUT releases are not being considered for integration, and will not be discussed further. The GLUT API had been frozen at Version 3 since August 1998, and the GLUT releases have been frozen at Version 3.7. According to the OpenGL GLUT information page: [0] The current [ GLUT ] version is 3.7. Additional releases of the library are not anticipated. The current version of the GLUT API is 3. The current source code distribution is GLUT 3.7. The FreeGLUT Project [2] is a compatible replacement for the GLUT API V3 [ SGI GLUT 3.7 ], and is released under the MIT/X Consortium License. The FreeGLUT Project has extended and upgraded the SGI GLUT API version to Version 4. [4] The GLUT API Version 4 is a fully backwards compatible superset of Version 3 of the SGI GLUT API. The latest release from the FreeGLUT project is Version 2.6.0, and implements the GLUT API Version 4. For the purposes of this document, the term GLUT and FreeGLUT are used interchangeably, and refer to the canonical releases from the FreeGLUT project. This Case seeks Micro/Patch binding. 2. Programmatic Facilities The SGI [ Version 3 ] GLUT API and the FreeGLUT [ Version 4 ] API are documented in detail at [3] and [4]. A complete list of all the public interfaces exported by GLUT is provided in Appendix 1 in the Case Materials. Version 4 of the GLUT API provides a Standard API, available via the freeglut_std.h header file, and an Extensions API, available via the freeglut_ext.h header file. Access to the Standard GLUT API is provided by the glut.h header file. Access to the Standard And Extensions API is provided by the freeglut.h header file. The current GLUT API depends on the X11 Display structure. It has not yet been ported to XCB. [5] [6] 3. Interface Considerations GLUT imports interfaces from OpenGL [ libGL.so.1 and libGLU.so.1 ]. This is an explicit dependency: internal GLUT header files explicitly include <GL/gl.h> and <GL/glu.h>. GLUT does not specify a lower bound OpenGL API Version. FreeGLUT compiles cleanly with OpenGL Version 1.5. Additionally, GLUT imports interfaces from the following X libraries: - libX11.so.4 - libXext.so.0 - libXi.so.5 - libXxf86vm.so.1 GLUT exports C and [ identical ] C++ interfaces. The GLUT API Version 4 maintains backward compatibility with Version 3 of the GLUT API. This Case proposes an overall Uncommitted Stability Classification for GLUT. It is not expected that GLUT will evolve in incompatible ways. The GLUT Interface Table is provided in the ARC Case Materials directory [ glut-interface-table.txt ]. 3.1. GLUT Objects Physical Object Description --------------- ----------- /usr/include/GL/glut.h Header file /usr/include/GL/freeglut.h Header file /usr/include/GL/freeglut_std.h Header file /usr/include/GL/freeglut_ext.h Header file /usr/lib/libglut.so.3 Shared library /usr/lib/libglut.so -> libglut.so.3 Symbolic link /usr/lib/${MACH64}/libglut.so.3 Shared library /usr/lib/${MACH64}/libglut.so -> libglut.so.3 Symbolic link /usr/share/doc/glut/html/download.html Documentation /usr/share/doc/glut/html/freeglut.html /usr/share/doc/glut/html/freeglut_logo.png /usr/share/doc/glut/html/freeglut_user_interface.html /usr/share/doc/glut/html/index.html /usr/share/doc/glut/html/ogl_sm.png /usr/share/doc/glut/html/progress.html /usr/share/doc/glut/html/structure.html /usr/share/man/man3gl/glut.3gl UNIX Manual Page libglut.so.3 Binding SONAME 4. Documentation Documentation in HTML format will be provided with the GLUT integration, in the standard Solaris HTML documentation location. A generic UNIX man page glut(3GL), pointing to the location of the full HTML documentation will also be provided. 5. Packaging SUNWglut - shared libraries, header files, pkg-config files, HTML documentation, GLUT man page. SUNWglut-demos - GLUT demos, example programs and their ancillary data. 6. References [0] http://www.opengl.org/resources/libraries/glut/ [1] http://www.opengl.org/ [2] http://freeglut.sourceforge.net/ [3] http://www.opengl.org/resources/libraries/glut/spec3/spec3.html [4] http://freeglut.sourceforge.net/docs/api.php [5] http://xcb.freedesktop.org/ [6] PSARC/2010/XXX Introducing XCB with X11 in Solaris ============================================= Interface Table for GLUT 4 [ FreeGLUT 2.6.0 ] ============================================= Exported Interfaces: Interface Stability Comments =============================================================== libglut.so.3 Uncommitted GLUT API V3 + GLUT API V4 Binding SONAME Imported Interfaces: Interface Interface Comments Classification ================================================================== libGL.so.1 Standard libGLU.so.1 Standard libX11.so.4 Committed libXext.so.0 Committed libXi.so.5 Committed libXxf86vm.so.1 External References: http://www.opengl.org/ http://www.mesa3d.org/ http://freeglut.sourceforge.net/ LSARC/1995/164 Extended Visuals for OpenGL LSARC/1996/049 OpenGL Solaris : A 3D Graphics API LSARC/2005/109 MESA OpenGL Open Source Clone [ libGLU.so.1 ] PSARC/2005/189 X client support for XFree86 extensions LSARC/2005/254 OpenGL 1.5 API LSARC/2009/066 OpenGL 3.0 API [ nVIDIA ] LSARC/2009/259 OpenGL 3.1 API [ nVIDIA ] LSARC/2009/569 OpenGL 3.2 API [ nVIDIA ] LSARC/2009/666 Update libX11 to 1.3 PSARC/2008/194 Update to libXext, libXevie & libXss PSARC/2009/303 Update libXi [ X Input Extension ] to 1.5 6. Resources and Schedule 6.4. Steering Committee requested information 6.4.1. Consolidation C-team Name: X 6.5. ARC review type: FastTrack 6.6. ARC Exposure: open