Zachovaný režim - Retained mode
tento článek potřebuje další citace pro ověření.Září 2014) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Zachovaný režim v počítačové grafice je hlavní vzor Návrh API v grafických knihovnách,[1] ve kterém
- the grafická knihovna, místo toho klient, zachovává scénu (kompletní objektový model z vykreslování primitiv ) být poskytnuté a
- the klient volání do grafická knihovna nezpůsobují přímo skutečné vykreslování, ale využívají rozsáhlé nepřímé prostředky ke spravovaným zdrojům - tedy zachována - u grafická knihovna.[2] To nevylučuje použití dvojité ukládání do vyrovnávací paměti.
Okamžitý režim je alternativní přístup. Historicky byl zachovaným režimem dominantní styl GUI knihovny;[3] oba však mohou koexistovat ve stejné knihovně a v praxi nemusí být nutně vylučující.[4]
Přehled
V zachovaném režimu klient volání přímo nezpůsobí skutečné vykreslení, ale místo toho aktualizuje abstraktní interní model (obvykle seznam objektů), který je udržován v datovém prostoru knihovny. To umožňuje knihovně optimalizovat, kdy probíhá skutečné vykreslování spolu se zpracováním souvisejících objektů.[2]
Některé techniky optimalizace vykreslování zahrnují:
- řízení dvojité ukládání do vyrovnávací paměti[5][6]
- léčba skryté povrchy podle utracení zadního povrchu[7]/zabíjení okluze (Z-pufrování )[8]
- pouze přenos dat, která se změnila z jednoho snímku na druhý z aplikace do knihovny
Příkladem koexistence s okamžitým režimem ve stejné knihovně je OpenGL.[9] OpenGL má funkce okamžitého režimu, které mohou používat dříve definované objekty na straně serveru (textury, vrcholové vyrovnávací paměti a vyrovnávací paměti indexu, shadery atd.) bez opětovného odeslání nezměněných údajů.[10][11]
Mezi příklady vykreslovacích systémů se zachovaným režimem patří Windows Presentation Foundation,[2] SceneKit v systému macOS,[12] a PHIGS.
Existuje další hlavní vzor Návrh API v grafických knihovnách - Okamžitý režim.
Viz také
Reference
- ^ Jin, Zhefan (květen 2006). „Paralelní grafické vykreslování v retenčním režimu pro kooperativní návrhová prostředí“. 2006 10. mezinárodní konference o počítačové podpoře spolupráce v designu: 1–6. doi:10.1109 / CSCWD.2006.253142.
- ^ A b C Quinn Radich (30. května 2018). „Zachovaný režim versus okamžitý režim“. Aplikace Win32. Microsoft. Citováno 21. prosince 2019.
- ^ Feldmeier, Alex (12. října 2013). „Programování GUI“. Technická zpráva o informatice a softwarovém inženýrství UWP. Citováno 22. prosince 2019.
Zachovaný režim je již léta standardem. Téměř každé GUI je v zachovaném režimu.
- ^ QuinnRadich. „Zachovaný režim versus okamžitý režim - aplikace Win32“. docs.microsoft.com. Citováno 2020-08-21.
- ^ "OpenGL dvojité ukládání do vyrovnávací paměti". Citováno 7. května 2020.
- ^ „DirectX double buffering“. Citováno 7. května 2020.
- ^ „OpenGL face culling“. Citováno 7. května 2020.
- ^ „Zabíjení okluze DirectX“. Citováno 7. května 2020.
- ^ „OpenGL“. Citováno 4. května 2020.
- ^ "Podpora ovladačů OpenGL". NVIDIA Developer. 2013-08-19. Citováno 2020-08-21.
- ^ „OpenGL - průmyslová nadace pro vysoce výkonnou grafiku“. Skupina Khronos. 2011-07-19. Citováno 2020-08-21.
- ^ Weiher, Marcel (24. února 2017). Ladění výkonu pro iOS a macOS: Cocoa, Cocoa Touch, Objective-C a Swift. Addison-Wesley Professional. ISBN 9780133085532. Citováno 22. prosince 2019.
SceneKit a SpriteKit na druhé straně jsou API v zachovaném režimu