|
Private Function CreateDXFont() As Boolean
Dim systemfont As System.Drawing.Font
Try
'System-Font holen
systemfont = New System.Drawing.Font( _
"Arial", 14, FontStyle.Regular, GraphicsUnit.Pixel)
'Font-Objekt erzeugen
gD3DXFont = New Direct3D.Font(gD3DDevice9, systemfont)
systemfont.Dispose()
Return True
Catch ex As Exception
Return False
End Try
End Function
Private Sub Render3D()
Try
'Prüfen, ob es den Device gibt
If gD3DDevice9 Is Nothing Then Exit Sub
'Wurde das Fenster in die TaskBar verkleinert, dann wird
'nichts gezeichnet
If (WindowState = FormWindowState.Minimized) Then Exit Sub
'Minimale Höhe prüfen
Height = IIf(Height < 50, 50, Height)
'Bildschirm säubern
gD3DDevice9.Clear( _
ClearFlags.Target, System.Drawing.Color.Blue, 1.0F, 0)
'Szene beginnen
gD3DDevice9.BeginScene()
'Sprite Objekt beginnen
'Hinweis: Text kann auch ohne einem Sprite Objekt gezeichnet
'werden, aber dadurch kann die Performance leiden.
gSprite.Begin(SpriteFlags.AlphaBlend)
'Die Text-Formatierung stehen mit DrawTextFormat zur
'Verfügung.
TextRect = New Rectangle(0, 0, Me.ClientSize.Width, 30)
gD3DXFont.DrawText( _
gSprite, "DirectX9 und die Ausgabe von Text.", _
TextRect, DrawTextFormat.Left, _
System.Drawing.Color.White)
'Rechtsbündiger Text
TextRect = New Rectangle(0, 40, Me.ClientSize.Width, 30)
gD3DXFont.DrawText(gSprite, "Rechtsbündiger Text.", _
TextRect, DrawTextFormat.Right, _
System.Drawing.Color.White)
'Zentrierter Text
TextRect = New Rectangle(0, 80, Me.ClientSize.Width, 30)
gD3DXFont.DrawText(gSprite, "Zentrierter Text.", TextRect, _
DrawTextFormat.Center, System.Drawing.Color.White)
'Text mit automatischem Zeilenumbruch
TextRect = New Rectangle(0, 120, Me.ClientSize.Width, 60)
gD3DXFont.DrawText(gSprite, _
"Text mit automatischem Zeilenumbruch.", TextRect, _
DrawTextFormat.Left Or DrawTextFormat.WordBreak, _
System.Drawing.Color.White)
'Wenn ihr ohne einem Sprite-Objekt arbeitet, dann muss der
'Aufruf so aussehen:
'gD3DXFont.DrawText(Nothing, _
' "DirectX9 und die Ausgabe von Text.", TextRect, _
' DrawTextFormat.Left, System.Drawing.Color.White)
'Sprite Objekt beenden
gSprite.End()
'Szene beenden
gD3DDevice9.EndScene()
'Szene präsentieren
gD3DDevice9.Present()
Catch ex As Exception
MessageBox.Show("Fehler beim Rendern der Szene." & vbCrLf & _
ex.Message.ToString())
Me.Close()
End Try
End Sub
|
|