Welcome to the packages archive

by Ingemar Ragnemalm

This page contains different kinds of reusable code that I have made, packages that are made for plugging into your code, unlike the demos that are made to show how a technique work. Some of these are interfaces to other packages, while others are pretty much stand alone. There is various degrees of dependencies to the “common” files but I try to keep these minimal.

News 27th mayl 2022: SimpleGUI 0.4 released with several new features. However, every new feature makes it bigger, so I must be selective. Should I skip some?

News 4th april 2022: SimpleGUI is now tested on an M1 Mac with the lastest OS version, and it works perfectly. So what went wrong? I don’t know but right now I have 100% correct behaviour on a MacBook Pro and a MacBook Pro Retina, both with Intel CPUs, and a MacBook Air with M1. I can’t do more, so if you see the problem, I need your help! Will the problem appear only if it is compiled for M1?

News 31 march 2022: A problem with SimpleGUI has been found, where the drawing can get the wrong size on some Macs. It looks like a resolution problem, but I have tested on a MacBook Retina and there it renders perfectly. I suspect that it can be a bug in the most recent drivers. I hope to be able to find a fix soon.

News march 2022: Updated CallMeAl with looped sound support. New version of LittleOBJLoader, not yet in the common package. New version of LoadTGA, not yet in the common package. The new LittleOBJLoader makes one small change: It sets the shader in DrawModel so you don’t have to. The new LoadTGA is simplified to remove the need to load in power of 2 sizes. This was done in order to support old GPUs that we don’t have to care about any more. I think all these changes make sense but they need some testing before being integrated with the common package.

News february 2022: Major change: Branched out “packages” from the demo page. The packages remain at the demo page for a while but will eventually be only here. This will hopefully make the demo page less confusing.

News february 2022: SimpleGUI is released, and a few days later updated to version 0.1. New Mac version of MicroGlut (to hopefully fix the problems I had on recent lectures). New version of GLUGG.

News january 2022: common is updated, complete with the new version for Windows, now written for CodeBlocks and other MinGW based platforms.

News late december 2021: GLUGG 1.1 is now uploaded, with a number of new features.

News december 2021: The new MicroGlut for Windows has now been running in three new labs for TNM084 and has worked very well so far! I switched to Codeblocks for practical reasons (it was installed in the lab), and that worked just fine. The code on this page is currently not fully up-to-date since it needs to be syncronized and tested on Linux and Mac. The new versions are currently at the TNM084 page, including the latest version of GLUGG.

News may 24 2021: MicroGlut for Windows has a major overhaul coming up. Visual Studio caused so much problems, but now MicroGlut works just fine under MinGW/DevC++, so I am switching to that. (Using Visual Studio Code should work too - which is not the same as Visual Studio.) No more printf problems, fewer special cases in my code, no extra Windows code outside MicroGlut. PS: This was not correctly synched into the archive. I will fix that when I can. Until then, I can mail you the package as needed.

News may 7 2021: Added the OpenGL Utilities for Geometry Generation (GLUGG).

News april 29 2021: Updated common with some fixes in LOL and more. New version of simplefont. A number of pages with just a simple demo deleted and the content gathered under “Various”, in order to make the menu above shorter.

More NEWS february 2021: LittleObjLoader now has two more demos, “mteapot” and “tinkercar”, and is now in the main menu.

NEWS february 2021: New common and new Visual Studio version of Psychedelic Teapot. And after that, a new Mac version of MicroGlut.

NEWS august 2020: Back online after some changes due to a server move.

NEWS april 2020: A few updates to the “common” files.

NEWS january 2020: Added a “common code” page, to make the common code more visible and also a natural entry point to LittleOBJLoader ad LoadTexture.

NEWS november 2019: Uploaded, but not visible in the menu area (because I don’t really know where they should go), are two new packages, Little OBJ Loader and LoadTexture.

NEWS august 2019: A new demo added, showing how to save an OpenGL animation to a movie.

NEWS september 2017: New pages are being made for demos for TSBK03. Titles are marked TSBK03 to tell them apart. Some were already in the less elegant demo folder for TSBK03, but the compute shader demos are new. To begin with lecture 2 has been given a page with as much as six demos, and lecture 3 with four.

NEW VERSION as of march 2017! Links may be wrong, the layout may be changed… Opinions are welcome! This new version makes it easier for me to edit, easier to add pages, and it also seems to fix problems with some browsers that my old system had.

All code has been tested on MacOSX, Linux (CentOS and Mint). There are also a few demos that have been adapted for Visual Studio under MS Windows. There are many other development systems, but I can't support all, and if they are good, it should be easy to make it work under them.

Reusable code

These files are needed for ALL demos! (Well, at least some parts are used over and over.)

This package includes:

MicroGlut, a single file GLUT replacement/modernization with the essentials and no old OpenGL dependencies, available for Linux, OSX and Windows.

VectorUtils3, a fairly capable vector/matrix package.

loadobj, a model loader that loads a subset of the Wavefront OBJ format. (Parts written by Mikael Kalms.)

GL_Utilities, shader loader and more.

LoadTGA, loader for TGA images (simple lab-friendly image format)

LitttleObjLoader, a model loader that loads most models in the Wavefront OBJ format. (Parts written by Mikael Kalms.) Replaces “loadobj” which it is based on.

See the “common” page.

Note: Some demos are still written for loadobj. A fair number was updated to LittleOBJLoader in 2022 including one new demo that takes advantage of the new features.


common.tar.gz (updated 2022-01-13)

This page is maintained by Ingemar Ragnemalm.