Ich bin in DirectX total Neuling und wollte mal ein kleines Tut machen.(im Anhang) Es geht alles wunderbar bis Seite 12 wo es heißt man soll keine TransformedColored mehr verwenden sondern PositionColored. Und dieses alle austauschen. Denn genau ab diesm Zeitpunkt geht nix mehr. Wenn ich das mache funktioniert die ganze Sache nich mehr und im Tutorial wird nix näher beschrieben.
Hier der Code (hab durch Converter laufen lassen)
Spoiler anzeigen
Was mach ich falsch.... ich komm einfach nicht weiter und wollte aber das Teil schön Schritt für Schritt durchgehen
Hier der Code (hab durch Converter laufen lassen)
VB.NET-Quellcode
- Imports System.Collections.Generic
- Imports System.Text
- Imports System.Windows.Forms
- Imports System.Drawing
- Imports Microsoft.DirectX
- Imports Microsoft.DirectX.Direct3D
- Namespace dx3D
- Class MDXSampleApp
- Inherits System.Windows.Forms.Form
- Private device As Device
- Private verts As CustomVertex.PositionColored()
- 'Die Eckpunkte
- Private vertexBuffer As VertexBuffer
- 'container für eckpunkte siehe oben um in video ram zu machen
- Public Sub InitGfx()
- Try
- Me.ClientSize = New Size(800, 600)
- Me.Text = "DX MainWindow"
- AddHandler Me.KeyPress, New KeyPressEventHandler(AddressOf OnKeyPress)
- Dim pp As New PresentParameters()
- pp.Windowed = True
- 'gibt an dass device ein Fenster sein soll
- pp.SwapEffect = SwapEffect.Copy
- 'gibt an dass jedesmal der ganze bildschirm neu gezeichnet wird
- 'welcher bildschirm
- 'wo berechnet wird
- 'Fenster handle
- 'Praktisch selbe wie parameter 1
- device = New Device(Manager.Adapters.[Default].Adapter, DeviceType.Hardware, Me, CreateFlags.HardwareVertexProcessing, pp)
- 'parameter struktur
- 'Vertex...
- verts = New CustomVertex.PositionColored(2) {}
- verts(0).X = 150
- verts(0).Y = 50
- verts(0).Z = 0F
- verts(0).Color = Color.Red.ToArgb()
- verts(1).X = 250
- verts(1).Y = 250
- verts(1).Z = 0.5F
- verts(1).Color = Color.Green.ToArgb()
- verts(2).X = 50
- verts(2).Y = 250
- verts(2).Z = 0.5F
- verts(2).Color = Color.Honeydew.ToArgb()
- 'Da 3 Eck optional verts.Length
- vertexBuffer = New VertexBuffer(GetType(CustomVertex.PositionColored), 3, device, Usage.[WriteOnly], CustomVertex.PositionColored.Format, Pool.[Default])
- Dim stream As GraphicsStream = vertexBuffer.Lock(0, 0, 0)
- 'verts in den Buffer geben
- stream.Write(verts)
- vertexBuffer.Unlock()
- Catch ex As DirectXException
- MessageBox.Show("Failed to Init DirectX: " + ex.Message)
- Environment.[Exit](-1)
- End Try
- End Sub
- Public Sub Render()
- device.VertexFormat = CustomVertex.PositionColored.Format
- device.Clear(ClearFlags.Target, Color.Red, 0F, 0)
- 'Hier background property setzen
- device.BeginScene()
- device.DrawUserPrimitives(PrimitiveType.TriangleStrip, 1, verts)
- device.SetStreamSource(0, vertexBuffer, 0)
- device.DrawPrimitives(PrimitiveType.TriangleStrip, 0, 1)
- device.EndScene()
- device.Present()
- End Sub
- Public Sub Shutdown()
- device.Dispose()
- End Sub
- Private Overloads Sub OnKeyPress(sender As Object, e As KeyPressEventArgs)
- If AscW(e.KeyChar) = CInt(Keys.Escape) Then
- Me.Close()
- End If
- End Sub
- End Class
- End Namespace
Was mach ich falsch.... ich komm einfach nicht weiter und wollte aber das Teil schön Schritt für Schritt durchgehen