# Adaptívna kapacita vrstiev

Pevný historický strop 32 vrstiev bol nahradený kapacitným modelom `ptp.drawing-capacity/1`. Jedna tlačová strana môže obsahovať 256 vrstiev jednotnej scény. Z nich môže byť najviac 64 rastrových vrstiev; vektorové vrstvy môžu využiť všetky zostávajúce pozície.

## Prečo raster nemá neobmedzený počet

Importovaný obrázok je po dekódovaní približne `šírka × výška × 4` bajty, aj keď je PNG alebo WebP súbor na disku malý. Editor preto sleduje odhad všetkých aktívnych rastrových vrstiev v celej otvorenej kresliacej relácii. Rozpočet je podľa `navigator.deviceMemory` a typu ukazovateľa 128, 256, 512 alebo 768 MiB. Dotykové zariadenia majú konzervatívnejší strop.

Pri 80 % rozpočtu sa zobrazí upozornenie. Import, duplikácia alebo výplň, ktorá by prekročila rozpočet, sa nevykoná; už existujúca kresba, história a uložený projekt sa nemenia. Vektorové vrstvy možno ďalej pridávať, pokiaľ strana neprekročila 256 položiek scény.

## Pokryté cesty

- nová a duplikovaná vektorová vrstva,
- import, vloženie, drag-and-drop a duplikácia obrázka,
- rastrová vrstva vytvorená nástrojom Výplň,
- načítanie editovateľného projektu a recovery relácie,
- sanitizácia `ptp.drawing/1` a integritný preflight `ptp.drawing-integrity/1`,
- lokálne uloženie, Cloud a LIVE používajú rovnaký normalizovaný projekt.

## Diagnostika

`window.pasteToPrintDrawing.getCapacity()` vracia počty scénových, vektorových a rastrových vrstiev, zostávajúcu kapacitu, odhad rastrovanej pamäte, rozpočet, pomer tlaku a stav `ready`, `warning` alebo `blocked`. `checkRasterCapacity(width, height)` umožňuje integrácii ešte pred importom overiť konkrétny rozmer bez zmeny dokumentu.

## Overenie

```powershell
node scripts/test-drawing-adaptive-layers.js
```

Test vytvorí 256 vektorových vrstiev, overí odmietnutie 257., vytvorí 64 malých rastrových vrstiev, overí samostatný rastrový strop, pamäťový preflight, sanitizáciu projektu a nové kódy integritného auditu.
