Domanda

Ho una finestra Direct2D che dipinge bene quando a fuoco; tuttavia, quando messa a fuoco si sposta in un'altra finestra (stessa applicazione o un altro), l'intera finestra va nero. Ho appuntato il basso problema per l'utilizzo del ID2D1HwndRenderTarget::Clear. Questa funzione è fondamentale per la mia applicazione come senza di essa, la pittura diventa piuttosto ... strano.

C'è un modo finestra Direct2D una non-focalizzata in grado di dipingere come normale (nota: WM_PAINT viene chiamato come al solito, come è Clear, BeginPaint, ecc tutti senza errori)

Grazie in anticipo.

È stato utile?

Soluzione

Con la mia esperienza con DirectX, se i giri schermo indietro è perché DX ha perso il dispositivo è stato 'pittura' a. Questo succede molto - per esempio -. Quando si passa da una finestra DirectX intero schermo in un'altra applicazione, e viceversa

Quindi quello che devi fare è ri-inizializzare il dispositivo DX in modo che possa riprendere le operazioni di verniciatura.

Questo potrebbe fornire un ulteriore aiuto (non il mio sito web, ma una rapida ricerca su Google girato in su)

http://www.programmersheaven.com/2/FAQ -DIRECTX-Evitare-task-switching

Altri suggerimenti

Da MSDN,

Handling Device Loss
  

Mentre il programma è in esecuzione, la   dispositivo grafico che si sta utilizzando   potrebbe non essere più disponibile. Per esempio,   il dispositivo può essere perso se il display   risoluzione cambia, o se l'utente   rimuove la scheda video. Se la   dispositivo viene perso, il bersaglio rendering anche   non è più valido, insieme a qualsiasi   risorse del dispositivo-dipendente che erano   associato al dispositivo. Direct2D   segnala un dispositivo smarrito restituendo il   il codice di errore D2DERR_RECREATE_TARGET da   il metodo EndDraw. Se si riceve   questo codice di errore, è necessario ricreare   il bersaglio rendering e tutti   dipendenti dal dispositivo risorse.

Si prega di controllare il link per maggiori informazioni. http://msdn.microsoft.com/en-us /library/ff684174(VS.85).aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top