Co to jest tryb natychmiastowy?
W programowaniu grafiki komputerowej tryb natychmiastowy jest stanem renderowania, w którym normalna sekwencja działań i struktura, w której istnieją, są całkowicie pomijane, aw niektórych przypadkach dezaktywowane. Oznacza to, że uruchamiana aplikacja musi bezpośrednio wywoływać funkcje niezbędne do wyświetlania czegokolwiek na urządzeniu wyświetlającym, takim jak monitor, zamiast polegać na wrodzonych cyklach poza programem. Tryb natychmiastowy jest najczęściej używany w programach, które wymagają najszybszego możliwego czasu renderowania, takich jak aplikacje multimedialne lub gry wideo, lub jest wykorzystywany jako narzędzie dydaktyczne podczas nauki korzystania ze złożonych bibliotek graficznych. Źle zaprojektowany lub nieprawidłowo zaimplementowany program, który używa renderowania w trybie natychmiastowym, może powodować wyświetlanie i utrzymywanie pustych ekranów lub pustych obszarów ekranu, ponieważ w razie potrzeby nie są wykonywane automatyczne wywołania przerysowania bieżącej ramki. Jedna odmiana jest znana jako tryb mieszany, w którym program utrzymuje zachowaną strukturę renderowania na miejscu, próbując kontrolować niektóre jej części za pomocą funkcji stylu trybu natychmiastowego.
W wielu aplikacjach komputerowych renderowanie informacji lub grafiki na urządzeniu wyświetlającym odbywa się poprzez architekturę programów sterowanych zdarzeniami. Oznacza to, że ekran jest przerysowywany tylko w odpowiedzi na pewien rodzaj danych wejściowych od programu lub użytkownika. Działa to dobrze w przypadku programów takich jak edytory tekstu lub przeglądarki internetowe, ale nie działa w aplikacjach takich jak odtwarzacze multimedialne, oprogramowanie do renderowania artystycznego lub gry wideo, w których ekran może wymagać przerysowania 60 lub więcej razy na sekundę bez żadnego rodzaju wkład. Rozwiązaniem jest użycie trybu natychmiastowego.
Zamiast pozwalać systemowi operacyjnemu lub bibliotece graficznej kontrolować, kiedy i jak wyświetlacz jest aktualizowany i renderowany, program przejmuje pełną kontrolę, usuwając wszelkie bariery między urządzeniem wyświetlającym a kodem aplikacji. W ten sposób program może utworzyć własną pętlę wyświetlania, używając timerów i innego niestandardowego kodu, dzięki czemu ekran jest przerysowany tyle razy lub tyle razy, ile jest to konieczne do osiągnięcia pożądanego rezultatu. Jedną z komplikacji w korzystaniu z trybu natychmiastowego jest to, że niektóre przezroczyste funkcje renderowania w trybie zatrzymanym - takie jak silnik geometrii - mogą być niedostępne, wymagając od aplikacji własnych implementacji. Inną kwestią jest to, że program może wymagać dużej mocy obliczeniowej, aby utrzymać pętlę renderowania z dopuszczalną prędkością.
Alternatywą dla korzystania wyłącznie z trybu natychmiastowego jest użycie trybu renderowania mieszanego. W tym projekcie ramka renderowania w trybie zatrzymanym jest utrzymywana na miejscu, dzięki czemu można wykorzystać całą funkcjonalność biblioteki graficznej, ale niektóre funkcje lub metody są zastępowane i zastępowane przez kod wygenerowany przez użytkownika, który może wymusić działanie istniejącej ramy renderowania w sposób bardziej przypomina tryb natychmiastowy. Ta metoda może być skuteczna, ale może również tworzyć kod, który jest trudny do debugowania i może mieć nieoczekiwane wyniki, w zależności od interakcji kodu użytkownika i kodu biblioteki.