Wat is de directe modus?
In computer grafisch programmeren is de directe modus een weergavestatus waarin de normale volgorde van acties, en het kader waarin ze bestaan, volledig worden overbrugd en, in sommige gevallen, gedeactiveerd. Dit betekent dat de applicatie die wordt uitgevoerd, direct de functies moet oproepen die nodig zijn om iets op een weergaveapparaat zoals een monitor weer te geven in plaats van te vertrouwen op aangeboren cycli buiten het programma. De directe modus wordt meestal gebruikt voor programma's die de snelst mogelijke rendertijden vereisen, zoals multimediatoepassingen of videogames, of wordt gebruikt als een leermiddel bij het leren gebruiken van complexe grafische bibliotheken. Een slecht ontworpen of onjuist geïmplementeerd programma dat onmiddellijke modusweergave gebruikt, kan ertoe leiden dat lege schermen of lege delen van een scherm verschijnen en blijven bestaan, omdat er geen automatische oproepen worden gedaan om het huidige frame indien nodig opnieuw te tekenen. Eén variant staat bekend als de gemengde modus, waarin een programma het behouden rendering-framework op zijn plaats houdt terwijl het probeert bepaalde delen ervan te besturen via functies in de directe modusstijl.
In veel computertoepassingen wordt het weergeven van informatie of afbeeldingen naar een weergaveapparaat uitgevoerd door gebeurtenisgestuurde programmastructuur. Dit betekent dat het scherm alleen opnieuw wordt getekend als reactie op een bepaald type invoer van een programma of de gebruiker. Dit werkt goed voor programma's zoals tekstverwerkers of webbrowsers, maar het werkt niet voor toepassingen zoals multimediaspelers, artistieke weergavesoftware of videogames waarin een scherm mogelijk 60 of meer keer per seconde opnieuw moet worden getekend zonder enige vorm van invoer. De oplossing is om de directe modus te gebruiken.
In plaats van een besturingssysteem of grafische bibliotheek de mogelijkheid te geven om te bepalen wanneer en hoe een display wordt bijgewerkt en weergegeven, neemt het programma volledige controle en verwijdert het alle barrières tussen het display-apparaat en de applicatiecode. Op deze manier kan een programma zijn eigen weergavelus maken, met behulp van timers en andere aangepaste code, zodat het scherm zo vaak of zo vaak opnieuw wordt getekend als nodig is om het gewenste resultaat te bereiken. Een complicatie bij het gebruik van de directe modus is dat sommige van de transparante functies van rendering van de behouden modus - zoals een geometrie-engine - mogelijk niet beschikbaar zijn, waardoor de toepassing zijn eigen implementaties moet hebben. Een ander probleem is dat een programma veel verwerkingskracht nodig kan hebben om de rendering-loop op een acceptabele snelheid te houden.
Een alternatief voor het gebruik van de directe modus is uitsluitend het gebruik van een gemengde renderingmodus. In dit ontwerp wordt het rendering-framework voor behouden modus op zijn plaats gehouden, zodat alle functionaliteit van een grafische bibliotheek kan worden gebruikt, maar bepaalde functies of methoden worden genegeerd en vervangen door door de gebruiker gegenereerde code die het bestaande rendering-framework kan dwingen te werken in een manier die meer op de directe modus lijkt. Deze methode kan effectief zijn, maar het kan ook code maken die moeilijk te debuggen is en onverwachte resultaten kan hebben, afhankelijk van de interactie tussen de gebruikerscode en de bibliotheekcode.