Posted: 19 Dec 2015 by Codehead
1 minute read
After ignoring the project for many years, I still get messages from people who use and enjoy Codehead’s Bitmap Font Generator. It’s great to hear the feedback and I’m glad to see that the tool is still useful. However, I don’t have time to update the code and add the features that people want.
It seems that rather than letting the code fester and fade on my HDD, it would be better to set it free and allow people to pull it apart, laugh at the warty bits and hack their own features into it.
So I’ve pushed the code to GitHub under the BSD 3-clause licence.
Enjoy! (and please don’t laugh at my code too much)
Posted: 17 Mar 2015 by Codehead
3 minute read
One of the big problems OpenGL runs into after you’ve got your first few polygons flying around the screen is the lack of a standard method for generating text within the API. A few techniques have evolved to tackle the problem: Pre-generated string textures The simplest and fastest method, a texture is pre-built for each piece of text that needs to be displayed. This is quick to render at run time, but isn’t very flexible or efficient.
Posted: 12 Oct 2006 by Codehead
2 minute read
I have written a few wrappers and objects for OpenGL during the development of AMBER. The first was a general OpenGL wrapper. This used the top left of the screen as the origin for orthographic projections, mainly because I was used to it being there and it avoided problems with mouse coordinates.
Next came the CBFG text class. This was intended to be dropped into other people’s code, so I used a bottom left origin as seems to be standard in OpenGL.
More recently I’ve incorporated my GUI class into the GL wrapper and bolted my text object onto it to provide textboxes, lists, etc…
This is where the problems began, the GL class and the GUI object use the top left as origin and the text class uses the bottom, so all the text in the controls was upside down.
I’ve rewritten the GL class and GUI class to use the bottom as the origin as this is the OpenGL way. However, it seems strange that every other system I’ve used treats the top of the screen as the Y axis origin. Why does GL have to be different? Is there any gain to be had by doing this? Or could I just fudge the projection matrix to use the top as the origin?
Ah well, it’s done now, I may re-visit this during optimisation, but that’s a long way off.