![]() |
Tipp 0417
|
Darstellung im Fenster (Windowed Mode)
|
 |
|
Autor/Einsender: Datum: |
|
Alexander Csadek 06.10.2004 |
|
Entwicklungsumgebung:
DirectX-Version: |
|
VB 6
DirectX 8 |
|
|
Damit DirectX 8 die Grafik-Ausgabe in einem Fenster macht, ist es notwendig, bevor der 3DDevice erstellt wird, die aktuelle Farbtiefe des Adapters (Grafikkarte) auszulesen.
|
Dies geschieht mit der Funktion GetAdapterDisplayMode des Direct3D8-Objekts
(siehe dazu auch Tipp Adapter-Informationen auslesen).
|
Für die Standard-Anzeige (default adapter bzw. primary display) sieht das beispielsweise so aus:
|
|
|
Dim mode As D3DDISPLAYMODE
GetAdapterDisplayMode D3DADAPTER_DEFAULT, mode
|
|
|
Die Darstellungs-Parameter (present parameters) werden mit dem Typ D3DPRESENT_PARAMETERS festgelegt und dabei die Farbtiefe der aktuellen Anzeige mit übergeben:
|
|
|
Dim d3dpp As D3DPRESENT_PARAMETERS
With d3dpp
.Windowed = 1 '1=True, also Fenster
.SwapEffect = D3DSWAPEFFECT_COPY_VSYNC
.BackBufferFormat = mode.Format
End With
|
|
|
Nun kann der 3DDevice erstellt werden:
|
|
|
CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, Me.hWnd, _
D3DCREATE_SOFTWARE_VERTEXPROCESSING, d3dpp)
|
|
|
Falls der 3DDevice nicht erstellt wurde, liegt es unter Umständen daran, dass die aktuelle Farbtiefe der Anzeige als 3DDevice von
DirectX 8 nicht erstellt werden kann, weil sie vom Adapter (Grafikkarte) nicht unterstützt wird.
|
Im Tipp Adapter-Informationen auslesen könnt ihr sehen, wie die von der Grafikkarte unterstützten Bildschirmauflösungen (Display Mode) ausgelesen werden.
|
|
|
Um dieses Beispiel ausführen zu können, wird die DirectX 8
for Visual Basic Type Library
benötigt (siehe dazu die Erläuterungen in der DirectX-Rubrik).
|
|
Windows-Version |
95 |
 |
|
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
VB-Version |
VBA 5 |
 |
|
VBA 6 |
 |
|
VB 4/16 |
 |
|
VB 4/32 |
 |
|
VB 5 |
 |
|
VB 6 |
 |
|
|
|
Download (3,5
kB)
|
Downloads bisher: [ 815 ]
|
|
|