Moteur de composition
Pour piloter les mises à jour visuelles, l’application doit utiliser IDirectManipulationCompositor. Cet objet est chargé de mettre à jour les visuels en fonction des mises à jour de manipulation directe , de faire avancer les mises à jour d’inertie et de fournir des informations de minutage de composition à Direct Manipulation. En outre, une application doit utiliser le DCompManipulationCompositor fourni par Direct Manipulation, qui gère toutes les mises à jour visuelles pour le compte de l’application et pilote les mises à jour d’inertie.
DCompManipulationCompositor est une implémentation de l’interface IDirectManipulationCompositor qui encapsule DirectComposition. Au lieu de demander à l’application d’appliquer la sortie, par le biais de cet objet compositeur , Direct Manipulation peut appliquer la sortie en définissant les transformations directement sur l’arborescence DirectComposition. À l’aide de cette configuration, l’entrée peut être traitée et les transformations de sortie peuvent être appliquées, quelle que soit l’activité sur le thread d’interface utilisateur.
Pour fournir des informations de manipulation directe sur le minutage du moteur de composition, la classe DCompManipulationCompositor implémente l’interface IDirectManipulationFrameInfoProvider . Lors de la création d’une fenêtre d’affichage, QueryInterface le pointeur IDirectManipulationCompositor obtenu à partir de CoCreateInstance pour une instance de IDirectManipulationFrameInfoProvider. Le pointeur IDirectManipulationFrameInfoProvider est passé à la fonction IDirectManipulationManager::CreateViewport().