[Introduction] [Functionality] [Screenshots] [Download] [Development] [Licensing] [News] [Contact]

miniGL logo

Introduction

      The goal of the miniGL project is to allow for easy porting of 3D OpenGL® code to the PalmTM Computing platform. While the color-rendering abilities of the PalmTM OS are limited (pre-3.5), the general geometry transformations and rendering functions are to be supported. The purpose of this library, apart from being an intellectual pursuit, is to allow users the world of 3D interaction on the smaller, portable platform of PalmTM OS, for applications from mobile architectural modelers to interactive simulations or games. By allowing developers the ability to take OpenGL® code straight into the smaller platform, porting time is cut dramatically.

Functionality

      The miniGL library seeks to achieve OpenGL® 1.1 compatibility (at least in the sense that you can compile it; many functions will simply be stubs due to hardware limitations). The goal of the library is to allow compilation of GL code in a PalmTM development environment with changes only to the display- and machine- specific wrappers.

      v0.1. The first release, version 0.1, provides the basic set of functions to draw wireframe objects using GL_POLYGON and GL_LINES primitives. Both orthographic and perspective projections are supported.

Lighting test screengrab       v0.2. This recent release features the addition of the GL_QUADS, GL_TRIANGLES, and GL_QUAD_STRIP primitives, backface culling, initial diffuse lighting source support, double-buffering, and the start of color support with 4-bit greyscale (See the lighting test shot to the right).

      v0.3. Full lighting model support (diffuse, ambient, specular), color for the IIIc, floodfill, Gouraud shading. Start of z-buffer support for proper poly intersection and overlapping, greyscale support for 3.0 - 3.1 OS version.

      v0.4. Shared lib version. Smaller code segment compiled into apps using the lib. Separate .prc file now contains the miniGL lib code.

      The following list of GL and GLU functions are currently supported in the miniGL library. There is one supplied function external to the GL-spec which specifies where in the 160x160 window you desire the rendering context to appear (WinSetGLArea), so you can have the GL window within a larger form layout.

  • WinSetGLArea
  • glLoadMatrix
  • glMultMatrix
  • glLoadIdentity
  • glClearColor
  • glClear
  • glColor3f
  • glColor4f
  • glOrtho
  • glViewport
  • gluOrtho2D
  • gluPerspective
  • glEnable
  • glDisable
  • glBegin
  • glEnd
  • glFlush
  • glVertex2f
  • glVertex3f
  • glShadeModel
  • glRotatef
  • glScalef
  • glTranslatef
  • glPopMatrix
  • glPushMatrix
  • glMatrixMode
  • glNormal3f
  • glLightfv

Screenshots

      The obligatory screenshots. Well, the miniGL library isn't an application, per se, but a small test rig has been written to validate the rendering functionality using the miniGL API. Below are two screen shots of the miniGL test rig running in the PalmTM OS emulator on both the IIIx (sphere and cube with backface culling) and the V (lit, shaded cube). The test rig is available below in the download section.

screenshot 2
(click to enlarge)
screenshot
(click to enlarge)

Download

      The current release version is 0.4a. There is no stable version yet. The development version is available for download from the link below, but should be downloaded for curiosity's sake only at this point (please note that it's not very usable right now). The versions released before 3.6.00 require MathLib. This code was developed and tested on a Linux platform using GCC 2.7.2.2 with m68k hacks, prc-tools 0.5, pilrc 2.5a, and the newest PalmTM OS emulator. You'll need the newer SDK (3.1) if you want to use the greyscale support.

      The miniGL project has a CVS server hosted by sourceforge.net, a service of VA Linux Systems. To checkout the latest development snapshot, perform the following commands (if you're on a Linux box):

    % setenv CVSROOT :pserver:anonymous@cvs.minigl.sourceforge.net:/cvsroot/minigl
    % cvs login
    (no password; hit enter)
    % cvs co minigl

Future Development

      The version 0.4 release is scheduled for late March to include completed z-buffer support, full greyscale support for pre-3.3 OS versions, and completed Gouraud shading. Also present will be many optimizations in the mathematics routines to speed up frame rates. This upcoming release will perhaps even be what you would call an alpha release.

Palm IIIc color test       The current development roadmap calls for a few major leaps in capability in the version 0.3 - 0.5 release versions including, but not limited to, greyscale (16-color) flat shading of polygons, Gouraud shading, ambient, specular, and diffuse lighting, and a library of glut-style higher-level shapes such as spheres, cones, and Bezier spline curves. v0.4 will be focused mainly on optimizations and short cuts to get the frame rates up. v0.5 or so will no doubt have to tackle texturing. The goal of the final 1.0 release is to render a shaded and textured Utah teapot.

      If you wish to become a developer on the miniGL project please go to sourceforge.net, sign up for an account, then e-mail the project admin at mjsherman at users.sourceforge.net to be added to the developers list.

Licensing

      miniGL is copyright 2000 Digital Sandbox, Inc, and is released under the LGPL (GNU Lesser General Public License). Please read that license here. OpenGL and the OpenGL logo are registered trademarks of SGI. Palm is a registered trademark of Palm, Inc.

News

      5.15.00 - Long-awaited updates. Shared lib conversion just about done. Be sure to peruse the project page.
      3.10.00 - Opened a page at sourceforge.net so the project finally has a CVS server, message board, bug tracker, file release repository, etc. The project page is here.
      3.6.00 - Color support was tested on a Palm IIIc and it worked. See the screen shot up above in the devel section.
      3.4.00 - miniGL was mentioned on slashdot and many people volunteered to help out already. Please contact me at the e-mail address below if you're interested in helping.
      3.3.00 - miniGL was mentioned on the opengl.org main page.

Contact

      The developer of this code is Michael Sherman, software developer at Digital Sandbox, Inc.. If you have questions regarding this project or desire to assist in developing the miniGL library, you can contact him at msherman at dsbox.com.