ich bin zurzeit etwas am experimentieren mit Schriften in Opengl.
http://wiki.delphigl.com/index.php/wglUseFontBitmaps Dabei finde ich sehr gut, dass man problemlos zwischen vielen Schriftarten wechseln kann und sehr viele zur verfügung hat.
Allerdings: Kann ich irgendwie wissen, wie lange mein gesamter Text wird (damit ich ihn zentrieren kann).
Und: Kann es sein, dass zumindest das einbinden einer neuen Schrift mit
SelectObject(DC, CustomFont); // Font auf einen Device Context benutzen
wglUseFontBitmaps (DC, 0, 255, FontLists); // Mit selektiertem Font Zeichen erstellen
(falls ich eine andere Schriftgröße oder Schriftart will) sehr langsam ist?
(Zwischen 4 und 20 ms auf meinem Rechner.)
Geht die Schriftart / Größe ändern auch irgendwie schneller?
Das einzige was ich gefunden habe, ist die Möglichkeit mir selber Texturen zu erstellen, in denen in Kacheln alle Zeichen drin sind.
Das wäre aber ein wahnsinniger aufwand.
(Und es mangelt mir hierbei dann an Vielfalt)
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Schrifttechnisch ist das Mittel der Wahl die TextSuite von Lossy. Diese findest du im Projekte Thread.
Lossy hat da sehr viel Arbeit und Optimierung hinein gesteckt, und erhält dadurch sehr gute Ergebnisse die man selber nur schwer erreicht. (Da sind so Fontspezifische Sachen wie z.B. Kerning mit zu beachten).
Lossy hat seine TextSuite als Pascal Lib zur Verfügung gestellt und als DLL die man theoretisch überall einbinden kann (das will ich auch mal machen in Java.)
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Wie Flash schon gesagt hat habe ich die Bibliothek TextSuite geschrieben mit der man sich auf die Ausgabe des Textes konzentrieren kann. Text zentriert Ausgeben ist da zum Beispiel nur ein Flag. Obendrein kannst du alle Systemschriften oder auch eigene TTF Dateien verwenden.
Zu wglUseFontBitmaps: Man wechseln die Schriften eigentlich so nicht. Sondern du würdest dann 2-3 Listen erstellen die unterschiedliche Schriftarten/größen enthalten. Je nachdem was du dann haben wolltest würdest dann die ein oder andere Listenbasis benutzen. Zum Erfragen der Textebreiten müsstest du mit einer WindowsAPI Funktion dir die Größen der Buchstaben geben lassen und diese dann per Hand zusammen rechnen. Sollte daran noch Bedarf bestehen kann ich dich da auch mit Inhalt füttern.
Noch eine Anmerkung zu wglUseFontBitmaps. wglUseFontBitmaps benutzt richtig echte Bitmaps. Also wirklich nur 0 oder 1 pro Pixel. Und diese Möglichkeit zu zeichnen ist nicht gerade die Schnellste. Um nicht zu sagen sogar recht langsam. Also solltest du größere Texte haben wirds von der Geschwindigkeit her echt bedenklich langsam.
Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.