20.06.2026 17:09

mPainter: współpraca na warstwach — multi-select, limity ról i protokół zgody

⏱️ 4 min czytania
Udostępnij:

mPainter: współpraca na warstwach — multi-select, limity ról i protokół zgody

Praca w jednym dokumencie w kilka osób ma jeden odwieczny problem: kto może ruszać czyją warstwę? W tej aktualizacji mPainter dostaje pełny, przemyślany model współpracy warstwowej — od zaznaczania wielu warstw naraz, przez per-rolowe limity, aż po kulturalny protokół proszenia o zgodę na edycję cudzej pracy.

Multi-select warstw (jak w Photoshopie)

Panel Warstwy obsługuje teraz zaznaczanie wielu warstw (Ctrl/Shift-klik). Operacje działają na całym zaznaczeniu jako jeden krok cofania:

  • krycie, tryb mieszania, widoczność, blokady, link,
  • usuń, powiel, grupuj („Grupuj zaznaczone" wreszcie grupuje zaznaczone, nie tylko aktywną),
  • przesuwanie wielu warstw w górę/dół z zachowaniem kolejności.

Suwak krycia działa na żywo dla całego zaznaczenia, a gdy zaznaczone warstwy mają różne wartości — kontrolki pokazują stan „nieokreślony" zamiast mylić jedną liczbą. Wszystko działa też offline; w pojedynkę to po prostu wygodniejsza edycja.

Limity warstw per rola (ustawia admin sesji)

W ustawieniach sesji współpracy admin definiuje per rola:

  • ile warstw dana rola może trzymać naraz (np. rysownik max 3) — przy przekroczeniu pojawia się okno z informacją;
  • czy rola może edytować cudze warstwy (wysyła wtedy prośbę o zgodę),
  • a nawet czy robi to bez pytania (role uprzywilejowane, np. admin/moderator).

Zaznaczenie wolnej warstwy od razu ją zajmuje (miękki lock) i liczy do limitu; warstwy zajętej przez kogoś innego zaznaczenie nie przejmuje.

Protokół zgody — edycja cudzej warstwy

Sedno: gdy chcesz tknąć warstwę, którą trzyma ktoś inny (zaczniesz po niej malować albo zmienisz jej opcje), mPainter pyta właściciela o zgodę:

  • U Ciebie pojawia się okno-konsekwencji: kto korzysta z warstwy, co zrobi operacja, a jeśli jest niszcząca (scal/spłaszcz/usuń) — że wywali właściciela z warstwy.
  • U właściciela wyskakuje prośba: Pozwól / Odmów — z czasem 60 sekund na odpowiedź. Brak odpowiedzi (AFK) domyślnie liczy się jako zgoda, ale to przełączalne w opcjach sesji.
  • Operacje nieniszczące (np. zmiana krycia) nie wyrzucają właściciela — po prostu wymagają jego zgody. Operacje niszczące najpierw bezpiecznie domykają jego bieżące pociągnięcie (żeby nic nie zginęło).
  • Można poprosić o trwałą zgodę — właściciel może pozwolić na całą sesję, żeby nie klikać w kółko.

Wszystko albo nic (gdy warstwy mają różnych właścicieli)

Robisz operację na zbiorze warstw należących do kilku osób? mPainter wysyła zbiorczą prośbę do każdego właściciela i nic nie dzieje się na cudzych warstwach, dopóki wszyscy się nie zgodzą (Twoje własne zmieniają się od razu). Jeśli ktoś odmówi lub nie odpowie — operacja jest anulowana, a Ty dostajesz ekran wyników: lista warstw i osób ze statusem 🟢 zgoda / 🔴 odmowa / ⬜ brak odpowiedzi.

Operacje globalne i powiadomienia

Operacje na całym dokumencie (spłaszcz, scal widoczne, kadrowanie, zmiana rozmiaru/trybu koloru) dotyczą wszystkich warstw — gdy inny uczestnik je wykona, dostajesz nieblokujące powiadomienie, że dokument się zmienił.

Pod maską

Cały model jest spójny z istniejącym silnikiem współpracy mPaintera: zbiór zaznaczenia to ulotny stan UI (nigdy nie zapisywany ani nie wysyłany), a wszystkie zmiany konwergują u uczestników przez sprawdzony kanał operacji (z poprawną synchronizacją cofania/ponawiania — także dla wielowarstwowych zmian atrybutów). Limit warstw egzekwuje klient; zgoda i przejęcia są szeregowane przez serwer.

Efekt: kilka osób może realnie pracować w jednym pliku, nie wchodząc sobie w drogę i nie nadpisując nawzajem swojej roboty — z jasnymi zasadami, kto co może i kulturą „zapytaj, zanim ruszysz cudze".

📚 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.