Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: Help specifying a custom charset  (Read 2793 times)

0 Members and 1 Guest are viewing this topic.

Prominence256

  • Newbie
  • *
  • Posts: 24
    • View Profile
    • http://GameMakerStation.110mb.com/
Help specifying a custom charset
« on: April 27, 2011, 07:53:21 am »
I downloaded this font from dafont and it was a .fon so I used fontforge to convert it to a .fnt so I could use it with SFML. According to fontforge, it uses the ascii characters from 32-255, but when I run the game the console prints out 'Failed to load font "Pokemon-11.fnt" (invalid charmap handle)'

This is my code:
Code: [Select]
Uint32 chars[] = {32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255};
Font font;
font.LoadFromFile("Pokemon-11.fnt", 11u, chars);
String test("Blah.", font, 16.f);
I made a little mini program to print out the line with all the numbers for me, so I'm pretty sure the numbers are right.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Posts: 32504
    • View Profile
    • SFML's website
    • Email
Help specifying a custom charset
« Reply #1 on: April 27, 2011, 08:01:40 am »
Fonts loaded by SFML must support the "Unicode" character map. This one probably doesn't support it.
Laurent Gomila - SFML developer

Prominence256

  • Newbie
  • *
  • Posts: 24
    • View Profile
    • http://GameMakerStation.110mb.com/
Help specifying a custom charset
« Reply #2 on: April 27, 2011, 08:02:32 am »
Is there a way i can convert it.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Posts: 32504
    • View Profile
    • SFML's website
    • Email
Help specifying a custom charset
« Reply #3 on: April 27, 2011, 08:37:12 am »
I have no idea.
Laurent Gomila - SFML developer

Prominence256

  • Newbie
  • *
  • Posts: 24
    • View Profile
    • http://GameMakerStation.110mb.com/
Help specifying a custom charset
« Reply #4 on: April 27, 2011, 08:59:00 am »
I noticed in fontforge there's an option to reencode the font, so I changed it to ISO8859-1 which is what the tutorial said was the default charset for sfml. I changed the charset definition to:
Code: [Select]
Uint32 chars[] = {32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287};Which is 32-127 and 160-287 but I still got the same error in the console.

EDIT: oops, I didn't actually read the message this time. The error was actually that the font was in an unknown file format.

EDIT: ok, I accidently saved the font wrong, so I fixed that and now the original error is back. :(

Laurent

  • Administrator
  • Hero Member
  • *****
  • Posts: 32504
    • View Profile
    • SFML's website
    • Email
Help specifying a custom charset
« Reply #5 on: April 27, 2011, 09:35:13 am »
Quote
I noticed in fontforge there's an option to reencode the font, so I changed it to ISO8859-1 which is what the tutorial said was the default charset for sfml.

This is not Unicode, this is Latin-1. Here I'm talking about the character maps that the font file declares, not the one that is used when you load the sf::Font. I think Unicode is "ISO 10646-1 (Unicode, Full)" in FontForge.

Quote
I changed the charset definition

You don't need to do so, it has nothing to do with your problem.
Laurent Gomila - SFML developer

Prominence256

  • Newbie
  • *
  • Posts: 24
    • View Profile
    • http://GameMakerStation.110mb.com/
Help specifying a custom charset
« Reply #6 on: April 27, 2011, 09:41:43 am »
Ok I reencoded it to that and used the default charset and it gave me the same error. Also, there are about 80 thousand symbols that aren't set in the font. Do I have to define them too?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Posts: 32504
    • View Profile
    • SFML's website
    • Email
Help specifying a custom charset
« Reply #7 on: April 27, 2011, 09:49:59 am »
I don't know much about font files, sorry. I can't help you more.
Laurent Gomila - SFML developer