Surface initialiserung (DirectX 9) "VB"

Rene42

Erfahrenes Mitglied
Hi Leute,

ich verwende Visual Basic 2008 von Microsoft und
beschäftigte mich gerade für eine zweidimensionale Anwednung mit DirectX, nach dem Tutorial von http://www.euclideanspace.com/software/games/setup/dx9vb/basics/index.htm habe ich folgenden Quellcode für die Init() erstellt:

Code:
 'Initialisierung
    Public Sub Init()
        VisibleSurface = Nothing
        BackSurface = Nothing
        Dim sdesc As New SurfaceDescription()
        Clip = New Clipper(MyDevice)
        clip.Window = Me
        sdesc.SurfaceCaps.PrimarySurface = True
        sdesc.SurfaceCaps.Flip = True
        sdesc.SurfaceCaps.Complex = True
        sdesc.BackBufferCount = 1
        VisibleSurface = New Surface(sdesc, MyDevice)
        VisibleSurface.Clipper = Clip
        sdesc.Clear()
        sdesc.SurfaceCaps.BackBuffer = True
        VisibleSurface = BackSurface.GetAttachedSurface(sdesc.SurfaceCaps)
    End Sub

Die verursacht zur Laufzeit einen Fehler da Backsurface zwar bekannt ist, aber nicht initialisiert. Meine Versuche es zu initalisieren scheiterten leider beide.

1. Kopie der VisibleSurface Initialisierung
Code:
BackSurface = New Surface(sdesc, MyDevice)
Verursacht einen Fehler, da BackSurface und Visiblesurface dann übereinstimmen.

2.Anpassung der Kopie
Code:
Dim bsdesc As SurfaceDescription = sdesc
bsdesc.SurfaceCaps.PrimarySurface = False
BackSurface = New Surface(sdesc, MyDevice)
Dies verursacht eine Invalid Exception.

Hoffe einer weiß, was ich hier nicht richtig mache.

Gruß Rene

PS: Kann man in seinen Posts auch ein korrektes Highlighting für VB-Code einstellen?
 

Rene42

Erfahrenes Mitglied
Sorry, Jungs für die Aufregung aber nun habe ich den Fehler gefunden, in der letzten Zeile gehören VisibleSurface und BackpufferSurface vertauscht.

Gruß Rene