Загрузка данных


(function() {
  const canvases = Array.from(document.querySelectorAll('canvas'));
  if (canvases.length === 0) return console.error("На странице вообще не найдено элементов холста!");

  console.log(`[Тест] Найдено холстов на странице: ${canvases.length}. Сканируем содержимое...`);
  let downloadedCount = 0;

  canvases.forEach((canvas, index) => {
    try {
      // Пытаемся принудительно выставить параметры сохранения буфера кадра
      const gl = canvas.getContext("webgl") || canvas.getContext("webgl2");
      if (gl) {
        // Оставляем WebGL буфер активным для чтения
        gl.clearColor(0, 0, 0, 0); 
      }

      const dataUrl = canvas.toDataURL('image/png');
      
      // Игнорируем пустые холсты (базовые короткие строки)
      if (dataUrl.length > 3000) {
        downloadedCount++;
        
        // Создаем финальное изображение на плотном белом фоне
        const img = new Image();
        img.onload = function() {
          const finalCanvas = document.createElement('canvas');
          finalCanvas.width = img.width;
          finalCanvas.height = img.height;
          const ctx = finalCanvas.getContext('2d');
          
          ctx.fillStyle = '#ffffff';
          ctx.fillRect(0, 0, finalCanvas.width, finalCanvas.height);
          ctx.drawImage(img, 0, 0);
          
          const link = document.createElement('a');
          link.download = `gartic-layer-${index}-success.png`;
          link.href = finalCanvas.toDataURL('image/png');
          link.click();
        };
        img.src = dataUrl;
        console.log(`%c[Слой #${index}] Найдено содержимое (${Math.round(dataUrl.length/1024)} КБ) — отправлено в Загрузки!`, "color: green; font-weight: bold;");
      } else {
        console.log(`[Слой #${index}] Пропущен — холст пустой.`);
      }
    } catch (e) {
      console.warn(`[Слой #${index}] Ошибка доступа к контексту:`, e);
    }
  });

  if (downloadedCount === 0) {
    console.log("%c[Внимание] Все найденные холсты вернули пустой результат. Игра защищает буфер рендеринга.", "color: orange; font-weight: bold;");
  }
})();