Text in D3D
-
Hi,
ich möchte gerne einige Zeichen in mein DirectX Bild einfügen.
Eine Möglichkeit ist ja ein Bild mit den Zeichen in Dreicke aufzuteilen
und dann wenn benötigt einzufügen.
Damit wird allerdings das gesamte Quadrat für das Zeichen überdeckt.
Kennt jemand eine Möglichkeit, wie man ganz normale Ascii Zeichen
ohne diesen Effekt einfügt?Viele Grüße
Huddi
-
Wenn dein Bild mit Dem Buchstaben drauf einen transparenten Hintergrund hat, wird nicht das ganze Quadrat überdeckt.
-
Sofern du die D3DX-Bibliothek nicht ablehnst gibt es einen einfachen Weg mit der Draw-Methode des ID3DXFont Objekts.
Mit D3DXFontCreateFontIndirect(...) kann man so ein Fontobjekt auch leicht erstellen.
Gegenüber einem eigenen Text als Bitmap ist das Ding zwar etwas langsamer da die GDI im Hintergrund zu Hilfe genommen wird, jedoch wohl für so gut wie jedes Hobbyprojekt durchaus vertretbar und ohne das man überhaupt einen Unterschied merkt.
-
Gängige Variante, die ich so zumindest kenne, für Fonts von Texturen ist weiße Schrift auf 100% transparent schwarzem Hintergrund. Farbe wird dann über Diffuse geregelt. Funktioniert ganz gut, kann man sich sogar mit ein klein wenig Arbeit ein Fontlib ranhängen und die Texturen selbst beim Programmstart Quasi on the fly erstellen.
-
Kahino schrieb:
Sofern du die D3DX-Bibliothek nicht ablehnst
Gibt es noch andere Nachteile außer der Geschwindigkeit?
Mit den Parametern hab ich Probleme...
Wie erstelle ich ein LOGFONT und ein LPD3DXFONT objekt :/??grüße
Huddi
-
Geil, ich kann google bedienen!
- http://www.codesampler.com/dx9src.htm
- http://www.directxtutorial.com/
- Google
- Documentation
-
Okay ich hab vergessen zu schreiben, dass ich directx 8 verwenden muss.
Habe jetzt soetwas:
(...) LPDIRECT3DDEVICE8 d3dDevice; LPD3DXFONT myFont; (...) D3DXCreateFont(d3dDevice,(HFONT)GetStockObject(SYSTEM_FONT),&myFont);
Mit myFont kann ich dann Text ausgeben. Aber nur den DefaultFont.
Wenn ich versuche ein HFONT object zu erstellen bekomme ich einen Fehler:
CreateFontA(...) wird zwar von intellisense erkannt, aber beim compilieren
kommt ein Fehler, dass dies unbekannt ist.
-
Code & Fehler zeigen
-
Fonts von Texturen [...] mit ein klein wenig Arbeit ein Fontlib ranhängen und die Texturen selbst beim Programmstart Quasi on the fly erstellen.
Es gibt auch ganz brauchbare Tools die einen Zeichensatz in eine Textur rendern und die benoetigten Koordinaten zur Verfuegung stellen.
Wenn man nicht gerade Systemfonts nutzen moechte und nur mittlere Schriftgroessen braucht ist das oft sogar kompakter als ein ttf einzubinden.