amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > Font öffnen [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

08.10.2008, 15:30 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Hallo!

Kleines Problemchen:

code:
Function.l ntui_OpenFont{fontname.s,size.l,style.l}
fontname.s              = "Fonts:"+fontname+".font"
ta.TextAttr\ta_Name  = &fontname.s
ta\ta_YSize          = size         ; /* height of the font */
ta\ta_Style          = style        ; /* intrinsic font style */
ta\ta_Flags          = #FPF_DISKFONT; /* font preferences and flags */
*font.TextFont          = OpenDiskFont_ (ta)
Function Return *font
End Function


ist meine Funktion um eine Font zu öffnen.
Für style gebe ich, wenn ich das RKM richtig verstanden habe, ein FSF_xxx an, z.B. FSF_BOLD, FSF_ITALIC etc.
z.B.

ntui_Openfont{"Vera Sans",17,#FSF_BOLD}

Das funktioniert leider nicht. Ich bekomme immer nur die "normale" Version der Font, sowohl bei Bitmap Fonts als auch bei TTF Fonts. (AfA). Was mache ich falsch?
Mich beschleicht auch das Gefühl, das hier gleich gemeckert wird wegen

fontname.s = "Fonts:"+fontname+".font"

und ihr hab ja wahrschenlich recht, es gibt möglicherweise eine bessere Möglichkeit. Aber es funktioniert bisher und daran sollte ja nicht das Style problem liegen.

--
Thilo Köhler, Author von:
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de



[ Dieser Beitrag wurde von Der_Wanderer am 08.10.2008 um 15:37 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

08.10.2008, 16:40 Uhr

thomas
Posts: 7650
Nutzer
@Der_Wanderer:

Bei OpenFont steht dabei:
Zitat:
If the named
font is found, but the size and style specified are not
available, a font with the nearest attributes is returned.


Ich denke, daß das für OpenDiskFont auch gilt. Für die meisten Fonts gibt es halt nur den normalen Stil, die anderen Stile müssen generiert werden. Dazu kannst du SetSoftStyle benutzen.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

08.10.2008, 18:33 Uhr

Holger
Posts: 8038
Nutzer
Das AmigaOS kennt nicht das Konzept von Font-Familiennamen. Wenn Du "Vera Sans" anforderst, wirst Du niemals "Vera Sans Bold" bekommen...

Aber ich verstehe trotzdem nicht, wozu Du "FONTS:" davorhängst. Die library sucht doch sowieso immer in "FONTS:".

mfg

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

08.10.2008, 18:54 Uhr

akl
Posts: 262
Nutzer
@Der_Wanderer:
In der bullet.library (oder kompatiblen Clones) kann man über das Tag OT_InhibitAlgoStyle feststellen, ob der jeweilige Style (z.B. FSF_BOLD) für den entsprechenden Font algorithmisch berechnet werden kann, oder nicht.

Über OT_BName, OTIName und OT_BIName kann man den Namen der "echten" Bold- und/oder Italic-Variante in Erfahrung bringen (also z.B. "Vera Sans Bold"). So kann man die Mitglieder einer Font Family ermitteln.

[ Dieser Beitrag wurde von akl am 08.10.2008 um 18:56 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

08.10.2008, 18:57 Uhr

akl
Posts: 262
Nutzer
@Holger:

>Das AmigaOS kennt nicht das Konzept von Font-Familiennamen. Wenn Du
>"Vera Sans" anforderst, wirst Du niemals "Vera Sans Bold" bekommen...

Das Konzept ist bekannt, aber gut versteckt. Man kann in Erfahrung bringen, was man anfordern muss.

[ - Antworten - Zitieren - Direktlink - ]

09.10.2008, 10:46 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Danke für die Hinweise.

Habe nun mit erschrecken festgestellt dass TextLength() den SoftStyle gar nicht berücksichtigt, d.h. eine Italic font z.B. ist zwei bis drei Pixel breiter als TextLength zurückgibt. Kann das jemand bestätigen?


--
Thilo Köhler, Author von:
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

09.10.2008, 10:52 Uhr

akl
Posts: 262
Nutzer
@Der_Wanderer:
Ja, dafür wurde TextExtent() eingeführt.

[ - Antworten - Zitieren - Direktlink - ]

09.10.2008, 10:57 Uhr

tboeckel
Posts: 124
Nutzer
@Der_Wanderer:

Probier mal TextExtent(). Das wurde unter anderem deswegen erfunden, weil TextLength() nur die Breite in Pixeln zurückgeben kann und sonst nix. TextExtent() liefert da sehr viel ausführlichere Daten.

[ Dieser Beitrag wurde von tboeckel am 09.10.2008 um 10:57 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

09.10.2008, 13:23 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Ok, danke! jetzt funktionuckelts.
--
Thilo Köhler, Author von:
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Font öffnen [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1997-2019 by amiga-news.de - alle Rechte vorbehalten.
.