Summer update 2021: getting rid of dependencies

Photo by Nattu Adnan on Unsplash

I have been away from this site for a long time. I was busy buying a house and preparing a wedding, and my motivation took a serious hit.

Things are starting to calm down so I will hopefully write more posts from now on.

I removed some pages from the site that I deemed not in line with what I want to present, from now on it will be more to the point, which is mostly recording programming updates on ame project.

In that regard, I have made some progress recently.

Having third party code dependencies is always something I wanted to get rid of. One idea behind ame is keeping it simple and retaining as much control as possible.

Before I had a separate build script to build third party sources in all correct configurations. Sometimes that needed some minor changes in project files, adding maintenance every time I wanted to get the latest versions of those sources.

Dependencies removed:

  • glew: as it turns out, the limited use of OpenGL doesn’t require a lot of functions to load, so I was got rid of the glew dependency quite easily and write a simple loader (this article was very useful)
  • libpng and libjpeg: I have implemented working versions of BMP and GIF formats, that is more than enough to work with images at this point
  • zlib: I don’t need great compression but just compression, getting GIF format to work came with LZW encoding, which is fast and efficient enough for what I need

Of course there are still dependencies to platform code and OpenGL, but that made ame codebase a lot lighter, of course it has a good effect on binary file sizes.

What am I working on next?

The current version of bitmap fonts is dependent on being able to render all characters from a system-installed font. It works well on Windows thanks to GDI, but as I plan to make ame multiplatform, that goes out the window for other platforms.

An idea starting to form is to create my own font renderer. A simple method I think I can pull off at first is using some kind of dot-matrix system.

Beyond that I plan to continue implementing tutorials from LearnOpenGL to incorporate the ideas and techniques in the tools.

%d bloggers like this: