Vad är omedelbart läge?

I datorgrafikprogrammering är omedelbart läge ett renderingstillstånd där den normala sekvensen av åtgärder, och det ramverk i vilket de finns, helt förbigås och, i vissa fall, avaktiveras. Detta innebär att applikationen som körs måste direkt anropa de funktioner som är nödvändiga för att visa vad som helst på en visningsenhet som en monitor istället för att förlita sig på medfödda cykler utanför programmet. Omedelbart läge används oftast för program som kräver snabbast möjliga renderingstider, såsom multimediaapplikationer eller videospel, eller används som ett läromedel när man lär sig hur man använder komplexa grafiska bibliotek. Ett dåligt utformat eller felaktigt implementerat program som använder omedelbar lägesrendering kan göra att tomma skärmar eller tomma områden på en skärm visas och kvarstår, eftersom inga automatiska anrop görs för att rita om den aktuella bildrutan om det behövs. En variant är känd som blandat läge, där ett program håller det kvarhållna renderingsramverket på plats samtidigt som det försöker kontrollera vissa delar av det genom stilfunktioner för omedelbar läge.

I många datorapplikationer utförs återgivning av information eller grafik till en bildskärmsenhet genom händelsestyrd programarkitektur. Detta innebär att skärmen ritas om endast som svar på någon typ av input från ett program eller användaren. Detta fungerar bra för program som ordbehandlare eller webbläsare, men det fungerar inte för program som multimediaspelare, mjukvara för konstnärlig rendering eller videospel där en skärm kan behöva ritas om 60 eller fler gånger varje sekund utan någon typ av inmatning. Lösningen är att använda omedelbart läge.

Istället för att låta ett operativsystem eller ett grafikbibliotek styra när och hur en bildskärm uppdateras och renderas, tar programmet fullständig kontroll och tar bort alla barriärer mellan bildskärmsenheten och applikationskoden. På så sätt kan ett program skapa sin egen visningsslinga, med hjälp av timers och annan anpassad kod, så att skärmen ritas om så många eller så få gånger som behövs för att uppnå önskat resultat. En komplikation med att använda omedelbart läge är att några av de transparenta funktionerna i återgivning av behållet läge – som en geometrimotor – kanske inte är tillgängliga, vilket kräver att applikationen har sina egna implementeringar. En annan fråga är att ett program kan kräva en stor mängd processorkraft för att upprätthålla renderingsslingan vid en acceptabel hastighet.

Ett alternativ till att enbart använda omedelbart läge är att använda ett blandat renderingsläge. I denna design hålls renderingsramverket för behållet läge på plats så att all funktionalitet i ett grafikbibliotek kan användas, men vissa funktioner eller metoder åsidosätts och ersätts med användargenererad kod som kan tvinga det befintliga renderingsramverket att fungera i en sätt som är mer som omedelbart läge. Den här metoden kan vara effektiv, men den kan också skapa kod som är svår att felsöka och som kan få oväntade resultat, beroende på hur användarkoden och bibliotekskoden interagerar.