Što je neposredan način rada?

U programiranju računalne grafike, trenutni način rada je stanje renderiranja u kojem se normalni slijed radnji i okvir u kojem one postoje potpuno zaobilaze i, u nekim slučajevima, deaktiviraju. To znači da aplikacija koja se izvodi mora izravno pozvati funkcije potrebne za prikazivanje bilo čega na uređaju za prikaz kao što je monitor umjesto da se oslanja na urođene cikluse izvan programa. Neposredni način rada najčešće se koristi za programe koji zahtijevaju najbrže moguće vrijeme renderiranja, kao što su multimedijske aplikacije ili videoigre, ili se koristi kao nastavni alat pri učenju korištenja složenih grafičkih knjižnica. Loše dizajniran ili nepropisno implementiran program koji koristi renderiranje trenutnog načina može uzrokovati pojavu i ustrajanje praznih zaslona ili praznih područja zaslona jer se ne upućuju automatski pozivi za ponovno iscrtavanje trenutnog okvira ako je potrebno. Jedna varijacija poznata je kao mješoviti način rada, u kojem program drži zadržani okvir za renderiranje na mjestu dok pokušava kontrolirati određene njegove dijelove kroz funkcije stila trenutnog načina rada.

U mnogim računalnim aplikacijama, prikazivanje informacija ili grafike na uređaju za prikaz izvodi se kroz programsku arhitekturu vođenu događajima. To znači da se zaslon ponovno iscrtava samo kao odgovor na neku vrstu unosa programa ili korisnika. Ovo dobro funkcionira za programe kao što su programi za obradu teksta ili web-preglednici, ali ne radi za aplikacije kao što su multimedijski playeri, softver za umjetničko renderiranje ili videoigre u kojima bi se zaslon možda trebao ponovno nacrtati 60 ili više puta svake sekunde bez ikakve vrste ulazni. Rješenje je korištenje trenutnog načina rada.

Umjesto dopuštanja operativnom sustavu ili grafičkoj biblioteci da kontrolira kada i kako se zaslon ažurira i prikazuje, program preuzima potpunu kontrolu, uklanjajući sve barijere između uređaja za prikaz i koda aplikacije. Na taj način program može kreirati vlastitu petlju prikaza, koristeći tajmere i drugi prilagođeni kod, pa se ekran ponovno iscrtava onoliko puta koliko je potrebno za postizanje željenog rezultata. Jedna od komplikacija u korištenju neposrednog načina rada je da neke od transparentnih značajki renderiranja zadržanog načina – kao što je geometrijski stroj – možda neće biti dostupne, što zahtijeva da aplikacija ima vlastite implementacije. Drugi problem je da program može zahtijevati veliku količinu procesorske snage kako bi održao petlju renderiranja na prihvatljivoj brzini.

Alternativa korištenju isključivo neposrednog načina je korištenje mješovitog načina prikazivanja. U ovom dizajnu, zadržani okvir za renderiranje u načinu rada ostaje na mjestu tako da se može koristiti sva funkcionalnost grafičke biblioteke, ali su određene funkcije ili metode nadjačane i zamijenjene korisničkim kodom koji može prisiliti postojeći okvir za iscrtavanje da radi u način koji je više kao neposredan način. Ova metoda može biti učinkovita, ali također može stvoriti kod koji je teško otkloniti i može imati neočekivane rezultate, ovisno o tome kako su korisnički kod i kod knjižnice u interakciji.