|
@@ -67,6 +67,8 @@ class HTMLTexture extends CanvasTexture {
|
|
|
|
|
|
//
|
|
|
|
|
|
+const canvases = new WeakMap();
|
|
|
+
|
|
|
function html2canvas( element ) {
|
|
|
|
|
|
var range = document.createRange();
|
|
@@ -245,15 +247,25 @@ function html2canvas( element ) {
|
|
|
|
|
|
}
|
|
|
|
|
|
- var offset = element.getBoundingClientRect();
|
|
|
+ const offset = element.getBoundingClientRect();
|
|
|
+
|
|
|
+ let canvas;
|
|
|
+
|
|
|
+ if ( canvases.has( element ) ) {
|
|
|
+
|
|
|
+ canvas = canvases.get( element );
|
|
|
|
|
|
- var canvas = document.createElement( 'canvas' );
|
|
|
- canvas.width = offset.width;
|
|
|
- canvas.height = offset.height;
|
|
|
+ } else {
|
|
|
+
|
|
|
+ canvas = document.createElement( 'canvas' );
|
|
|
+ canvas.width = offset.width;
|
|
|
+ canvas.height = offset.height;
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
- var context = canvas.getContext( '2d'/*, { alpha: false }*/ );
|
|
|
+ const context = canvas.getContext( '2d'/*, { alpha: false }*/ );
|
|
|
|
|
|
- var clipper = new Clipper( context );
|
|
|
+ const clipper = new Clipper( context );
|
|
|
|
|
|
// console.time( 'drawElement' );
|
|
|
|