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

Reply via email to