Zobrazit seznam - Display list

Seznam zobrazení (nebo soubor display ) je série grafických příkazů, které definují výstupní obraz. Obrázek je vytvořen ( vykreslen ) spuštěním příkazů pro kombinaci různých primitiv . Tato činnost se nejčastěji provádí specializovaným zobrazovacím nebo zpracovatelským hardwarem částečně nebo zcela nezávislým na CPU systému za účelem uvolnění CPU od režie údržby displeje a může poskytovat výstupní funkce nebo rychlost nad možnosti CPU.

U zobrazovacího zařízení bez vyrovnávací paměti snímků , jako jsou například vektorové grafické displeje , byly příkazy prováděny každou zlomek sekundy, aby se udržel a animoval výstup. V moderních systémech je třeba příkazy provést pouze tehdy, když se změnily nebo aby se obnovil výstup (např. Při obnovení minimalizovaného okna).

Seznam zobrazení může představovat jak dvourozměrné, tak trojrozměrné scény. Systémy, které k zobrazení scény využívají seznam zobrazení, se na rozdíl od systémů okamžitého režimu nazývají systémy se zachovaným režimem .

Jedním z prvních populárních systémů se skutečným seznamem zobrazení byla 8bitová rodina Atari . Seznam zobrazení (ve skutečnosti se tak v Atari terminologii nazývá) je řada pokynů pro ANTIC , videoprocesor používaný v těchto strojích. Tento program, uložený v paměti počítače a prováděný programem ANTIC v reálném čase, může specifikovat prázdné řádky, libovolný ze šesti textových režimů a osmi grafických režimů, které části obrazovky lze vodorovně nebo svisle jemně posouvat, a spustit přerušení zobrazení seznamu ( nazývané rastrové přerušení nebo HBI v jiných systémech).

Rodina Amstrad PCW obsahuje funkci Display List, která se nazývá „Roller RAM“. Jedná se o 512 bajtovou oblast RAM skládající se z 256 16bitových vektorů do paměti RAM, jeden pro každý řádek displeje 720 × 256 pixelů. Každý vektor identifikuje umístění 90 bajtů monochromatických pixelů, které obsahují stavy 720 pixelů na řádku. 90 bajtů 8 stavů pixelů je ve skutečnosti rozloženo v 8bajtových intervalech, takže mezi každým bajtem dat pixelu je 7 nevyužitých bajtů. To vyhovuje tomu, jak textově orientovaný PCW konstruuje typickou vyrovnávací paměť obrazovky v paměti RAM, kde je 8 řádků prvního znaku uloženo v prvních 8 bajtech, řádky druhého znaku v dalších 8 bajtech atd. Roller RAM byl implementován pro zrychlení posouvání displeje, protože by bylo nepřijatelně pomalé, aby jeho 3,4 MHz Z80 posunul o 23 kB vyrovnávací paměť displeje „ručně“, tj. V softwaru. Počáteční položka Roller RAM použitá na začátku obnovy obrazovky je řízena I / O registrem, na který lze zapisovat. Obrazovku lze tedy posouvat jednoduše změnou tohoto I / O registru.

Dalsi system pouzivajici funkci hardwaru podobnou Display Listu je Amiga , ktera ne nahodou byla navrzena nekterými stejnými lidmi, kterí vyrobili vlastní hardware Atari 8-bit . Amiga zobrazovací hardware byl na svou dobu extrémně sofistikovaný a jakmile byl nasměrován na produkci zobrazovacího režimu, pokračoval by v tom automaticky pro každý následující řádek skenování. Počítač také zahrnoval vyhrazený koprocesor s názvem „ Copper “, který spouštěl jednoduchý program nebo „Copper List“ určený pro modifikaci hardwarových registrů synchronizovaných s displejem. Pokyny Copper List by mohly přimět měď, aby počkala, až se displej dostane na konkrétní pozici na obrazovce, a poté změnila obsah hardwarových registrů. Ve skutečnosti to byl procesor vyhrazený pro obsluhu přerušení rastru . Měď byla použita Workbenchem pro mixování více režimů zobrazení (více rozlišení a barevných palet na monitoru najednou) a mnoha programy pro vytváření duhových a přechodových efektů na obrazovce. Amiga Copper byla také schopna překonfigurovat středový rám sprite engine s jediným skenováním zpoždění. To umožnilo Amize čerpat více než 8 hardwarových skřítků, pokud další skřítci nesdíleli skenovací řádky (nebo jednu mezeru skenovací řádky) s více než 7 dalšími skřítky. tj. pokud alespoň jeden sprite dokončil kreslení, mohl být pod něj na obrazovku přidán další sprite. Pozdější 32bitová čipová sada AGA navíc umožňovala kreslení větších skřítků (více pixelů na řádek) při zachování stejného multiplexování. Poznamenejme, že Amiga měla také vyhrazený hardware pro přesouvání bloků ("blitter"), který dokázal kreslit větší objekty do framebufferu. Toto se často používalo místo nebo navíc k skřítkům.

V primitivnějších systémech lze výsledky seznamu zobrazení simulovat, i když za cenu zápisů náročných na CPU do určitých registrů režimu zobrazení, řízení barev nebo jiných vizuálních efektů ve videozařízení, spíše než série vykreslování příkazy prováděné zařízením. Je tedy nutné vytvořit zobrazený obraz pomocí nějakého jiného procesu vykreslování, a to buď před, nebo během provádění generování zobrazení na základě CPU. V mnoha případech je obraz také upraven nebo znovu vykreslen mezi snímky . Obrázek se poté zobrazí různými způsoby, v závislosti na přesném způsobu implementace zobrazovacího kódu řízeného CPU.

Příkladem možných výsledků na těchto starších strojích vyžadujících video řízené CPU jsou efekty jako režim FLI Commodore 64/128 nebo Rainbow Processing na ZX Spectrum.

Ukončení podpory

Seznamy zobrazení byly v moderní grafické architektuře do značné míry zastaralé, protože představují sadu příkazů v grafickém kanálu s pevnou funkcí . Moderní architektury používají shadery a objekty vyrovnávací paměti vrcholů , aby se vyhnuly vázání grafického výkonu na CPU . Nízkoúrovňová grafická rozhraní API, jako jsou Vulkan a DirectX 12, však vystavují seznamy jako funkce ve formě vyrovnávacích pamětí příkazů a seznamů příkazů.

Reference

Viz také