mirror of
https://github.com/niklasvh/html2canvas.git
synced 2023-08-10 21:13:10 +03:00
docs: add warning for webgl cloning with preserveDrawingBuffer=false (#2661)
This commit is contained in:
parent
58ff0003f7
commit
01ed87907a
@ -194,7 +194,7 @@ export class DocumentCloner {
|
|||||||
img.src = canvas.toDataURL();
|
img.src = canvas.toDataURL();
|
||||||
return img;
|
return img;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.context.logger.info(`Unable to clone canvas contents, canvas is tainted`);
|
this.context.logger.info(`Unable to inline canvas contents, canvas is tainted`, canvas);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -209,12 +209,23 @@ export class DocumentCloner {
|
|||||||
if (!this.options.allowTaint && ctx) {
|
if (!this.options.allowTaint && ctx) {
|
||||||
clonedCtx.putImageData(ctx.getImageData(0, 0, canvas.width, canvas.height), 0, 0);
|
clonedCtx.putImageData(ctx.getImageData(0, 0, canvas.width, canvas.height), 0, 0);
|
||||||
} else {
|
} else {
|
||||||
|
const gl = canvas.getContext('webgl2') ?? canvas.getContext('webgl');
|
||||||
|
if (gl) {
|
||||||
|
const attribs = gl.getContextAttributes();
|
||||||
|
if (attribs?.preserveDrawingBuffer === false) {
|
||||||
|
this.context.logger.warn(
|
||||||
|
'Unable to clone WebGL context as it has preserveDrawingBuffer=false',
|
||||||
|
canvas
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
clonedCtx.drawImage(canvas, 0, 0);
|
clonedCtx.drawImage(canvas, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return clonedCanvas;
|
return clonedCanvas;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.context.logger.info(`Unable to clone canvas as it is tainted`);
|
this.context.logger.info(`Unable to clone canvas as it is tainted`, canvas);
|
||||||
}
|
}
|
||||||
|
|
||||||
return clonedCanvas;
|
return clonedCanvas;
|
||||||
|
Loading…
Reference in New Issue
Block a user