## 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