Ce este modul imediat?

În programarea grafică pe computer, modul imediat este o stare de redare în care succesiunea normală de acțiuni și cadrul în care acestea există sunt complet ocolite și, în unele cazuri, dezactivate. Aceasta înseamnă că aplicația rulată trebuie să apeleze direct funcțiile necesare pentru a afișa ceva pe un dispozitiv de afișare, cum ar fi un monitor, în loc să se bazeze pe cicluri înnăscute din afara programului. Modul imediat este folosit cel mai adesea pentru programele care necesită cei mai rapidi timpi de randare posibil, cum ar fi aplicațiile multimedia sau jocurile video, sau este folosit ca instrument de predare atunci când învață cum să folosești biblioteci grafice complexe. Un program prost proiectat sau implementat necorespunzător care utilizează redarea în mod imediat poate face ca ecrane goale sau zone goale ale unui ecran să apară și să persistă, deoarece nu sunt efectuate apeluri automate pentru a redesena cadrul curent dacă este necesar. O variantă este cunoscută sub numele de modul mixt, în care un program menține cadrul de randare reținut în loc în timp ce încearcă să controleze anumite părți ale acestuia prin funcții de stil de mod imediat.

În multe aplicații computerizate, redarea informațiilor sau a graficelor către un dispozitiv de afișare se realizează prin arhitectura programului bazat pe evenimente. Aceasta înseamnă că ecranul este redesenat doar ca răspuns la un anumit tip de intrare de la un program sau utilizator. Acest lucru funcționează bine pentru programe precum procesoarele de text sau browserele web, dar nu funcționează pentru aplicații precum playerele multimedia, software-ul de randare artistică sau jocurile video în care un ecran ar putea fi nevoie să fie redesenat de 60 sau mai multe ori pe secundă fără niciun fel de intrare. Soluția este să folosiți modul imediat.

În loc să permită unui sistem de operare sau unei biblioteci grafice să controleze când și cum este actualizat și redat un afișaj, programul preia controlul complet, eliminând orice bariere între dispozitivul de afișare și codul aplicației. În acest fel, un program își poate crea propria buclă de afișare, folosind cronometre și alt cod personalizat, astfel încât ecranul să fie redesenat de câte ori este necesar pentru a obține rezultatul dorit. O complicație în utilizarea modului imediat este că unele dintre caracteristicile transparente ale redării modului reținut – cum ar fi un motor de geometrie – ar putea să nu fie disponibile, necesitând ca aplicația să aibă propriile implementări. O altă problemă este că un program poate necesita o cantitate mare de putere de procesare pentru a menține bucla de redare la o viteză acceptabilă.

O alternativă la utilizarea exclusivă a modului imediat este utilizarea unui mod de randare mixt. În acest design, cadrul de redare a modului reținut este menținut astfel încât să poată fi utilizate toate funcționalitățile unei biblioteci grafice, dar anumite funcții sau metode sunt suprascrise și înlocuite cu cod generat de utilizator care poate forța cadrul de randare existent să funcționeze într-un mod care seamănă mai mult cu modul imediat. Această metodă poate fi eficientă, dar poate crea și cod care este dificil de depanat și ar putea avea rezultate neașteptate, în funcție de modul în care interacționează codul utilizatorului și codul bibliotecii.