Domanda

Un'applicazione predefinita WinAPI non ha doppio buffering. Invece, lo fa molto, ottimo lavoro di assicurare che solo ciò che deve essere disegnato è tratto, e che gli conferisce un aspetto senza soluzione di continuità. Tuttavia, quando si ridimensiona la finestra, l'intero fabbisogno cosa da ridisegnato, e questo provoca sfarfallio tra i controlli, lo sfondo della scheda, e, talvolta, il bianco della scheda.

Quindi la mia domanda è, qual è il modo più semplice per sostenere il doppio buffer nella mia applicazione?

È stato utile?

Soluzione

Crea una bitmap delle dimensioni della finestra, il rendering in quella bitmap e blit che nuovamente dentro la finestra quando il gioco è fatto.

Si può fare una bella straight-forward sostituzione sul posto nel codice esistente. Invece di utilizzare un contesto di dispositivo che rende nella finestra, utilizzare uno che rende nella bitmap, e utilizzare solo il DC originale per i riferimenti nella schiena bitmap.

Essere sicuri di mantenere la bitmap in giro - non creare in ogni chiamata vernice. Hai solo bisogno di ricrearlo quando la finestra viene ridimensionata.

Altri suggerimenti

Date un'occhiata al seguente articolo: display senza sfarfallio L'utilizzo di un off-screen DC .

  

Questo articolo descrive una tecnica per   disegno in un contesto di periferica finestra   (DC) in modo tale che lo schermo una   non sfarfallio. La tecnica è   molto semplice e facile da implementare.

ho imparato come evitare lo sfarfallio da questo tutorial di diversi anni fa.

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