File tree Expand file tree Collapse file tree 2 files changed +37
-12
lines changed
Expand file tree Collapse file tree 2 files changed +37
-12
lines changed Original file line number Diff line number Diff line change 5757 } //
5858
5959
60+ const canvases = new WeakMap ( ) ;
61+
6062 function html2canvas ( element ) {
6163
6264 var range = document . createRange ( ) ;
233235
234236 }
235237
236- var offset = element . getBoundingClientRect ( ) ;
237- var canvas = document . createElement ( 'canvas' ) ;
238- canvas . width = offset . width ;
239- canvas . height = offset . height ;
240- var context = canvas . getContext ( '2d'
238+ const offset = element . getBoundingClientRect ( ) ;
239+ let canvas ;
240+
241+ if ( canvases . has ( element ) ) {
242+
243+ canvas = canvases . get ( element ) ;
244+
245+ } else {
246+
247+ canvas = document . createElement ( 'canvas' ) ;
248+ canvas . width = offset . width ;
249+ canvas . height = offset . height ;
250+
251+ }
252+
253+ const context = canvas . getContext ( '2d'
241254 /*, { alpha: false }*/
242255 ) ;
243- var clipper = new Clipper ( context ) ; // console.time( 'drawElement' );
256+ const clipper = new Clipper ( context ) ; // console.time( 'drawElement' );
244257
245258 drawElement ( element ) ; // console.timeEnd( 'drawElement' );
246259
Original file line number Diff line number Diff line change @@ -67,6 +67,8 @@ class HTMLTexture extends CanvasTexture {
6767
6868//
6969
70+ const canvases = new WeakMap ( ) ;
71+
7072function html2canvas ( element ) {
7173
7274 var range = document . createRange ( ) ;
@@ -245,15 +247,25 @@ function html2canvas( element ) {
245247
246248 }
247249
248- var offset = element . getBoundingClientRect ( ) ;
250+ const offset = element . getBoundingClientRect ( ) ;
251+
252+ let canvas ;
253+
254+ if ( canvases . has ( element ) ) {
255+
256+ canvas = canvases . get ( element ) ;
249257
250- var canvas = document . createElement ( 'canvas' ) ;
251- canvas . width = offset . width ;
252- canvas . height = offset . height ;
258+ } else {
259+
260+ canvas = document . createElement ( 'canvas' ) ;
261+ canvas . width = offset . width ;
262+ canvas . height = offset . height ;
263+
264+ }
253265
254- var context = canvas . getContext ( '2d' /*, { alpha: false }*/ ) ;
266+ const context = canvas . getContext ( '2d' /*, { alpha: false }*/ ) ;
255267
256- var clipper = new Clipper ( context ) ;
268+ const clipper = new Clipper ( context ) ;
257269
258270 // console.time( 'drawElement' );
259271
You can’t perform that action at this time.
0 commit comments