Sdílet prostřednictvím


Osvědčené postupy pro DirectComposition

Poznámka

U aplikací ve Windows 10 doporučujeme místo DirectComposition používat rozhraní API pro Windows.UI.Composition. Další informace najdete v tématu Modernizace desktopové aplikace pomocívrstvy vizuálu .

Toto téma popisuje osvědčené postupy pro používání aplikace Microsoft DirectComposition.

Osvědčené postupy

Následující tabulka uvádí doporučené postupy pro práci s vizuály Microsoft DirectComposition.

Cvičení Popis
Po vytvoření zařízení DirectComposition zavolejte metodu IDCompositionDevice::CheckDeviceState v reakci na každou zprávu WM_PAINT, aby se zajistilo, že zařízení je stále platné.
Pokud dojde ke ztrátě zařízení Microsoft DirectX Graphics Infrastructure (DXGI), ztratí se také zařízení DirectComposition přidružené k zařízení DXGI. Když zjistí ztracené zařízení, DirectComposition odešle zprávu WM_PAINT do všech oken. Volání CheckDeviceState v reakci na každou zprávu WM_PAINT umožňuje určit, jestli je objekt zařízení DirectComposition stále platný, a pokud ne, proveďte kroky k obnovení obsahu.
Další informace naleznete v tématu Objekt zařízení.
Vytvořte pouze počet vizuálních prvků potřebných pro kompozici nebo animaci a okamžitě po dokončení DirectComposition je zničte.
DirectComposition používá grafický procesor (GPU), prostředek, který vaše aplikace sdílí s jinými aplikacemi a operačním systémem. Tento postup zajišťuje, aby všechny aplikace a operační systém dostávaly odpovídající prostředky GPU.
Další informace naleznete v sekci Vizualizace.
Neskryjte vizuály nastavením neprůhlednosti na 0%; místo toho odeberte vizuály ze stromu vizuálu.
Nastavení neprůhlednosti na 0% vyžaduje více systémových prostředků než jejich odebrání z vizuálního stromu.
Další informace najdete v tématu neprůhlednost a vizuální strom.
Nezakrývejte vizuál použitím klipovacího obdélníku o nulové velikosti. Místo toho odeberte vizuál z vizuálního stromu.
Odebrání vizuálního prvku z vizuálního stromu vede k lepšímu výkonu než použití prázdného ořezového obdélníku.
Pro více informací, podívejte se na Výřez.
Nepoužívejte obdélník ořezu na vizuál, pokud to není nutné, například když obdélník ořezu zahrnuje celý rastrový obsah vizuálu.
Nepotřebné ořezové obdélníky ovlivňují výkon systému.
Pro více informací se podívejte na Výřez.
Pokud potřebujete velký jednobarevný rastrový obrázek, vytvořte menší rastrovou plochu a pak použijte transformaci měřítka místo vytvoření plochy v plné velikosti.
Použití transformace měřítka na menší plochu používá méně systémových prostředků než plocha plné velikosti.
Další informace naleznete v tématech Bitmap objekty a Transformace.
Vyhněte se použití 3D transformací na více úrovní vizuálního stromu, například u nadřazeného objektu a jeho sestupných instancí.
Použití 3D transformací na více úrovní vizuálního stromu může vést k nezamýšleným výsledkům, protože 3D transformace se ve stromu nevynásobí. Například otočení o 90 stupňů kolem osy y na dítěti a otočení o 90 stupňů kolem osy y na rodiči vedou k tomu, že oba vizuály zmizí.
Další informace naleznete v části Efekty.

Důležité informace o zabezpečení

Následující články obsahují pokyny pro psaní zabezpečeného kódu C++.

Jak používat directcomposition