atarionline.pl Podwójne buforowanie / display listy - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1: CommentAuthorVagant
      • CommentTime11 Jun 2023 12:06 zmieniony
       
      Hejka,

      Mam takie proste pytanie. Próbuję przenieść swój kod animujący obracający się obiekt 3D na Atari XE i wszystko fajnie tylko mam mały problem z buforowaniem ekranów. Z tego co przeczytałem to mogę to osiągnąć malując na jednym ekranie, uruchomić display listę do tego ekranu, namalować kolejną klatkę na innym ekranie i uruchomić drugą display listę jak skończę malowanie (podmienić display listy) i tak w pętli. Kod nie mesli się w 1 VBL więc nie korzystam z przerwania.
      Czy to wystarczy? Czy przy przełączaniu display listy powinienem czekać na VBL? Jeśli tak to jak skuteczne to zrobić?
      Mogę sprawdzać czy zmieniła się wartość pod adresem 20 ale to mi nie rozwiązuje sprawy.
      Piszę w MADS.

      No dobra, działa - nie wiem jak usunąć tylko wpis :)
      • 2: CommentAuthortebe
      • CommentTime11 Jun 2023 13:06
       
      jak uniknąć dwubuforowania?

      ->link<-
      • 3: CommentAuthortebe
      • CommentTime11 Jun 2023 13:06
       
      bez udziału OS-a i komórki $14 (VCOUNT = $D40B)

      bit VCOUNT
      bmi *-3
      bit VCOUNT
      bpl *-3

      ;---------------------------

      z udziałem OS-a

      lda:cmp:req 20
      • 4: CommentAuthorVagant
      • CommentTime11 Jun 2023 13:06
       
      Super, dzięki. Teraz zrobiłem opcja 2 i działa ok. Ten opis zaraz doczytam.
      W sumie szybciej ten sam kod na 65xe niż c64 :)
      • 5:
         
        CommentAuthorpirx
      • CommentTime11 Jun 2023 15:06 zmieniony
       
      jeśli masz włączony system (a masz jak widać), to najlepiej użyć
      DLPTRS EQU $0230

      To jest systemowy cień adresu display list, który jest czytany przez system na przerwaniu VBL.

      Czyli rysujesz sobie co tam Ci potrzeba, jak narysowane to update'ujesz DLPTRS i mozesz juz cos obliczasz do nowego screena a dl ci sie samo przelaczy na vbl.

      na nastepnym levelu to raczej modyfikujesz adres ekranu w dl, zeby nie trzymac kilku podobnych kopii dl.

      warto uzyc jakiejs listy systemowych labelek, np. ->link<-
      w komodzie bardzo mi przeszkadza, ze chyba nie ma bardzo dobrze ustalonej listy nazw ekwatów systemowych :]
      • 6: CommentAuthorVagant
      • CommentTime11 Jun 2023 16:06
       
      Wielkie dzięki za pomoc! Bardzo przydatne informacje.
      • 7:
         
        CommentAuthorjhusak
      • CommentTime11 Jun 2023 17:06 zmieniony
       
      Doublebuffering to moc! Amaurote i Draconus tego używają, przez co sprity nie mrygają. A LN2 nie, więc postaci rysują się po wyświetleniu obrazka.
      • 8: CommentAuthorAdam
      • CommentTime12 Jun 2023 16:06
       

      jhusak:

      A mnie w komodzie drażni ten "kernal"

      Mnie na Atari drażni "kernaw". Ale to chyba nie ten wątek ;)