Tearing Beispiel
Übersicht

![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nur mal so ne Frage... Warum muß überhaupt der eine Buffer zum anderem Buffer KOPIERT werden? Dauert das nicht zu lange? Nagut mit 'Assemblers: LEA?!?' gehts vielleicht auch schnell. Kann man nicht einfach die Lesepointer und Schreibpointer umzustellen?
@walski, Kann man nicht folgendes anwenden? YAPos=AktuelleYPositionAbfragen If YAPos+YAPos-YBPos>768 Then YBPos=YBPos-768:Flipen Else YBPos=YAPos [EDIT] Die Fehlerquote durch die 'Zukunftsberechnung' dürfte gering ausfallen... Nur dann auftretten, wenn die Rechendauer stark zu/ab-nimmt. |
||
walskiEhemaliger Admin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hm, damit nähert man sich natürlich dem Zeilensprung theoretisch an, in der Praxis wird das meiner Meinung nach aber nicht hinhauen, da keine Konstanz der benötigten Zeit pro Gameloop vorherrscht.
Ach, ich hab keine Ahnung, in BB lässt sich das sowieso nur total doof realisieren, da ist Flip 1 wohl immernoch am tollsten ![]() Und zum Thema kopieren: Man kann natürlich den Backbuffer1 und Backbuffer2 einfach per Referenz tauschen. Der Frontbuffer müsste aber kopiert werden. Thorben |
||
buh! |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
OK, der Frontbuffer ist also fest. Die Grafikkarte kann nicht einfach auf ein anderen Speicherbereich umgelenkt werden. Dachte weil bei meinem altem Power-Basic gab es verschiedene Bildschirmmodie u.a. Screen 7 (640*480*4 (also 16 Farben)). Bei Modus 7 hatte man noch die Möglichkeit zwei weitere Parameter 0-3 anzugeben. Der erste (ich glaub) welchen Bildschirm man sehen wollte, und der zweite auf welchem Bildschirm man zeichnen wollte. Ein Flip musste man sich dann selber mit Variablen basteln... Bei sehr schnellen Bildschirmausgaben hatte man die besten Erfolge, wenn man alle vier Bildschirme benutzte und immer das Bild hinter dem was man gerade sieht zeichnete. Sowas wie Quattro-Buffer, wenn ich das richtig verstanden habe. Hier ein Beispiel mit drei Bildschirmen:BlitzBasic: [AUSKLAPPEN] While inkey$=\"\" |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group