Introduzione a DirectX Diego Colombo Universita di Pisa Dipartimento di Informatica DirectX o OpenGL? (parte prima) Non sono lontanamente la stessa cosa OpenGL e’ paragonabile solo ad una sottoparte di Directx OpenGL + SDL + OpenAL potrebbero cominciare ad essere paragonabili a DirectX anche se mancano ancora dei blocchi . . DirectX, l’anatomia Direct Play Direct Sound Direct Music Direct 3D Direct Draw Direct Show Direct Input DirectX, l’anatomia Direct Play Direct Music Direct Sound Direct 3D Direct Draw Direct Input Direct Show Network Sound Graphics User Input DirectX, il modello DX e’ interamente costruito su COM. Questo perche’ molti componenti hanno bisogno di gestire le risorse in modo autonomo. DirectShow usa dei thread che nelle applicazioni non sono visibili, anche perche’ spesso I componenti dialogano direttamente con I driver dei devices, se non sono direttamente l’interfaccia del driver DirectX e l’HW Driver DS Il primo tentativo e’ per HAL puro Si passa in software in caso di fallimento Lo sviluppatore non e’ ritenuto responsabile di gestire questa procedura. Avevamo detto driver? DDK DirectX Driver SDK (DXDDK) DXSDK Panoramica dei componenti Direct Input Gestione HW Tastiera Mouse HID Joystick Joypad Direct Input Enumerazione Device Discovery delle capabilities Scripting degli Effetti di Force FeedBack Direct Play Supporto di rete ai giochi Gestione sessioni Gestione delle lobby Gestione delle chat Gestione della voce Directx e l’audio Direct Sound Direct Music Application Direct Music Direct Sound HAL Direct Music Orchestrazione Gestione MIDI e WAV Gestione Strumenti e sintesi Gestione messaggi ed eventi SoundTrack dinamica ad Hardware Direct Music Timeline management Scriptabile Gestione accellerazione audio 3D Alta precisione nella gestione della temporizzazione Direct Sound Bytes . . Buffer HW e non Biterate Frequenza di campionamento e numero di canali Lo stato finale del suono Direct Sound Buffer acessibili tramite lock e unlock Uso degli effetti classici Uso di effetti di spazializzazione Possibilita’ di sitensi Interfaccia di cattura tramite I line in o il microfono Una tabella Grafica in Windows 2D Accellerazione 3D OS GDI Direct 3D GDI Direct Draw HW D3D DD GDI ed il livello SO Bitmap Regioni Alpha channel Trasformazioni 2D Gestione Colori e piani Clipping Direct Draw Limite dovuto alla memoria video Operazioni riconducibili a spostamenti di blocchi di memoria o BitBlitting Uso di Chroma Key Diesgnare Testo GDI DD D3D (anche generazione di mesh da testo) Windows espone il modello di aliasing, compreso il Clear Type Cosa si puo’ ottenere Multischermo Gestione della risoluzione in full screen Controllo sulle abilita’ della scheda video Controllo sulla presenza di piu’ schede video o Graphics Head Direct 3D Il cuore pulsante di directX Controllo automatico dell’accellerazione Esiste uno stato della pipeline centralizzato Accesso alle “superfici” (DXSurface) Gestione di Pmesh nativa Gestione Testo (fornito sia dal device che dalla mesh) Direct 3D Supporto per pixel e vertex shader (HLSL) Supporto per HDR e Radiance I Buffer secondari in memoria video Texture animate Direct Show Usato per la presentazione die contenuti multimediali Application Usa una struttura a grafi Direct Combina DS, DD e D3D Show Direct Sound Direct 3D HAL Direct Draw Note Dolenti . . . Name space Direct Draw Direct 3D Direct Sound Direct Music Direct Show Direct Play Direct Input Direct Video Playback Managed Unmanaged Si Si Si Si Si Si No Si No Si Si Si Si Si Si No Managed . . C# e VB!!!!!!! Il sistema e’ tipato e scompare quindi tutta l’infrastruttura sintattica necessaria a COM Programmazione piu’ intuitivae facile da controllare Un po’ di discorsi sul tema