"Sswift, how do your text functions handle variable width fonts (e.g. the width between 'i' and 'W')? And also can you adjust the kerning?"
Each letter must be in a square of a fixed size in the texture, and the the program scans the image to determine the actual width of each letter when you load the font.
And yes, you can adjust the kerning.
"I bought sswift's system but found the text blurs out a bit. This is because the text is rendered as a texture so you don't get perfect pixel to pixel mapping."
What he means here is that in my GUI lib the text will be the same size in any screen resolution.
Only if you use a system where the text will be smaller in higer resolutions can you get perfect pixel to pixel matching. And only perfect pixel to pixel will be perfectly sharp.
The size of the text you use obviously makes a difference too whether it is sharp enough for your needs. A very tiny font might not look good in a low resolution.
But if what you want is your GUI to look exactly the same in all resoltions as they do in many games, then the way my GUI system works is right for you.
"Also, with the increasing number of widescreen TFT's on display, how well would the scaling work on non-standard aspect ratios?"
Well, when you use a resolution like 1280x1024, the pixels are not square. My GUI system has a function you call to correct for this change in pixel aspect ratio. As far as I know, it should work fine with any resolution, BUT, a display designed to be viewed on a 640x480 screen is not going to be able to be viewed properly on a wide screen anyway. Either the graphics would have to be stuck in the middle of the screen to keep the same layout, or they would be stretched wider than normal to keep the same layout. As far as I know, my system would stretch them as you might expect it to. I'm sure you could adjust this so it crops the top and bottom instead, and then have a different position for each GUI element based on whether you have a widescreen view or not.
Each letter must be in a square of a fixed size in the texture, and the the program scans the image to determine the actual width of each letter when you load the font.
And yes, you can adjust the kerning.
"I bought sswift's system but found the text blurs out a bit. This is because the text is rendered as a texture so you don't get perfect pixel to pixel mapping."
What he means here is that in my GUI lib the text will be the same size in any screen resolution.
Only if you use a system where the text will be smaller in higer resolutions can you get perfect pixel to pixel matching. And only perfect pixel to pixel will be perfectly sharp.
The size of the text you use obviously makes a difference too whether it is sharp enough for your needs. A very tiny font might not look good in a low resolution.
But if what you want is your GUI to look exactly the same in all resoltions as they do in many games, then the way my GUI system works is right for you.
"Also, with the increasing number of widescreen TFT's on display, how well would the scaling work on non-standard aspect ratios?"
Well, when you use a resolution like 1280x1024, the pixels are not square. My GUI system has a function you call to correct for this change in pixel aspect ratio. As far as I know, it should work fine with any resolution, BUT, a display designed to be viewed on a 640x480 screen is not going to be able to be viewed properly on a wide screen anyway. Either the graphics would have to be stuck in the middle of the screen to keep the same layout, or they would be stretched wider than normal to keep the same layout. As far as I know, my system would stretch them as you might expect it to. I'm sure you could adjust this so it crops the top and bottom instead, and then have a different position for each GUI element based on whether you have a widescreen view or not.