La creazione di un progetto da zero in Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
Visual Basic e DirectX (seconda lezione) di Andrea Martelli

Durante l'articolo precedente, uscito qualche settimana fa, abbiamo visto molto in generale i principali aspetti di DirectDraw. Abbiamo infine sviluppato una micro- applicazione per poter testare innanzitutto la versione di DirectDraw presente sul proprio computer ed in secondo luogo la compatibilità del proprio sistema con l'API in questione.
Questa volta faremo una breve panoramica su alcune caratteristiche fondamentali che rendono DirectDraw così particolare.
Innanzitutto cominciamo con la creazione di una classe objDirectX e successivamente di un oggetto objDirectDraw, utilizzando la versione 7 (quella disponibile sul computer sul quale scrivo attualmente). Il procedimento di creazione incluso nell'evento Load di Form1 avviene attraverso il metodo DirectDrawCreate :

Private objDirectX As DirectX7
Private objDirectDraw As DirectDraw7
Option Explicit
Private Sub Form_Load()
Set objDirectX = New DirectX7
Set objDirectDraw = objDirectX.DirectDrawCreate("")
End Sub

Naturalmente, come già in passato abbiamo avuto modo di vedere, alla chiusura dell'applicazione dovrà essere distrutto qualsiasi oggetto creato da codice, utilizzando Nothing che, per l'appunto, toglie l'essenza di oggetto sia ad objDirectX che ad objDirectDraw. Per questo, all'interno dell'evento Unload di Form1 sarà necessario aggiungere questo piccolo blocco di codice:

Private Sub Form_Unload(Cancel As Integer)
Set objDirectDraw = Nothing
Set objDirectX = Nothing
End Sub

L'intero codice che deriva da questi due blocchi, ossia:

Private objDirectX As DirectX7
Private objDirectDraw As DirectDraw7
Option Explicit
Private Sub Form_Load()
Set objDirectX = New DirectX7
Set objDirectDraw = objDirectX.DirectDrawCreate("")
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set objDirectDraw = Nothing
Set objDirectX = Nothing
End Sub

rappresenta nientemeno che la semplice applicazione di base per tutto ciò che si andrà successivamente a sviluppare con DirectDraw: abbiamo infatti l'apertura dell'applicazione in cui si creano gli oggetti precedentemente definiti e la fase di chiusura nella quale tali oggetti vengono distrutti.
Si dovrà fare spesso riferimento a questo progetto base all'apertura dei prossimi articoli in quanto da ora in avanti esso rapprensenterà la struttura delle nostre future applicazioni.

La prima applicazione (anche se piuttosto elementare), utilizza solo objDirectX.
In pratica ciò che vogliamo fare è creare un'elenco dei drivers disponibili su un computer. Questo ci permetterà in poche parole di ottenere la lista completa delle schede acceleratrici presenti, supporto (e non sostitutive) alla scheda 3D primaria:

Private objDirectX As DirectX7
Option Explicit
Private Sub Form_Load()
Set objDirectX = New DirectX7
Dim i As Long
With objDirectX.GetDDEnum
For i = 1 To .GetCount
MsgBox .GetDescription(i) & " " & .GetGuid(i) & _
" " & .GetMonitorHandle(i) & " " & .GetName(i)
Next
End With
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set objDirectX = Nothing
End Sub

Il risultato di questo test sull'hardware dipende naturalmente da quali tipi di schede sono presenti nel vostro computer.
Unicamente a titolo d'esempio vi fornisco qui di seguito le finestre di messagggio che compaiono sul computer su cui scrivo attualmente:

In poche parole il metodo GetDDEnum di DirectX svolge una funzione piuttosto simile al controllo Microsoft SysInfo, in quanto visualizza le informazioni sulla configurazione del computer nel quale opera. Sarebbe dunque una cosa interessante affiancare il metodo ed il controllo appena visti, per visualizzare tutte le informazioni disponibili relativamente ad una macchina.

Archivio:ndexed
Lezioni Commenta questa lezione Invia la tua guida Avviso per le nuove lezioni
Proponi un argomento

Visual Basic Italia© copyright 2000 - tutti i diritti riservati
E-mail:
vbitalia@libero.it