Jump to content

  • Log In with Google      Sign In   
  • Create Account

[C++] Problem with TrueTypeFont size?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
5 replies to this topic

#1 Acharis   Crossbones+   -  Reputation: 4003

Like
0Likes
Like

Posted 28 April 2012 - 03:15 PM

I wanted to render simple text (arial font, 16 pixels height). But when I create font via TTF_OpenFont(file, 16); the TTF_RenderText_Solid(font, string, color); renders text that look like around 12 pixels and rather distorted (actually, it does not look like any font size in graphics programs, it looks "broken" as if it was poorly resized). I have double checked the font and downloaded it from various sources, it is the proper "arial.ttf" (358 KB) so it can't be a problem here.

Any ideas where I should look? Something wrong in my code? Broken TTF library? Known bug in SDL?

Europe1300.eu - Historical Realistic Medieval Sim (RELEASED!)

PocketSpaceEmpire - turn based 4X with no micromanagement FB


Sponsor:

#2 AlanSmithee   Members   -  Reputation: 1063

Like
0Likes
Like

Posted 28 April 2012 - 05:52 PM

Some things that come to mind:

1. Are you calling TTF_Init() prior to using it?
2. Are you actually assigning the font variable with the line TTF_OpenFont(file, 16); ?
3. When rendering, is "string" a c string as oppsed to a std::string? (I guess this would give you a compiler error though)
4. Have you tried any other font to see if it works?

Edited by AlanSmithee, 28 April 2012 - 05:52 PM.


#3 Trienco   Crossbones+   -  Reputation: 2224

Like
0Likes
Like

Posted 28 April 2012 - 10:23 PM

Unless SDL made up their own definition of point size (and has a very misleading documentation), then 16pt does NOT mean a letter will be 16 pixels. Assuming that you are at 72DPI, then 16pt means the distance between two baselines are 16 pixels. For explanatory pictures: http://www.oberonplace.com/dtp/fonts/fontsize.htm

About the broken look, I'd first try different sizes to see if any of them look "right" and then make sure there is nothing going on that would cause any scaling.
f@dzhttp://festini.device-zero.de

#4 Acharis   Crossbones+   -  Reputation: 4003

Like
0Likes
Like

Posted 29 April 2012 - 03:20 AM

1,2,3 and 4 - yes, it renders as arial, it changes the size when I change the parameter, other fonts render as well, no errors at all.

In short everything is allright except that the final text looks ugly. Example:
http://i46.tinypic.com/1f8w7a.png (TTF_Init(); TTF_OpenFont(file, 16); TTF_RenderText_Solid(font, string, color); )
It should look, more or less, like this: http://i46.tinypic.com/5xqxb5.png
[ignore the black outline in the first image, it was done by rendering the same font 8 times with 1 pixel moved to make a simple outline, it is not related to TTF]

All I need is some normal font (like arial) that is not too big and does not look as if it was badly resized when rendered. Any clue how to achieve this?

Edited by Acharis, 29 April 2012 - 03:23 AM.

Europe1300.eu - Historical Realistic Medieval Sim (RELEASED!)

PocketSpaceEmpire - turn based 4X with no micromanagement FB


#5 AlanSmithee   Members   -  Reputation: 1063

Like
0Likes
Like

Posted 29 April 2012 - 05:13 AM

HI, ok.

Can I please see all code related to the surface being used as the screen, where you init it with SetVideoMode as well as when you render your text.

Thanks.

#6 Acharis   Crossbones+   -  Reputation: 4003

Like
0Likes
Like

Posted 29 April 2012 - 05:41 AM

OK, got it. It was a bug in older version of SDL_ttf.dll (2.0.7). Changing DLLs to 2.0.11 fixed the problem (the older compiled version works fine with it, just using the newest dlls without any recompiling is enough).

BTW, do you know where I can dowload SDL_ttf dlls for versions 2.0.10, 2.0.9 or 2.0.8? I would like to check if some versions before 2.0.11 works (also I've read some rumours that 2.0.11 has some problems, so I would like to have a stack of other versions so I can check these in case of further unexpected problems).

Thanks to everyone who tried to help :)

Europe1300.eu - Historical Realistic Medieval Sim (RELEASED!)

PocketSpaceEmpire - turn based 4X with no micromanagement FB





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS