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, the general geometry transformations and wireframe rendering functions are to be supported. 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 PalmTM hardware limitations).

Functionality

      v0.1. The current 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.

      v0.2. This upcoming release features the addition of the GL_QUADS, GL_TRIANGLES, and GL_QUAD_STRIP primitives, backface culling, initial light source support, double-buffering, and color support with 2-bit greyscale.

      The following list of OpenGL 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. 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 (cone). The test rig is available below in the download section.

screenshot 2
(click to enlarge)
screenshot

Download

      The current development version is 0.1. There is no stable version. 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 source requires MathLib (available on any PalmTM software site, or from the link below). 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 Future

      v0.2 is expected in early March, 2000. The main features to be implemented for v0.2 include double-buffering (glFlush and glutSwapBuffers), hidden surface removal (glEnable( GL_CULL_FACE )), some beginning greyscale support, and the framework of a lighting model.

      Current development plans call for a few major leaps in capability, including, but not limited to, greyscale (4 or 16-color) flat shading of polygons, directional lighting, and a library of glut-style higher-level shapes such as spheres, cones, and Bezier spline curves. v0.3 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. Not looking forward to that. The goal of the 1.0 release is to render a shaded and textured Utah teapot.

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 is a registered trademark of SGI. Palm is a registered trademark of Palm, Inc.

Contact

      The author 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@dsbox.com.