Mikä on välitön tila?

Tietokonegrafiikan ohjelmoinnissa välitön tila on renderointitila, jossa normaali toimintojen järjestys ja puitteet, joissa ne ovat olemassa, ohitetaan kokonaan ja joissain tapauksissa deaktivoidaan. Tämä tarkoittaa, että käynnissä olevan sovelluksen on soitettava suoraan toiminnot, jotka ovat tarpeen näyttääkseen jotain näyttölaitteessa, kuten näytössä, sen sijaan, että luottaisit luontaisiin sykleihin ohjelman ulkopuolella. Välitöntä tilaa käytetään useimmiten ohjelmissa, jotka vaativat mahdollisimman nopean renderointiajan, kuten multimediasovellukset tai videopelit, tai sitä käytetään opetustyökaluna monimutkaisten graafisten kirjastojen käytön oppimisessa. Huonosti suunniteltu tai väärin toteutettu ohjelma, joka käyttää välittömän tilan muodostusta, voi aiheuttaa tyhjien näyttöjen tai tyhjien alueiden ilmestymisen ja pysymisen näkyvissä, koska nykyisen kehyksen uudelleen piirtämiseen ei soiteta automaattisesti. Yksi muunnelma tunnetaan sekamoodina, jossa ohjelma pitää säilytetyn renderointikehyksen paikallaan yrittäessään hallita sen tiettyjä osia välittömän tilan tyylitoimintojen avulla.

Monissa tietokoneohjelmissa tiedot tai grafiikka näytetään näyttölaitteelle tapahtumaohjatun ohjelmaarkkitehtuurin avulla. Tämä tarkoittaa sitä, että näyttö piirretään uudelleen vastauksena jonkin ohjelman tai käyttäjän syötteeseen. Tämä toimii hyvin ohjelmissa, kuten tekstinkäsittelyohjelmissa tai verkkoselaimissa, mutta ei sovelluksissa, kuten multimediasoittimissa, taiteellisessa renderointiohjelmistossa tai videopeleissä, joissa näyttö on ehkä piirrettävä uudelleen vähintään 60 kertaa sekunnissa ilman minkäänlaisia tulo. Ratkaisu on käyttää välitöntä tilaa.

Sen sijaan, että käyttöjärjestelmä tai grafiikkakirjasto antaisi ohjata, milloin ja miten näyttö päivitetään ja renderöidään, ohjelma ottaa täydellisen hallinnan ja poistaa esteet näyttölaitteen ja sovelluskoodin välillä. Tällä tavalla ohjelma voi luoda oman näytön silmukan käyttämällä ajastimia ja muuta mukautettua koodia, joten näyttö piirretään uudelleen niin monta tai niin monta kertaa kuin on tarpeen halutun tuloksen saavuttamiseksi. Yksi komplikaatio välittömän tilan käytössä on se, että jotkut säilytetyn tilan renderöinnin läpinäkyvät ominaisuudet – kuten geometriamoottori – eivät ehkä ole käytettävissä, mikä edellyttää sovellukselta omia toteutuksia. Toinen ongelma on, että ohjelma voi vaatia suuren määrän prosessointitehoa renderöintisilmukan pitämiseksi hyväksyttävällä nopeudella.

Vaihtoehtona välittömän tilan käyttämiselle yksinomaan on sekoitusmuodostustilan käyttö. Tässä mallissa säilytetyn tilan renderointikehys pidetään paikallaan, joten kaikkia grafiikkakirjasto-toimintoja voidaan käyttää, mutta tietyt toiminnot tai menetelmät ohitetaan ja korvataan käyttäjän luomalla koodilla, joka voi pakottaa nykyisen renderointikehyksen toimimaan tapa, joka on enemmän kuin välitön tila. Tämä menetelmä voi olla tehokas, mutta se voi myös luoda koodia, jota on vaikea korjata ja jolla voi olla odottamattomia tuloksia sen mukaan, miten käyttäjäkoodi ja kirjastokoodi toimivat vuorovaikutuksessa.