3.2 Verwendung der High-Level-Schnittstelle

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:

NoFail
Standardmäßig öffnet Pangomonium immer eine Schriftart. Wenn die angeforderte Schriftart nicht vorhanden ist, wird ein geeigneter Ersatz verwendet. Standardmäßig öffnet Pangomonium immer eine Schriftart, unabhängig davon, welchen Namen Sie ihr geben. Wenn Sie das nicht möchten, setzen Sie dieses Tag auf False. Der Standardwert ist True.

Markup
Wenn Sie dies auf True 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.

Monochrome
Setzen Sie dieses Tag auf True, 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.

NoFT2
Standardmäßig verwendet Pangomonium auf allen Plattformen den FreeType2-basierten Textrenderer von Pango. Wenn Sie das nicht möchten, setzen Sie dieses Tag auf True. 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.


Navigation zeigen