Graphiques mis deux fois en mémoire tampon

Le scintillement est un problème courant lors de la programmation de graphiques. Les opérations graphiques qui nécessitent plusieurs opérations de dessin complexes peuvent provoquer le scintillement du rendu des images ou une apparence qui n’est pas acceptable. Pour résoudre ces problèmes, le .NET Framework fournit un accès à la double mise en mémoire tampon.

La double mise en mémoire tampon utilise une mémoire tampon pour résoudre les problèmes de scintillement associés aux opérations de dessin multiples. Quand la double mise en mémoire tampon est activée, toutes les opérations de dessin sont d’abord rendues dans une mémoire tampon au lieu de l’être sur la surface de dessin à l’écran. Une fois que toutes les opérations de dessin sont terminées, la mémoire tampon est copiée directement sur la surface de dessin qui y est associée. Comme une seule opération de dessin est effectuée sur l’écran, le scintillement de l’image associé aux opérations de dessin complexes est éliminé.

Doubles mise en mémoire tampon par défaut

La façon la plus simple d’utiliser la double mise en mémoire tampon dans vos applications consiste à utiliser la double mise en mémoire tampon par défaut pour les formulaires et les contrôles qui est fournie par le .NET Framework. Vous pouvez activer le double tampon par défaut pour vos contrôles Windows Forms et Windows créés en définissant la DoubleBuffered propriété sur true ou en utilisant la SetStyle méthode. Pour plus d’informations, consultez Guide pratique pour réduire le scintillement des graphiques à l’aide du mécanisme de double mise en mémoire tampon pour les formulaires et les contrôles.

Gestion manuelle des graphiques mis en mémoire tampon

Pour des scénarios plus avancés de double mise en mémoire tampon, comme l’animation ou la gestion avancée de la mémoire, vous pouvez utiliser les classes .NET Framework pour implémenter votre propre logique de double mise en mémoire tampon. La classe responsable de l’allocation et de la gestion des mémoires tampons graphiques individuelles est la BufferedGraphicsContext classe. Chaque domaine d’application possède sa propre instance par défaut qui gère toutes les mémoires tampons doubles par défaut BufferedGraphicsContext pour cette application. Dans la plupart des cas, il n’y aura qu’un seul domaine d’application par application. Il existe donc généralement une valeur par défaut BufferedGraphicsContext par application. Les instances par défaut BufferedGraphicsContext sont gérées par la BufferedGraphicsManager classe. Vous pouvez récupérer une référence à l’instance par défaut BufferedGraphicsContext en appelant le Current. Vous pouvez également créer une instance dédiée BufferedGraphicsContext , qui peut améliorer les performances des applications nécessitant beaucoup de graphiquement. Pour plus d’informations sur la création d’une BufferedGraphicsContext instance, consultez Guide pratique pour gérer manuellement les graphiques mis en mémoire tampon.

Affichage manuel de graphiques mis en mémoire tampon

Vous pouvez utiliser une instance de la BufferedGraphicsContext classe pour créer des mémoires tampons graphiques en appelant le BufferedGraphicsContext.Allocate, qui retourne une instance de la BufferedGraphics classe. Un BufferedGraphics objet gère une mémoire tampon associée à une surface de rendu, telle qu’un formulaire ou un contrôle.

Une fois instanciée, la classe gère le BufferedGraphics rendu sur une mémoire tampon graphique en mémoire. Vous pouvez afficher des graphiques dans la mémoire tampon via le Graphics, qui expose un Graphics objet qui représente directement la mémoire tampon. Vous pouvez peindre cet Graphics objet comme vous le feriez à un Graphics objet qui représente une surface de dessin. Une fois que tous les graphiques ont été dessinés dans la mémoire tampon, vous pouvez utiliser celui-ci BufferedGraphics.Render pour copier le contenu de la mémoire tampon sur l’aire de dessin à l’écran.

Pour plus d’informations sur l’utilisation de la BufferedGraphics classe, consultez Graphiques mis en mémoire tampon manuellement. Pour plus d’informations sur le rendu de graphiques, consultez Graphiques et dessins dans Windows Forms

Voir aussi