Bonnes pratiques pour DirectComposition
Notes
Pour les applications sur Windows 10, nous vous recommandons d’utiliser les API Windows.UI.Composition au lieu de DirectComposition. Pour plus d’informations, consultez Moderniser votre application de bureau à l’aide de la couche Visual.
Cette rubrique décrit les meilleures pratiques pour l’utilisation de Microsoft DirectComposition.
meilleures pratiques recommandées.
Le tableau suivant présente les pratiques recommandées pour l’utilisation des visuels Microsoft DirectComposition.
Pratiquer | Description |
---|---|
Après avoir créé un appareil DirectComposition, appelez la méthode IDCompositionDevice::CheckDeviceState en réponse à chaque message WM_PAINT pour vous assurer que l’appareil est toujours valide. |
Si l’appareil DXGI (Microsoft DirectX Graphics Infrastructure) est perdu, l’appareil DirectComposition associé à l’appareil DXGI est également perdu. Lorsqu’il détecte un appareil perdu, DirectComposition envoie le message WM_PAINT à toutes les fenêtres. L’appel de CheckDeviceState en réponse à chaque message WM_PAINT vous permet de déterminer si l’objet d’appareil DirectComposition est toujours valide et, dans le cas contraire, de prendre des mesures pour récupérer du contenu. Pour plus d’informations, consultez Objet Device. |
Créez uniquement le nombre de visuels nécessaires pour une composition ou une animation et détruisez-les immédiatement après la fin de DirectComposition. |
DirectComposition utilise l’unité de traitement graphique (GPU), une ressource que votre application partage avec d’autres applications et le système d’exploitation. Cette pratique garantit que toutes les applications et le système d’exploitation reçoivent des ressources GPU adéquates. Pour plus d’informations, consultez Visuels. |
Ne masquez pas les visuels en définissant l’opacité sur 0 % ; au lieu de cela, supprimez les visuels de l’arborescence visuelle. |
La définition de l’opacité sur 0 % nécessite plus de ressources système que de les supprimer de l’arborescence visuelle. Pour plus d’informations, consultez Opacité et arborescence visuelle. |
Ne masquez pas un visuel en appliquant un rectangle de clip vide (de taille nulle) à un visuel. Au lieu de cela, supprimez le visuel de l’arborescence visuelle. |
La suppression d’un visuel de l’arborescence visuelle génère de meilleures performances que l’application d’un rectangle de clip vide. Pour plus d’informations, consultez Découpage. |
N’appliquez pas de rectangle de clip à un visuel si celui-ci n’est pas nécessaire, par exemple un rectangle de clip qui inclut l’intégralité du contenu bitmap du visuel. |
Les rectangles d’clip inutiles nuisent aux performances du système. Pour plus d’informations, consultez Découpage. |
Si vous avez besoin d’une grande image bitmap unicolore, créez une surface bitmap plus petite, puis appliquez une transformation d’échelle au lieu de créer une surface de taille réelle. |
L’application d’une transformation de mise à l’échelle à une surface plus petite utilise moins de ressources système qu’une surface de taille réelle. Pour plus d’informations, consultez Objets bitmap et transformations. |
Évitez d’appliquer des transformations 3D à plusieurs niveaux d’une arborescence visuelle, par exemple à un parent et à ses descendants. |
L’application de transformations 3D à plusieurs niveaux d’une arborescence visuelle peut produire des résultats inattendus, car les transformations 3D ne sont pas multipliées dans l’arborescence. Par exemple, une rotation de 90 degrés autour de l’axe y sur un enfant et une rotation de 90 degrés autour de l’axe y sur un parent entraîne une rotation des deux visuels vers l’extérieur. Pour plus d’informations, consultez Effets. |
Considérations relatives à la sécurité
Les articles suivants fournissent des conseils pour l’écriture de code C++ sécurisé.
- Meilleures pratiques de sécurité pour C++
- Conseils de sécurité sur les & pratiques de modèles pour les applications