   SDL TTF not working on some machines
  I am using SDL_ttf to create a texture containing all characters from ' ' to '~' and storing each letters position; this renders fine on some machines but on others instead of seeing the text I just see a white quad where the text should be.I am confused to why this could be? I know it's hard without code but is there some generalized conditions that may cause this behaviour?   
  How are you loading the fonts? Do you have lots of error checking, including use of TTF_GetError() when things go wrong?   ;  I use TTF_OpenFont to open the font, I check if the font has been loaded and throw an error including TTF_GetError()'s return value. So far none of the machines (including the ones it doesn't work on) have thrown an error.   ;  What about checking for errors on TTF_RenderText_*(), and (although far more unlikely) SDL_BlitSurface()?   ;  I'm using TTF_RenderText_Blended() however I wasn't error checking this. I have added an error check and will test it out and see if it gets me anywhere.Thanks.   ;  Maybe the white quads represent unknown characters.Are you sure you are not mixing character encodings?Can you post a part of your code?   ;  Okay, I've made progress. The problem isn't to do with the texture so it must be to do with the way I am accessing the positions of the letters.Basically the positions are stored in an array. I use the integer value of the character I'm trying to render as the index for the array, the only problem is that I need to offset this by a certain amount at the time when I was writing this code I wasn't sure what this offset would be and just used trial and error to work it out, I then used this value naively assuming it would be constant across all machines - how I was wrong.so the code looks something like this://filling the arrayfor(char c = ' '; c != '~'+1; c++){   //render letter   //add position to array}//accessing the position//let c be the the letter we want to renderint index = static_cast<int>(c) - 32;//access element at position "index"I now realise that, on my machine the char of value 32 is actually ' ', the starting position of my loop to fill the array. I think this may be the problem in that the integer value for ' ' isn't 32 across all machines and thus making it access the wrong element.So I think my code should actually say:int index = static_cast<int>(c) - ' ';I hope all that made sense ^_^If I am write in what I have said could somebody please explain or give me a link to a description as to why ones integer value may refer to a different character across different machines?;  This fixed the problem on some machines but it's still not working on others. I'm stumped, it's making the texture fine just failing to render it.;  Character constants are compiled into your code as a number, it won't change across different machines unless you build your program on different machines. Even then, most compilers will use the ASCII code.Have you tried blitting the full text surface to the screen, and seeing if your assumptions match reality? Are these entries actually blank on the different machines?Are you using a font that ships with your program or are you trying to load one from the OS?Can you post a minimal program that demonstrates this behaviour. It should be very basic, create a window, load the font, render some text (enough to show the error on these machines) and wait for the X button to be pressed. I'm not 100% sure of what your code is doing.   ;  I made a program to build the texture and save it, this worked fine and so the error can't lay with in the code for making the texture, at least I think so.I will put up the source for this program when I get chance.   