Skip to content

Commit 48e564f

Browse files
Update tile sizes
1 parent 5023894 commit 48e564f

1 file changed

Lines changed: 16 additions & 6 deletions

File tree

public/app.js

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -319,19 +319,29 @@ async function rendreSortie() {
319319

320320
const code = entierSecurise(METHODES[state.method], METHODES.hex, 0);
321321
let cote = entierSecurise(state.side, 30, 1);
322+
const coteDemande = cote;
322323
const coteMin = coteSuretePourImage(w, h, state.method);
323-
if (cote < coteMin) {
324-
cote = coteMin;
324+
if (cote < coteMin) cote = coteMin;
325+
let nTuiles;
326+
for (let tentative = 0; tentative < 6; tentative++) {
327+
try {
328+
nTuiles = Number(wasm.generer_tuiles(w, h, cote, code));
329+
break;
330+
} catch (err) {
331+
if (tentative >= 5) throw err;
332+
cote = Math.ceil(cote * 1.5);
333+
}
334+
}
335+
if (cote !== coteDemande) {
336+
status.textContent = `Taille ajustee a ${cote}px (limite memoire WASM).`;
337+
}
338+
if (cote !== state.side) {
325339
state.side = cote;
326340
const tileSizeEl = document.getElementById("tile-size");
327341
if (tileSizeEl) tileSizeEl.value = String(cote);
328342
const tileSizeDisp = document.getElementById("tile-size-display");
329343
if (tileSizeDisp) tileSizeDisp.textContent = String(cote);
330-
status.textContent = `Taille ajustee a ${cote}px (limite memoire WASM).`;
331-
} else if (cote !== state.side) {
332-
state.side = cote;
333344
}
334-
const nTuiles = Number(wasm.generer_tuiles(w, h, cote, code));
335345
if (!Number.isInteger(nTuiles) || nTuiles < 0) {
336346
throw new Error(`Nombre de tuiles invalide renvoye par WASM: ${nTuiles}`);
337347
}

0 commit comments

Comments
 (0)