![]() |
|
Scaled font print call? |
TrippleG93
Member #16,156
January 2016
|
The game that I am trying to create scales all my images to fit the middle of the screen. Thus if the game is 640 by 480 it will scale it on a computer screen that is 1080 * 720 and so forth. When I print a scaled bitmap the coordinates change to negative coordinate (I don't know why but I have adjusted to that) The problem I am running into is that for bitmaps there is a function call called Here is an example
- al_draw_text(font, al_map_rgb(red, green, blue), xPosition, yPosition, NULL, text);
If anyone knows a solution or has advice it would be much appreciated thank you |
Mark Oates
Member #1,146
March 2001
![]() |
Yes, there are no functions to scale fonts. The current way to draw a scaled font is to draw your text to a separate ALLEGRO_BITMAP. Then, draw a scaled bitmap. It might be something like this: 1ALLEGRO_BITMAP *create_text_render(ALLEGRO_FONT *font, ALLEGRO_COLOR color, const char *text)
2{
3 ALLEGRO_STATE previous_state;
4 al_store_state(&previous_state, ALLEGRO_STATE_TARGET_BITMAP);
5
6 int bitmap_w = al_get_text_width(font, text);
7 int bitmap_h = al_get_font_line_height(font);
8 ALLEGRO_BITMAP *text_render = al_create_bitmap(bitmap_w, bitmap_h);
9
10 al_set_target_bitmap(text_render);
11 al_clear_to_color(al_map_rgba_f(0.0, 0.0, 0.0, 0.0));
12
13 al_draw_text(font, color, 0, 0, NULL, text);
14
15 al_restore_state(&previous_state);
16 return text_render;
17}
^ This is not tested; there may be typos. Here's how it's done in AllegroFlare. |
TrippleG93
Member #16,156
January 2016
|
Thank You! I'll give that a try and I'll let you know how that goes. |
Chris Katko
Member #1,881
January 2002
![]() |
If the fonts are TTF, can't you just increase the font point size? Scaling small text to HD is going to be very ugly. -----sig: |
|