Mis on vahetu režiim?

Arvutigraafika programmeerimisel on vahetu režiim renderdusolek, kus tavapärastest toimingute jadast ja raamistikust, milles need eksisteerivad, minnakse täielikult mööda ja mõnel juhul deaktiveeritakse. See tähendab, et käivitatav rakendus peab otse välja kutsuma funktsioonid, mis on vajalikud kuvaseadmel, näiteks monitoril, millegi kuvamiseks, selle asemel, et tugineda programmivälistele kaasasündinud tsüklitele. Vahetut režiimi kasutatakse kõige sagedamini programmide jaoks, mis nõuavad võimalikult kiiret renderdusaega (nt multimeediarakendused või videomängud), või kasutatakse seda õppevahendina keerukate graafiliste teekide kasutamise õppimisel. Halvasti kavandatud või valesti rakendatud programm, mis kasutab vahetu režiimi renderdamist, võib põhjustada tühjade ekraanide või ekraani tühjade alade ilmumist ja säilimist, kuna vajaduse korral ei tehta automaatseid väljakutseid praeguse kaadri ümberjoonistamiseks. Ühte varianti tuntakse segarežiimina, milles programm hoiab säilitatud renderdusraamistiku paigas, püüdes samal ajal juhtida selle teatud osi vahetu režiimi stiilifunktsioonide kaudu.

Paljudes arvutirakendustes toimub teabe või graafika kuvaseadmesse renderdamine sündmusepõhise programmiarhitektuuri kaudu. See tähendab, et ekraan joonistatakse ümber ainult vastusena teatud tüüpi programmi või kasutaja sisendile. See toimib hästi selliste programmide puhul nagu tekstitöötlusprogrammid või veebibrauserid, kuid see ei tööta selliste rakenduste puhul nagu multimeediumipleierid, kunstilise renderdustarkvara või videomängud, mille puhul võib ekraani vajada 60 või enam korda sekundis ümber joonistada ilma igasuguse sisend. Lahenduseks on kohese režiimi kasutamine.

Selle asemel, et lubada operatsioonisüsteemil või graafikateegil kontrollida, millal ja kuidas kuva värskendatakse ja renderdatakse, võtab programm täieliku kontrolli enda kätte, eemaldades kõik takistused kuvaseadme ja rakenduse koodi vahel. Sel viisil saab programm taimerite ja muude kohandatud koodide abil luua oma kuvasilmuse, nii et ekraani joonistatakse ümber nii palju või nii vähe kordi, kui soovitud tulemuse saavutamiseks on vaja. Üks vahetu režiimi kasutamise keerukus on see, et mõned säilitusrežiimis renderdamise läbipaistvad funktsioonid (nt geomeetriamootor) ei pruugi olla saadaval, mistõttu on rakendusel vaja oma rakendusi. Teine probleem on see, et programm võib nõuda suurt töötlemisvõimsust, et säilitada renderdussilmus vastuvõetaval kiirusel.

Vahetu režiimi kasutamise alternatiiviks on segarenderdusrežiimi kasutamine. Selles kujunduses hoitakse säilitusrežiimis renderdusraamistikku paigas, et saaks kasutada kõiki graafikateegi funktsioone, kuid teatud funktsioonid või meetodid tühistatakse ja asendatakse kasutaja loodud koodiga, mis võib sundida olemasolevat renderdusraamistikku töötama viis, mis on rohkem nagu vahetu režiim. See meetod võib olla tõhus, kuid see võib luua ka koodi, mida on raske siluda ja millel võivad olla ootamatud tulemused, olenevalt sellest, kuidas kasutajakood ja raamatukogu kood omavahel suhtlevad.