Tipp 0098 Darstellung im Fenster (Windowed Mode)
Autor/Einsender:
Datum:
  Alexander Csadek
19.12.2005
Entwicklungsumgebung: VB.Net 2003
DirectX-Version:   DirectX 9
Bei der Darstellung im Fenster (Windowed Mode) in DirectX 9 gibt es ein paar Dinge, die beachtet werden müssen. Die PrimarySurface (FrontBuffer) teilt sich das Programm mit dem Windows. Daher kann kein BackBuffer in den FrontBuffer kopiert werden bzw. ist es auch nicht notwendig. Alles was in den FrontBuffer gezeichnet wird, ist sofort am Bildschirm sichtbar.
 
'DirectDraw Device erzeugen
 DDDevice = New Device

'setzen des Cooperative Levels, damit DirectX weiß, dass wir in
das Fenster zeichnen wollen
 DDDevice.SetCooperativeLevel(Me, CooperativeLevelFlags.Normal)
 
Im Fenster-Modus muss dem FrontBuffer ein Clipper zugeordnet werden, da sonst DirectDraw nicht weiß, wohin es zeichnen darf.
 
'Im Windowed Mode genügt ein einfacher PrimarySurface
 caps.PrimarySurface = True
 desc.SurfaceCaps = caps
 DDPrimary = New Surface(desc, DDDevice)

'Erzeugen eines Clippers
 DDClip = New Clipper(DDDevice)

'Dem Clipper wird unser Fenster übergeben
 DDClip.Window = Me

'Der Clipper wird der PrimarySurface mitgeteilt
 DDPrimary.Clipper = DDClip
 
Alles was nun in den FrontBuffer gezeichnet wird, ist sofort am Bildschirm sichtbar.
 
'Feststellen wie groß der Bereich im Fenster nun ist,
'damit wir wissen, wo wir hinzeichnen dürfen
 rectDest = New Rectangle(PointToScreen(New Point( _
       ClientRectangle.X, ClientRectangle.Y)), ClientSize)

'Zeichnen des Bitmaps in die Primary Surface
 DDPrimary.Draw(rectDest, DDOffscreen, DrawFlags.Wait)
 
Anmerkung
Microsoft empfiehlt zukünftig den Einsatz von DirectDraw zu vermeiden, da diese Komponente für Entwickler ab dem Erscheinen des DirectX 9.0c-SDK nicht mehr zur Verfügung steht. Haben Sie die notwendigen Assemblies nicht installiert, schauen Sie auf unsere SDK-Seite oder direkt bei Microsoft einfach nach dem DirectX 9.0b-Update SDK, in dem diese noch enthalten sind. 
Hinweis
Um diesen Tipp ausführen zu können, muss die DirectX 9 for Managed Code Runtime als Verweis in das Projekt eingebunden werden.
Weitere Links zum Thema
Vollbild (Fullscreen Mode)

Windows-Version
98/SE
ME
NT
2000
XP
Vista
Win 7


Download  (9,5 kB) Downloads bisher: [ 471 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Tipps | Projekte | Tutorials | Bücherecke | VB-/VBA-Tipps | API-Referenz | Komponenten | VB.Net-Forum | VB/VBA-Forum | DirectX-Forum | Foren-Archiv | DirectX | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Mittwoch, 18. Januar 2012