CreateFont dla pliku

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

Witam.
W skrócie sytuacja wygląda tak, że mam pewien silnik 2D (ZenGL), posiada on natywne wsparcie dla czcionek, lecz jedynie jego wewnętrznego formatu, czyli należy przerobić czcionkę np.otf na ten jego format za pomocą specjalnego programu.
Ten "specjalny program" jest open-source, tak więc zobaczyłem jak tam jest to generowane i napisałem sobie odpowiednik, który generuje mi te czcionki bezpośrednio w kodzie gry.
Ta metoda generowania czcionek dla ZenGL korzysta m.in.z funkcji WinAPI CreateFont, która jako swój ostatni parametr przyjmuje nazwę czcionki zarejestrowanej w systemie.
I tutaj dochodzimy do meritum: czy istnieje jakiś sposób, by CreateFont przyjmowało nazwę pliku jako czcionkę?
W dokumentacji piszą, że ten ostatni parametr (czyli nazwa czcionki) to:

http://msdn.microsoft.com/en-us/library/windows/desktop/dd183499(v=vs.85).aspx napisał(a)

A pointer to a null-terminated string that specifies the typeface name of the font. The length of this string must not exceed 32 characters, including the terminating null character.

Czyli przykładowe wywołanie wygląda tak:

Kopiuj
CreateFont(ble ble ble, 'Courier New');

A ja chciałbym zrobić tak:

Kopiuj
CreateFont(ble ble ble, '../fonts/moja_czcionka.ttf');

olesio
  • Rejestracja:około 17 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Szczecin
  • Postów:4191
1

A czy obsługa w taki sposób jak tutaj: http://delphi.about.com/cs/adptips2000/a/bltip1100_3.htm Tobie nie będzie odpowiadać? Ewentualnie: http://stackoverflow.com/questions/107611/how-can-i-temporarily-load-a-font - może będzie lepsze? To chyba najprostsze sposoby. Nie testowalem ich, ale i nie wygooglowałem póki co innych :/


Pozdrawiam.
edytowany 3x, ostatnio: olesio
Patryk27
Dzięki - działa (ten pierwszy)! :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.