About MicroGlut

This page is abandoned! MicroGlut will now be in my packages archive, part of the computer-graphics.se pages. Here.

MicroGlut is a stripped-down portable API for window and event handling in OpenGL applications. As the name implies, the API is based on the de facto standard GLUT (OpenGL Utility Library) and its more current free clone FreeGLUT. (GLUT is abandoned but FreeGLUT is updated and perfectly usable.) The code is, however, not based on neither.

MicroGlut is based on the following ideas:

1) It should be small, few files, suitable for inclusion in your projects as source, ready for editing any time you like. In this sense, it is inspired by another small unit, named Pez, which also is intended to plug in as source.

2) Don't change what's good. GLUT is a great API, so let's follow that as closely as possible. The callback system is highly portable between languages and easy to learn.

3) Ditch all that is bad, outdated or of minor importance. GLUT includes support for a lot of obscure input devices.

It is notable that GLUT's geometry calls, like glutSolidSphere and the Utah Teapot, are not currently included. Are they really that important? I fear that including them would make MicroGlut too big, make it impossible to keep it "micro" and make it into a plain FreeGlut clone.

4) It should focus on modern OpenGL. It is usable from OpenGL 2 (currently only if you change the context initialization), but the focus is on OpenGL 3.2 (and better).

5) Add new features that it needs. So far, very few new calls are introduced. New features not avaiable in GLUT:

This means that MicroGlut CAN:
but it can NOT

These lists will change a bit over time but my ambition is to keep it tight, much tighter than the alternatives.

Mac version

The Mac version was the first one I made. It is based on NSOpenGL, written in Objective C. It is the most complete version, although the Linux version is catching up.

Linux version

The Linux version lacks menu support but is otherwise pretty usable. IMHO the fixes and additions from 150205 might be what makes it satisfactory.

Windows version

The Windows version has been available since august 2015, when I felt it was mature to use... with caution. By 2017, it is even more mature, but just like the Linux version, menu support is still missing. In 2020, I moved to MinGW and CodeBlocks which made it much better.

Downloads

The latest MicroGlut is part of my "common" archive for my computer graphics labs (link to 2017 version):

common.tar.gz

Here are some older versions:

Here is MicroGlut source-code for Mac:

MicroGlut-mac-150424.zip
MicroGlut-mac-150205.zip
MicroGlut-mac-140213.zip
MicroGlut-mac-10-sep-2013.zip

and for Linux:

New version as of 150303: MicroGlut-linux-150303.tar.gz
New version as of 150205: MicroGlut-linux-150205.tar.gz
New version as of 140402: New MicroGlut version for Linux.
MicroGlut-linux-23-oct-2013.tar.gz
MicroGlut-linux-10-sep-2013.gz

and Windows:

First beta 150817: psychteapot+MicroGlut-Windows-b1.zip

License and such legal stuff

Considering all the problems with GLUT not having a licence that allowed people to distribute changes (which is why it died when the author abandoned it), what is the license for MicroGlut? Well, at this early stage I havn't bothered much about it. It is a small package, does it need a license? If it gets popular it will get one, and I promise that it won't be restrictive. You will be allowed to redistribute changes (as long as the source is clearly stated), and you will be able to use it in commercial projects. I consider Public Domain or something like LGPL. Probably Public Domain.