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.
- 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.