From 862d45f6215fff5317707cdb12e25b264d5bc7eb Mon Sep 17 00:00:00 2001 From: Timo Wagner Date: Fri, 7 Nov 2025 17:58:29 +0100 Subject: [PATCH] Fix webgl transition from video to slide --- modules/admin.js | 3 +++ modules/bundle.js | 2 +- public/js/displayWebGl.js | 3 ++- templates/bundle/render/empty.png | Bin 0 -> 38656 bytes 4 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 templates/bundle/render/empty.png diff --git a/modules/admin.js b/modules/admin.js index 91b6905..5be93ce 100644 --- a/modules/admin.js +++ b/modules/admin.js @@ -442,6 +442,9 @@ export default class admin { } bundle.save(); + // Adds empty slide render for smooth transitions + // Could be enhanced with the actual last video frame + fs.copyFileSync("./templates/bundle/render/empty.png","./data/bundles/" + data.bundleName + "/render/" + filename + ".png") cli.success("save video link"); socket.emit("callback.saveVideo", {}); diff --git a/modules/bundle.js b/modules/bundle.js index 64f6d28..e1d404b 100644 --- a/modules/bundle.js +++ b/modules/bundle.js @@ -115,7 +115,7 @@ export default class bundleClass { x++; } if (slide.uuid === uuid) { - if (slide.type === "slide") { + if (slide.type === "slide" || slide.type === "video") { let path = process.cwd() + "/data/bundles/" + this.name; try { uuid = checkAndSanitizeFilePathName(uuid) diff --git a/public/js/displayWebGl.js b/public/js/displayWebGl.js index 4f79942..eb45de6 100644 --- a/public/js/displayWebGl.js +++ b/public/js/displayWebGl.js @@ -300,6 +300,7 @@ function nextSlide(data) { displayWebPage(serverOptions.currentMeta.webUrl); break; case "video": + sketch.showSlide(serverOptions.currentFile, serverOptions.transition); displayVideo(serverOptions.currentMeta.url, serverOptions.currentMeta.loop, serverOptions.currentMeta.mute); setTimeout(function () { clearIFrame(getWebLayer()); @@ -446,7 +447,7 @@ async function preloadImages(data) { for (let i in allSlides) { try { - if (allSlides[i].type === "slide") { + if (allSlides[i].type === "slide" || allSlides[i].type === "video") { await sketch.loadImage("/render/" + serverOptions.currentBundle + "/" + allSlides[i].uuid + ".png", allSlides[i].uuid); } } catch (err) { diff --git a/templates/bundle/render/empty.png b/templates/bundle/render/empty.png new file mode 100644 index 0000000000000000000000000000000000000000..692398635834719483f0a882c2cc7ae724165655 GIT binary patch literal 38656 zcmeI4J!n%=6vyvtLK;h}2`#16qG{{W$tsBT18p>=2}qUD)f#map`(*NKako%D1t7I z9kmFGgE+)N935P0T{?+E1t%9#Oq0I*-n-|%o2B5;-*$6DllOl4pL5Us-_!Tt!pw9} z*I<`Ys;5#eRh8=Wl}b-!GmV*VpWdBSs-P;R;_QvNjnBorQrV8;_e*R0j$TXk-`W`R zI?~x(VbWLj!GZMS@^ISzp8m6^-fFLYVI34kYU*L%SjPQ9-SwME*Rl1fc`r4;Tt4Kw z;#{Goex;l@m0QRT_@h&cMfbO*UhGc>vw1<2rMem#t9H8)4)}i(;0CBhIx_3!r7OWp z``y*mMyLIq;4X6caW%czch~)GncC^ZU%Pn)w-9HPS&k*7QTxajhgQSdJAG=^!0huu$tbLWVNg6*5Q%=~&A& zc37?rCYy6>W!s7+q=R&XDTS{i>$Y$POVANANGBAEOuI-2=~yd#4kE-N6j2HX5f;lj zaI=vP(viDDjz1kC!||spWb)qJtITB33&1IQqUnT;+%iHsNJp+rjb0CWcOu1YoDjV` zaUMaH+gi<$PMk+SM zj@bOr_7w(*JU*oD%Mmh22kF?Ie%iid|AC&N?Mo~|ktBn3v{2*#=^!1kE2Qm9)@|Vo zZC{R%K{}yOWVZe9(s_IQ`PZNqAZ~|Y55{@K3UQoeoMjo!jT!90SezIkggqG9hL}|r z(m^`1R=^%~gbeneD`b!k(y^9l+vD-9e|dRzu<>ZIdzb%S{P>}|tM62H!oO~;_+~=u z^*VpHeQwvfdhOUzZoYLcJyd_x_K{Ml)r>1Xa)t5yygJ|ZL0P+Nd#$yeR#&}L_fEEb z{1=o#Q>6mqab;hY#=dlvKpG@C9lz9J5l>CXTMIA-d=PqsH} zH=RA;0LMna=a?q>vVHxx6=z$S7Eo4Dz~TR}5`=--ZdR?4nhiL>u@S&*w^b=y83s7O;Upp?fMse+ zp<6Km9N>g*YOD0xp`Go`h`=(9l;37(00%hcHWtg&QEdVTI5q;QkAKh(#o0IoqsSNZ07&~ literal 0 HcmV?d00001