14.07.2026 14:02

Moonlight Animate: wielkie dokumenty przestają zjadać pamięć

⏱️ 3 min czytania
Udostępnij:

Obraz w Moonlight Animate składa się z kafelków — małych kwadratów pikseli, z których program buduje każdą warstwę. Dotąd wszystkie kafelki dokumentu mieszkały w pamięci RAM. Przy zwykłej pracy to nic — ale komiks w rozdzielczości do druku, kilkanaście stron na jednym płótnie, każda z wieloma warstwami, potrafi urosnąć do rozmiarów, przy których pamięć się kończy, a program zwalnia.

Trzy poziomy pamięci

Od teraz kafelki żyją na trzech poziomach, jak w dobrze zarządzanym magazynie:

  • Gorące — to, nad czym właśnie pracujesz i co widzisz: pełne piksele w RAM, natychmiastowy dostęp.
  • Ciepłe — dalsze klatki animacji: spakowane w RAM (ten mechanizm działał już wcześniej).
  • Zimne (nowość) — strony i fragmenty poza widokiem: gdy dokument przekroczy budżet pamięci, zapisują się do pliku tymczasowego na dysku i wracają niezauważalnie przy pierwszym użyciu.

Budżet ustawisz w Preferencje → Narzędzia i wydajność (domyślnie 1024 MB); tam też całą funkcję można wyłączyć.

Odtwarzanie animacji nie dotyka dysku

Najważniejsza gwarancja: płynność odtwarzania ma pierwszeństwo przed budżetem. Okno klatek wokół głowicy odtwarzania to twarda podłoga — nigdy nie jest zrzucane na dysk, nawet gdy dokument przekracza budżet. Odległość klatek liczona jest „po pętli", więc zapętlona animacja, wracając do początku, też zastaje swoje klatki w pamięci. Efekt: 24 klatki na sekundę bez gubienia klatek, niezależnie od tego, ile stron komiksu leży obok na płótnie.

Bezpieczeństwo pikseli ponad wszystko

  • Zrzut na dysk jest bezstratny — piksele wracają co do bitu; zapisany projekt jest identyczny bajt w bajt niezależnie od tego, czy stronicowanie działało.
  • Pełny dysk albo błąd zapisu? Kafelki po prostu zostają w pamięci — nigdy nie tracisz ani piksela.
  • Plik tymczasowy sprzątany jest przy zamknięciu programu, a po ewentualnym crashu — automatycznie przy następnym uruchomieniu.
  • Cofanie, autozapis, współpraca w czasie rzeczywistym i eksport działają dokładnie tak samo — doczytują z dysku to, czego potrzebują.

Przy okazji: szybszy scrub animacji

Podczas prac naprawiliśmy też subtelny problem: przewijanie osi czasu przez „zimne" klatki animacji rozpakowywało je z powrotem do pełnego rozmiaru, cofając pracę oszczędzania pamięci. Teraz podgląd czyta klatki bez ich rozpakowywania — mniej szarpania pamięcią przy scrubie długich ujęć.

Po co to

To fundament pod naprawdę duże projekty: całe rozdziały komiksu w rozdzielczości druku, długie ujęcia animacji, dziesiątki warstw — bez wymiany komputera na taki z 64 GB RAM. Program sam pilnuje, żeby pamięć szła na to, nad czym właśnie pracujesz.

📚 Powiązane posty

14.07.2026 22:19

Silnik gier: od szablonu do grywalnej gry RPG top-down

Startowy szablon silnika gier to teraz kompletny, grywalny wycinek gry RPG top-down: chodzenie po siatce, rozmowy z postaciami, przeciwnik goniący gdy...
Czytaj dalej →
14.07.2026 19:16

Moonlight Animate — system dialogów w grach

Silnik gier 2D w Moonlight Animate ma teraz kompletny system dialogów: kwestie z efektem maszyny do pisania, wybory z warunkami, zmienne fabularne i g...
Czytaj dalej →
14.07.2026 18:40

Moonlight Animate: ruchoma panorama dźwięku także w wyeksportowanym wideo

Dźwięk przejeżdżający z lewego do prawego głośnika brzmiał dobrze w podglądzie, ale eksport przez serwer zamrażał go w miejscu. Ostatnia luka parytetu...
Czytaj dalej →

📧 Bądź na bieżąco!

Zapisz się na listę oczekujących, aby otrzymywać powiadomienia o nowych postach na Dev Blog oraz informacje o starcie platformy Moonlight.