Hva er en byttekjede?
En byttekjede er en serie rammebuffere, eller steder i dataminne, som brukes til å gjengi et bilde før det vises på en faktisk skjerm eller annen enhet. Det er alltid minst to rammebuffere i en byttekjede fordi den første eller aktive bufferen vanligvis identifiseres som den som vises på skjermen. Mens en framebuffer vises, kan den neste bufferen gjengis og forberedes for visning og deretter byttes til enheten etter behov. Bruk av en byttekjede kan eliminere noen av problemene som oppstår på grunn av konflikter mellom maskinvare- og programvaretidspunkt, samt grafiske gjenstander som kan vises på grunn av gjengivelse direkte til skjermenheten.
Måten et bilde vises på en skjerm er egentlig bare et spørsmål om å plassere riktig rekkefølge av tall i et spesifikt minneområde. Uansett hva som er i dette minnet, tegnes det på skjermen flere ganger hvert sekund. En skjerm tegnes i horisontale linjer fra øverste venstre hjørne til nederste høyre hjørne. Øyeblikket når skjermen starter neste ramme, når den beveger seg fra nedre høyre hjørne av skjermen til øvre venstre hjørne, er kjent som vertikal tilbaketrekning.
Implementeringer av en byttebuffer trekker bare til skjermen under den vertikale tilbaketrekningen. Hvis denne timingen er slått av, eller hvis et program prøver å tegne til en skjerm i perioder når en ramme blir gjengitt, kan det vises en grafisk avvik kjent som en tåre. Dette skjer når bildet i skjermenhetens minne plutselig endres midt i gjengivelsen, og får den ene siden av skjermen til å vise den siste rammen, og resten av skjermen viser den nye.
Ved å gjengi en scene på forhånd inn i en framebuffer, er den neste rammen som skal vises allerede forberedt, og den kan raskt skyves inn i skjermminnet slik at den vises. Mens det ene bildet vises, tegnes det neste i den inaktive rammebufferen, også kalt en bakbuffer. Dette skaper jevne animasjoner og visuelle effekter som kan nøyaktig tidfestes for å forhindre riving.
Begrepet "byttekjede" er mer kjent som dobbeltbufring eller trippelbuffring, avhengig av antall rammer som tegnes i forkant av den aktive rammebufferen. Å bruke nanosekund eller millisekund tidsstyringsalgoritmer er en viktig del av å bruke en byttekjede for å sikre at den maksimale bildefrekvensen til skjermen ikke overskrides, og at programmer kan sette tempo i egen prosessering og ressurser på et system. Hvis du bruker en byttekjede, hvis den er riktig implementert, kan det føre til jevne animasjoner uavhengig av egenskapene til en skjermenhet eller hvor lang tid det tar å gjengi en enkelt animasjonsramme.