Hi! Danke erstmal für deine Hilfe!
Nein, die Textur wird nur erstellt, wenn der Font sich in irgendeiner Weise ändert (Farbe, Grösse, Schriftart, Fett, Kursiv etc.).
Mit dem ID3DFont-Objekt kann man doch nur 2D-Text ausgeben. Ich will etwas universales machen, sodaß ich z.B. Schriften tatsächlich in der 3D-Umgebung ausgeben kann (Z.B. Text auf irgendwelchen Wänden in der Umgebung).
Um eine gute Qualität hinzubekommen, wollte ich nicht einfach eine Colorkey (also eine Farbe, die nicht gezeichnet wird) definieren, weil ja Text geglättet wird, sodaß unschöne Randerscheinung auftreten. Deshalb also ein Alphakanal.
Da eine Delphi-Bitmap aber keinen Alphakanal hat (das erste Byte einer TColor-Werts lässt sich für sowas leider nicht missbrauchen), habe ich eine zweite Bitmap (nicht Textur!) angelegt, die genau das gleiche in Schwarz-Weiss zeichnet.
Anschliessend generiere ich die Textur aus beiden Bitmaps.
Im Moment generiere ich die Textur so, daß ich die R, G und B-Werte von dem ersten Bitmap nehme, den Alpha-Wert jedoch von meiner zweiten Schwarz-Weiss-Bitmap. Das ganze mache ich direkt durch Speichermanipulation, was mir irgendwie unschön vorkommt.
Deshalb meine Frage, ob es nicht so etwas wie eine Alphakanalzuweisung gibt.
Falls du das auch bei dir implementieren willst: Ich bastele diese Komponente als COM-Objekt, so daß du sie einfach per CreateComObject in deine Engine packen könntest.
Cu,
Udontknow