|
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)
|
|
|
|
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.
|
|
|
Um diesen Tipp ausführen zu können, muss die DirectX 9 for Managed Code Runtime als
Verweis in das Projekt eingebunden
werden.
|
|
|
|
Windows-Version |
98/SE |
|
|
ME |
|
|
NT |
|
|
2000 |
|
|
XP |
|
|
Vista |
|
|
Win
7 |
|
|
|
|
Download (9,5
kB)
|
Downloads bisher: [ 478 ]
|
|
|