Scrivere un gioco e mi piacerebbe alcuni filmati nel mezzo. In modalità finestra, le classi DirectShow funzionano perfettamente e sono facili da usare. Ma quando il gioco è a schermo intero, non riesco a ottenere DirectShow per mostrare un filmato a schermo intero.DirectShow IVideoWindow e Fullscreen - Posso scrivere sulla mia superficie primaria D3D?
Fondamentalmente, quando ho un dispositivo D3D inizializzato, non riesco a visualizzare il video, anche con IVideoWindow.put_Fullscreen (true). Immagino che DirectShow non sia in grado di fare a schermo intero con un dispositivo D3D.
Così, ho provato rilasciando il mio dispositivo D3D durante la riproduzione del cutscene e reinizializzazione di nuovo dopo. Questo sembra funzionare piuttosto bene, ma quando DirectShow viene riprodotto a schermo intero, sembra che rubi lo stato attivo dalla finestra principale della mia app e non lo restituisca quando è finito. Ciò fa sì che DirectInput non riesca ad acquisire nuovamente il dispositivo in seguito (fornendomi un codice di errore "Accesso negato"). Ho provato SetForegroundWindow() prima di acquistarlo, ma ciò non risolve il problema, quindi potrebbe non essere il problema dopo tutto.
Comunque, per farla breve, tutto quello che voglio è un filmato a schermo intero nel bel mezzo della mia D3D app. C'è un modo preferito per realizzare questo? Posso farlo avendo l'output di DirectShow sulla mia superficie primaria D3D? Penso che risolverei i problemi che sto avendo.
Mi ci è voluto un po ', ma ho trovato l'esempio a cui fai riferimento (era nell'SDK di Windows, ma non nell'SDK di DirectX - che strano). Ne darò un'occhiata stasera e vedrò se riesco a capirlo. Sembra quello che sto cercando. – TrespassersW
DirectShow (nonostante il suo nome) è stato spostato su Windows SDK 5 o 6 anni fa. Mi ha confuso anche quando l'ho scoperto per la prima volta. In ogni caso, i vantaggi dell'utilizzo dell'allentatore VMR9 sono che è possibile ottenere l'accelerazione video hw con determinati formati, conversioni di spazio colore hw accelerate e deinterlacciamento ... per non parlare del rendering su una superficie d3d;) –
Pensavo solo a I ' D tornano e menziono che ho funzionato, grazie al campione che mi hai indicato. Grazie ancora. – TrespassersW