Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 08:12

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Di Sep 15, 2009 10:26 
Offline
DGL Member
Benutzeravatar

Registriert: So Jan 07, 2007 21:26
Beiträge: 130
Wohnort: mal hier mal da mal irgendwo
Hi Leute,
ich benutze wglUseFontBitmaps für Textausgaben,
nun bastle ich z.Z. nen paar Komponenten für meine GUI und da brauch ich für mein TGLEdit und TGLMemo eine Berechnung wie breit/hoch der Text ist...

gibt es da ne Variante wie man das berechnen kann?

cuz bubble

_________________
Wenn Worte nichts als Worte sind,
dann müssen's Steine sein!
Solange - bis sie pleite sind - schmeißt Fensterscheiben ein!

- Fidl Kunterbunt -


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 15, 2009 11:04 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
wglUseFontBitmaps erstellt richtige BITmaps. Also Bilder bei denen für jedes Pixel entweder eine 0 oder eine 1 existiert. Dadurch, dass die direkt auf dem Framebuffer arbeiten ist das auch nicht wirklich schnell. Um nicht zu sagen sogar ziemlich langsam. Obendrein ist es sehr unflexibel und du hast keinerlei Einflussmöglichkeiten. Alternativ dazu kann ich dir nur zu Texturfonts raten. Die sind deutlich schneller und durch die Texturen besser für die Hardware und bieten vielerlei Einflussmöglichkeiten. Da könnte ich dir auch die TextSuite anbieten. Eine unicodefähige mid-level Pascalbibliothek die ich geschrieben habe um relativ einfach Text ausgeben zu können. Und zwar ähnlich wie das in der GDI möglich ist nur ist die Schnittstelle optimiert auf die Ausgabe für OpenGL.

Ansonsten. Die Größen der Zeichen kannst du mit GetCharABCWidths erfragen. Und zwar in etwa so.
Code:
  1. FAbc: array[0..255] of TABC;
  2.  
  3. begin
  4.   wglUseFontBitmaps(FDC, 0, 255, FListBase);
  5.  
  6.   GetCharABCWidths(FDC, 0, 255, FAbc[0]);


Zum Berechnen müsstest du dann das Feld abcB auswerten.
Code:
  1.   for Idx := 1 to Length(Text)
  2.     do Result := Result + FAbc[Ord(Text[Idx])].abcB;


Das Array mit FAbc musst du entsprechend natürlich so lange mit dir rumschleppen wie du das Font benötigst. Also das alles zusammen in eine Klasse packen wäre wohl das sinnvollste.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 15, 2009 14:43 
Offline
DGL Member
Benutzeravatar

Registriert: So Jan 07, 2007 21:26
Beiträge: 130
Wohnort: mal hier mal da mal irgendwo
Hmmm ich hab mir mal TextSuite angeguckt, *sprachlos* :shock:
Da lass ich das mit dem wglUseFontBitmaps doch lieber weg^^

cuz bubble

_________________
Wenn Worte nichts als Worte sind,
dann müssen's Steine sein!
Solange - bis sie pleite sind - schmeißt Fensterscheiben ein!

- Fidl Kunterbunt -


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 2 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 17 Queries | GZIP : On ]