Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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++.