@@ -351,6 +351,10 @@ var SubtitlesOctopus = function (options) {
351
351
self . oneshotState . eventOver = eventOver ;
352
352
353
353
var beforeDrawTime = performance . now ( ) ;
354
+ if ( event . viewport . width != self . canvas . width || event . viewport . height != self . canvas . height ) {
355
+ self . canvas . width = event . viewport . width ;
356
+ self . canvas . height = event . viewport . height ;
357
+ }
354
358
self . ctx . clearRect ( 0 , 0 , self . canvas . width , self . canvas . height ) ;
355
359
if ( ! eventOver ) {
356
360
for ( var i = 0 ; i < event . items . length ; i ++ ) {
@@ -401,9 +405,9 @@ var SubtitlesOctopus = function (options) {
401
405
}
402
406
}
403
407
404
- function resetRenderAheadCache ( ) {
408
+ function resetRenderAheadCache ( isResizing ) {
405
409
if ( self . renderAhead > 0 ) {
406
- if ( self . oneshotState . prevHeight && self . oneshotState . prevWidth ) {
410
+ if ( isResizing && self . oneshotState . prevHeight && self . oneshotState . prevWidth ) {
407
411
if ( self . canvas . height >= self . oneshotState . prevHeight * ( 1.0 - self . resizeVariation ) &&
408
412
self . canvas . height <= self . oneshotState . prevHeight * ( 1.0 + self . resizeVariation ) &&
409
413
self . canvas . width >= self . oneshotState . prevWidth * ( 1.0 - self . resizeVariation ) &&
@@ -575,6 +579,7 @@ var SubtitlesOctopus = function (options) {
575
579
eventStart : data . lastRenderedTime ,
576
580
eventFinish : data . lastRenderedTime - 0.001 ,
577
581
emptyFinish : data . eventStart ,
582
+ viewport : data . viewport ,
578
583
spentTime : 0 ,
579
584
blendTime : 0 ,
580
585
items : [ ] ,
@@ -610,6 +615,7 @@ var SubtitlesOctopus = function (options) {
610
615
emptyFinish : data . emptyFinish ,
611
616
spentTime : data . spentTime ,
612
617
blendTime : data . blendTime ,
618
+ viewport : data . viewport ,
613
619
items : items ,
614
620
animated : data . animated ,
615
621
size : size
@@ -753,7 +759,7 @@ var SubtitlesOctopus = function (options) {
753
759
width : self . canvas . width ,
754
760
height : self . canvas . height
755
761
} ) ;
756
- resetRenderAheadCache ( ) ;
762
+ resetRenderAheadCache ( true ) ;
757
763
}
758
764
} ;
759
765
@@ -789,22 +795,22 @@ var SubtitlesOctopus = function (options) {
789
795
target : 'set-track-by-url' ,
790
796
url : url
791
797
} ) ;
792
- resetRenderAheadCache ( ) ;
798
+ resetRenderAheadCache ( false ) ;
793
799
} ;
794
800
795
801
self . setTrack = function ( content ) {
796
802
self . worker . postMessage ( {
797
803
target : 'set-track' ,
798
804
content : content
799
805
} ) ;
800
- resetRenderAheadCache ( ) ;
806
+ resetRenderAheadCache ( false ) ;
801
807
} ;
802
808
803
809
self . freeTrack = function ( content ) {
804
810
self . worker . postMessage ( {
805
811
target : 'free-track'
806
812
} ) ;
807
- resetRenderAheadCache ( ) ;
813
+ resetRenderAheadCache ( false ) ;
808
814
} ;
809
815
810
816
0 commit comments