Die Verwendung der High-Level-Schnittstelle von Pangomonium ist wirklich
einfach. Es erweitert Standard-Hollywood-Textbefehle wie SetFont() und
TextOut(), um erweiterte Textwiedergabefunktionen wie komplexe Layouts
und farbige Glyphen wie Emojis zu unterstützen. Um Text mit Pangomonium
über normale Hollywood-Befehle zu zeichnen, stellen Sie einfach sicher, dass
Sie die Schriftart mit Pangomonium öffnen, indem Sie das Tag Loader an
SetFont() übergeben. Sobald Sie eine Schriftart über Pangomonium geöffnet
haben, werden alle Hollywood-Befehle, die Text zeichnen, dies automatisch
auch über Pangomonium tun, z.B.:
@REQUIRE "pangomonium"
SetFont("Noto Sans CJK HK Regular", 72, {Loader = "pangomonium"})
SetFontStyle(#ANTIALIAS)
; "What is your name?" in Japanese
Local t = {21517, 21069, 12399, 12394, 12435, 12391, 12377, 12363}
For Local k = 0 To ListItems(t) - 1 Do text$ = text$ .. Chr(t[k])
TextOut(#CENTER, #CENTER, text$)
|
Der obige Code stellt die Schriftart auf Noto Sans CJK HK Regular, Größe 72,
ein und zeichnet japanischen Text. Indem Sie "pangomonium" an das
Tag Loader übergeben, weisen Sie SetFont() an, die Schriftart über
Pangomonium zu öffnen, anstatt über Hollywoods integrierte Schriftarten-Modul
oder ein vom Host-Betriebssystem bereitgestellte Schriftarten-Modul.
Ein weiterer Vorteil der Verwendung der High-Level-Schnittstelle ist die Tatsache, dass Pangomonium eine echte vektorbasierte Texttransformation ohne Qualitätsverlust unterstützt. Die integrierten Schriftarten-Module von Hollywood unterstützen nur die verlustfreie Skalierung von Vektortext. Sobald Text gedreht wird, wird ein verlustbehafteter Algorithmus verwendet, sodass Sie beim Zeichnen von gedrehtem Text mit Pangomonium eine bessere Qualität erhalten.
Darüber hinaus können Sie mit Pangomonium die Markup-Sprache von Pango
verwenden, die einige erweiterte Textformatierungen ausführen kann, die mit der
in Hollywood integrierten Text-Module nicht möglich sind. Mit der
Auszeichnungssprache von Pango können Sie beispielsweise unterschiedliche
Schriftgrößen in einem einzelnen Textobjekt verwenden. Wenn Sie also
leistungsfähigere Formatierungsfunktionen benötigen, als sie von Hollywoods
integriertem Textrenderer unterstützt werden, sollten Sie stattdessen auch
Pangomonium verwenden. Weitere Informationen zur Auszeichnungssprache
von Pango finden Sie unter playout:SetMarkup(). Beachten Sie außerdem,
dass die Auszeichnungssprache von Pango aus Kompatibilitätsgründen in
Pangomonium nicht standardmäßig aktiviert ist. Wenn Sie es verwenden
möchten, müssen Sie es explizit aktivieren, indem Sie das Tag Markup auf
True setzen (siehe unten).
Beachten Sie, dass wir im obigen Code SetFont() explizit anweisen,
Pangomonium zum Öffnen der Schriftart zu verwenden, indem wir "pangomonium"
im Tag Loader übergeben. Alternativ können Sie Pangomonium auch global für
alle Hollywood-Befehle aktivieren, die sich mit Schriftarten befassen, indem
Sie einfach den Schriftartenadapter von Pangomonium installieren. Dies kann
erreicht werden, indem das Tag InstallAdapter auf True gesetzt wird, wenn
@REQUIRE Pangomonium ist, z.B. so was:
@REQUIRE "pangomonium", {InstallAdapter = True}
|
Wenn Sie Pangomonium global aktivieren, müssen Sie das Tag Loader nicht mehr
mit SetFont() oder anderen Hollywood-Befehlen verwenden, die sich mit
Schriftarten befassen. Denn wenn Pangomonium global aktiviert ist, werden
Befehle wie SetFont() automatisch für jede zu öffnende Schriftart Pangomonium
aufrufen, unabhängig davon, ob das Plugin diese Schriftart
verarbeiten kann oder nicht. Beachten Sie jedoch, dass Pangomonium beim
Öffnen von Schriftarten standardmäßig nie fehlschlägt. Wenn Sie es also wie
oben global aktivieren, übernimmt es die Verwaltung jeder einzelnen Schriftart,
die Sie öffnen, was möglicherweise nicht Ihren Wünschen entspricht. Sie können
dieses Verhalten ändern, indem Sie das Benutzer-Tag NoFail auf False setzen.
In diesem Fall schlägt Pangomonium fehl, wenn eine Schriftart nicht verfügbar
ist. Wenn Sie jedoch möchten, dass Pangomonium alle Schriftarten in Ihrem
Skript verarbeitet, kann es eine gute Idee sein, es global mit InstallAdapter
wie oben gezeigt zu aktivieren.
Wenn Sie Pangomonium verwenden, können Sie auch einige zusätzliche Argumente
an SetFont(), OpenFont() oder den Präprozessorbefehl @FONT übergeben, indem Sie
die Benutzer-Tags von Hollywood verwenden. Die folgenden zusätzlichen Argumente
werden von Pangomonium anerkannt:
NoFailFalse. Der Standardwert ist True.
MarkupTrue setzen, erlaubt Ihnen Pangomonium die Verwendung der
Pango-Auszeichnungssprache in dem Text, den Sie an Hollywood-Aufrufe wie
TextOut() übergeben. Standardmäßig unterstützt Pangomonium nur die
Textformatierungscodes von Hollywood. Wenn Sie möchten, dass die
Markup-Sprache von Pango anstelle der Textformatierungscodes von Hollywood
verwendet wird, setzen Sie dieses Tag auf True. Weitere Informationen zur
Markup-Sprache von Pango finden Sie unter playout:SetMarkup().
Der Standardwert ist False.
MonochromeTrue, wenn Pangomonium im Monochrom-Modus arbeiten
soll. Dadurch wird der Speicherverbrauch um 75% reduziert, da Pangomonium nur
einen statt vier Pixelkanäle zuweisen muss, Sie jedoch im Monochrom-Modus nur
einfarbigen Text verwenden können, sodass Dinge wie farbige Emojis nicht
korrekt gezeichnet werden. Der Standardwert ist False.
NoFT2True. In diesem Fall verwendet Pangomonium
stattdessen den Standard-Textrenderer des Host-Betriebssystems
(z.B. DirectWrite unter Windows, Core Text unter macOS usw.). Beachten Sie,
dass auf AmigaOS und kompatiblen Versionen der einzige verfügbare Renderer
FreeType2 ist, sodass Sie dieses Tag auf AmigaOS nicht auf True setzen dürfen.
Der Standardwert ist False.
So können Sie Benutzer-Tags an Pangomonium übergeben:
@REQUIRE "pangomonium"
SetFont("Arial", 72, {Loader = "pangomonium", UserTags = {Markup = True}})
SetFontStyle(#ANTIALIAS)
TextOut(#CENTER, #CENTER, "<span bgcolor=\"red\">Hello</span>")
|
Der obige Code zeigt, wie die Markup-Sprache von Pango in der High-Level-Schnittstelle von Pangomonium aktiviert wird.