amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > Font öffnen [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2008-10-08, 15:30 h

Der_Wanderer
Posts: 1229
User
Hallo!

Kleines Problemchen:

code:
Function.l ntui_OpenFont{fontname.s,size.l,style.l}
fontname.s              = "Fonts:"+fontname+".font"
ta.TextAttrta_Name  = &fontname.s
tata_YSize          = size         ; /* height of the font */
tata_Style          = style        ; /* intrinsic font style */
tata_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. ]

[ - Answer - Quote - Direct link - ]

2008-10-08, 16:40 h

thomas
Posts: 7721
User
@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/

[ - Answer - Quote - Direct link - ]

2008-10-08, 18:33 h

Holger
Posts: 8116
User
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.

[ - Answer - Quote - Direct link - ]

2008-10-08, 18:54 h

akl
Posts: 265
User
@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. ]

[ - Answer - Quote - Direct link - ]

2008-10-08, 18:57 h

akl
Posts: 265
User
@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.

[ - Answer - Quote - Direct link - ]

2008-10-09, 10:46 h

Der_Wanderer
Posts: 1229
User
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


[ - Answer - Quote - Direct link - ]

2008-10-09, 10:52 h

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

[ - Answer - Quote - Direct link - ]

2008-10-09, 10:57 h

tboeckel
Posts: 124
User
@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. ]

[ - Answer - Quote - Direct link - ]

2008-10-09, 13:23 h

Der_Wanderer
Posts: 1229
User
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


[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > Font öffnen [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2025 by amiga-news.de - all rights reserved.
.