Registriert: Mo Dez 26, 2005 22:27 Beiträge: 117
Programmiersprache: Pascal, C++
Sers,
ich wollt mal fragen ob es eine geschickte Möglichekeit relativ schnell die Formatierung einen Textes zu ändern.
Folgendes: Ich gebe Text per wglUseFontBitmaps aus. Aber ich möchte zur Laufzeit z.B. den Text fett, kleiner, größer oder einfach eine andere Schriftart benutzen.
Am Anfang alles einzustellen ist kein Problem.. Nur, wenn ich z.B. zwei verschiedene Texte habe.. einer Arial, fett und die größe beträgt 32. der andere ist Wingdings, unterstrichen, größe 32. (alle werte sind gerade frei erfunden)
Jetzt möchte ich beide ausgeben. Nun müsste ich ja immer das ganze Bitmapfont neu erzeugen. Habs zwar noch net ausprobiert, da ich noch darüber am grübeln bin, wie ich das am besten mach, sollte aber gehen. Ich weiß nicht ob das die übliche Methode ist Textformationen auszugeben.
Es geht um folgendes: Ich schreibe gerade ein GUI, und wollte jetzt auch verschiedenen Text ausgeben. Die einzige Möglichkeit die ich gefunden habe ist die gerade ebenen beschreibene. Klingt aber sehr umständlich und gefällt mir selber net so wirklich, da es doch recht rechenlastig ist dauernd die Bitmapfonts neu zu erzeugen. Und zwei verschiedene kommen auch net in Frage, da ja variable Anzahlen an Texten hab, mit jeweils anderen Werten.
Hoffe das mein Problem verständlich ist, und das jemand eine Lösung dafür hat
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Die einzigen beiden Lösungen die du hast hast du bereits aufgezählt. Entweder du ermöglichst es, dass deine Komponenten auf mehrere (nicht nur zwei) Fonts zugreifen können oder eben du musst sie neu erstellen. Ich persönlich halte aber das neu Erstellen nur selten für wirklich sinnvoll.
Eine Möglichkeit wäre die, dass du Font nicht als Font ID betrachtest sondern diese in einem Manager kappselst. Den übergibst du dann an deine Komponenten und der ist dann wiederrum in der Lage mehrere Fonts zu verwalten. Entweder erstellst du dann vorher 3-4 Fonts oder du sagst dem Manager zur Laufzeit, dass du 'Verdana' 12px Bold haben möchtest und er schaut nach ob es schon existiert. Wenn nicht, dann erstellt er es. Beim nächsten Zugriff auf Verdana 12px Bold existiert dieses schon und du hast keine Sorgen mehr.
Registriert: Mo Dez 26, 2005 22:27 Beiträge: 117
Programmiersprache: Pascal, C++
geht das nicht arg auf den Speicher? Es kann ja passieren, das ich rund 25 Schriftarten im Speicher dann hab, obwohl, dann müsste ich halt beim erstellen der komponenten drauf achten, dass ich net so viele verschiedene Schriften hab..
Dank dir, ich werds mal umsetzen und schauen wie sichs macht
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ja natürlich benutzt er Speicher. Allerdings handelt es sich bei diesen Fonts um Bitmapfonts und dabei ist ein Pixel auch wirklich nur ein einzelnes Bit (In einem 8 Bit breitem Raster). Soll bedeuten bei einem Buchstaben dessen Breite 8 Pixel beträgt benutzt eine Zeile gerade mal 1 Byte. Mal 16 Pixel Höhe benötigt ein Buchstabe gerade mal 16 Byte. Bei einer Textur wäre das mal eben 8 * 16 * 4Byte = 512 Bytes. Also alles noch vollkommen harmlos.
Aber du solltest dir mal überlegen was du alles haben möchtest. Evtl stellst du ja fest, dass es noch andere Möglichkeiten gibt. Ich kann als Außenstehender dein Projekt nicht genau durchschauen. Bzw was du damit vor hast etc.
Als Oberflächen und Webdesigner ist Weniger oftmals mehr. Üblichweise sollte man nur selten unterschiedliche Fonts oder Fontgrößen mischen. Fett, Kursiv oder ein bisschen größer und kleiner sind für die meisten Anwendungsgebiete ausreichend. Allerdings auch da kann ich als Außenstehender nicht viel dazu sagen. Ich finde nur 25 schon reichlich viel.
Registriert: Mo Dez 26, 2005 22:27 Beiträge: 117
Programmiersprache: Pascal, C++
ich habs jetzt so gemacht, das jedes Ding erst mal einen StandartFont bekommt, und auf Wunsch des Users kann man das ändern, indem ich ihm einen eigenen Font (den ich halt erst erzeugen muss) zuordne..
Läuft bis jetzt recht stabil
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
Mitglieder in diesem Forum: 0 Mitglieder und 5 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.