Java™ Binding for the OpenGL® API, Version 1.1.1 Change Log

This change log document contains the proposed changes for the Java Binding for the OpenGL API, Version 1.1.1. These changes are the result of discussion on the JOGL forum.

The changes have already been integrated into the daily and milestone implementation builds that can be found at the JOGL java.net site. The latest version of the proposed 1.1.1 specification that integrates all of the proposed changes found in this document can also be found there.

Proposed Changes

This is the list of the proposed changes for the Java Binding for the OpenGL API, version 1.1.1.
  1. Add GLUnurbs to the GLU package
  2. Add NURBS methods to the GLU class

1. Add GLUnurbs to the GLU package

We propose to add a marker interface, GLUnurbs, to the javax.media.opengl.glu package, in support of the NURBS-related functionality described in the next section.

This interface has no methods or fields.

   package javax.media.opengl.glu;
   public interface GLUnurbs {}

2. Add NURBS methods to the GLU class

We propose to add a subset of the GLU NURBS functions as methods on the javax.media.opengl.glu.GLU class.

While these methods are only a subset, they are useful enough in and of themselves to warrant exposing them. Exposing all of the GLU NURBS APIs is a significant task and to date the resources have not been available to provide a full implementation.

We are grateful to Tomáš Hráský, a student at the University of Hradec Králové in the Czech Republic, for his substantial contribution of the code implementing these APIs.

   public void     gluNurbsProperty   (GLUnurbs r, int property, float value);
   public GLUnurbs gluNewNurbsRenderer();
   public void     gluBeginCurve      (GLUnurbs r);
   public void     gluBeginSurface    (GLUnurbs r);
   public void     gluEndSurface      (GLUnurbs r);
   public void     gluNurbsSurface    (GLUnurbs r, int sknot_count, float[] sknot,
                                       int tknot_count, float[] tknot,
                                       int s_stride, int t_stride,
                                       float[] ctlarray,
                                       int sorder, int torder, int type);
   public void     gluNurbsCurve      (GLUnurbs r, int nknots, float[] knot,
                                       int stride,
                                       float[] ctlarray,
                                       int order, int type);
   public void     gluEndCurve        (GLUnurbs r);