@@ -351,6 +351,10 @@ var SubtitlesOctopus = function (options) {
351351 self . oneshotState . eventOver = eventOver ;
352352
353353 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+ }
354358 self . ctx . clearRect ( 0 , 0 , self . canvas . width , self . canvas . height ) ;
355359 if ( ! eventOver ) {
356360 for ( var i = 0 ; i < event . items . length ; i ++ ) {
@@ -401,9 +405,9 @@ var SubtitlesOctopus = function (options) {
401405 }
402406 }
403407
404- function resetRenderAheadCache ( ) {
408+ function resetRenderAheadCache ( isResizing ) {
405409 if ( self . renderAhead > 0 ) {
406- if ( self . oneshotState . prevHeight && self . oneshotState . prevWidth ) {
410+ if ( isResizing && self . oneshotState . prevHeight && self . oneshotState . prevWidth ) {
407411 if ( self . canvas . height >= self . oneshotState . prevHeight * ( 1.0 - self . resizeVariation ) &&
408412 self . canvas . height <= self . oneshotState . prevHeight * ( 1.0 + self . resizeVariation ) &&
409413 self . canvas . width >= self . oneshotState . prevWidth * ( 1.0 - self . resizeVariation ) &&
@@ -575,6 +579,7 @@ var SubtitlesOctopus = function (options) {
575579 eventStart : data . lastRenderedTime ,
576580 eventFinish : data . lastRenderedTime - 0.001 ,
577581 emptyFinish : data . eventStart ,
582+ viewport : data . viewport ,
578583 spentTime : 0 ,
579584 blendTime : 0 ,
580585 items : [ ] ,
@@ -610,6 +615,7 @@ var SubtitlesOctopus = function (options) {
610615 emptyFinish : data . emptyFinish ,
611616 spentTime : data . spentTime ,
612617 blendTime : data . blendTime ,
618+ viewport : data . viewport ,
613619 items : items ,
614620 animated : data . animated ,
615621 size : size
@@ -753,7 +759,7 @@ var SubtitlesOctopus = function (options) {
753759 width : self . canvas . width ,
754760 height : self . canvas . height
755761 } ) ;
756- resetRenderAheadCache ( ) ;
762+ resetRenderAheadCache ( true ) ;
757763 }
758764 } ;
759765
@@ -789,22 +795,22 @@ var SubtitlesOctopus = function (options) {
789795 target : 'set-track-by-url' ,
790796 url : url
791797 } ) ;
792- resetRenderAheadCache ( ) ;
798+ resetRenderAheadCache ( false ) ;
793799 } ;
794800
795801 self . setTrack = function ( content ) {
796802 self . worker . postMessage ( {
797803 target : 'set-track' ,
798804 content : content
799805 } ) ;
800- resetRenderAheadCache ( ) ;
806+ resetRenderAheadCache ( false ) ;
801807 } ;
802808
803809 self . freeTrack = function ( content ) {
804810 self . worker . postMessage ( {
805811 target : 'free-track'
806812 } ) ;
807- resetRenderAheadCache ( ) ;
813+ resetRenderAheadCache ( false ) ;
808814 } ;
809815
810816
0 commit comments