2010-03-19 3 views
1

Est-il possible d'accéder au moteur de composition de bureau sous Windows Vista à partir d'une application WinForms? L'ETCD implique apparemment des applications rendant des tampons DCE au lieu de directement à l'écran. Étant donné qu'une application winforms n'a aucun moyen d'obtenir des informations sur la fréquence de rafraîchissement et le statut de la ligne de balayage du moniteur (autre que via DirectX), l'animation dans une application WinForms est sujette à des effets de déchirement. Avec DCE activé, les effets de déchirement sont atténués mais toujours là (apparemment le DCE peut toujours récupérer un tampon que votre application est à mi-chemin à travers l'écriture et le rendre à l'écran, produisant ainsi la demi-trame-moitié-de-la -les effets de déchirement en continu).Comment accéder au moteur de composition de bureau à partir d'une application WinForms?

Est-ce que mon application winforms peut communiquer avec l'ETCD et éventuellement éviter le rendu pendant les périodes de basculement du tampon?

Répondre

1

Pourriez-vous importer le DWMAPI.DLL, appelez le DwmGetCompositionTimingInfo, démonter la structure DWM_TIMING_INFO et synchroniser votre application avec toutes les informations de synchronisation que vous pouvez discerner?

Sinon, vous pourriez être en mesure de le contrôler avec DwmSetDxFrameDuration

+0

Cela ressemble exactement ce que je cherche. Avez-vous déjà rencontré des échantillons C# qui enveloppent cela? – MusiGenesis

+0

Je n'ai pas. Mais ce blog semble prometteur d'avoir des exemples ou d'avoir des liens vers des exemples - http://blogs.msdn.com/greg_schechter/archive/tags/DWM/default.aspx –

Questions connexes