|
Private Sub Render3D()
On Error GoTo ErrOut
If gD3DDevice8 Is Nothing Then Exit Sub
'Bereinigen des BackBuffers und des ZBuffers
gD3DDevice8.Clear 0, ByVal 0, D3DCLEAR_TARGET Or _
D3DCLEAR_ZBUFFER, 0#, 1#, 0
'Szene beginnen
gD3DDevice8.BeginScene
'Vertex-Format setzen
gD3DDevice8.SetVertexShader D3DFVF_LVERTEX
'Textur setzen
gD3DDevice8.SetTexture 0, texHimmel
'Vertexe rendern
gD3DDevice8.DrawPrimitiveUP D3DPT_TRIANGLELIST, 2, _
vxHimmel(0), Len(vxHimmel(0))
'Textur setzen
gD3DDevice8.SetTexture 0, texHorizont
'Vertexe rendern
gD3DDevice8.DrawPrimitiveUP D3DPT_TRIANGLELIST, 8, _
vxHorizont(0), Len(vxHorizont(0))
'Textur setzen
gD3DDevice8.SetTexture 0, texBoden
'Vertexe rendern
gD3DDevice8.DrawPrimitiveUP D3DPT_TRIANGLELIST, 2, _
vxBoden(0), Len(vxBoden(0))
'Textur setzen
gD3DDevice8.SetTexture 0, texWand
'Alphablending einschalten
gD3DDevice8.SetRenderState D3DRS_ALPHABLENDENABLE, True
'Blend Faktor setzen
gD3DDevice8.SetRenderState D3DRS_SRCBLEND, D3DBLEND_ONE
gD3DDevice8.SetRenderState D3DRS_DESTBLEND, D3DBLEND_ONE
'Vertexe rendern
gD3DDevice8.DrawPrimitiveUP D3DPT_TRIANGLELIST, 8, _
vxWand(0), Len(vxWand(0))
'AlphaBlending ausschalten
gD3DDevice8.SetRenderState D3DRS_ALPHABLENDENABLE, False
'Mit der Draw-Methode des D3DX8Sprite-Objektes das
'Fadenkreuz zeichnen
Call gD3DX8Sprite.Draw(texFadenkreuz, recFadenkreuz, _
vecScalingDummy, vecRotationCenterDummy, 0, _
vecFadenkreuz, lngColorDummy)
'Text zeichnen
myDXFont.DrawTextW strText, Len(strText), recText, _
DT_WORDBREAK, D3DColorMake(1, 1, 1, 1)
'Szene beenden
gD3DDevice8.EndScene
'Kompletten BackBuffer zum FrontBuffer kopieren
gD3DDevice8.Present ByVal 0, ByVal 0, 0, ByVal 0
Exit Sub
ErrOut:
Debug.Print Err.Number & " - " & Err.Description
End Sub
|
|