@@ -14,6 +14,7 @@ const gui = new dat.GUI({ name: 'Points GUI' });
1414const folderOptions = gui . addFolder ( 'options' ) ;
1515const folderControls = gui . addFolder ( 'controls' ) ;
1616const folderSongs = gui . addFolder ( 'songs' ) ;
17+ const MAXCHARS = 30 ;
1718
1819let audio = null ;
1920let loop = false ;
@@ -54,6 +55,7 @@ function playSong(song) {
5455
5556 audio && audio . pause ( ) && ( audio = null ) ;
5657 audio = points . setAudio ( 'audio' , audioUrl , options . volume , false , false ) ;
58+ points . setUniform ( 'numChars' , title . length < MAXCHARS ? title . length : MAXCHARS ) ;
5759 points . setStorageMap ( 'chars' , strToCodes ( title ) ) ;
5860 let artworkLoaded = 0 ;
5961 song ?. artworkColors && points . setStorageMap ( 'artworkColors' , song ?. artworkColors . flat ( ) ) ;
@@ -158,6 +160,7 @@ async function onCompleteTags(result) {
158160 }
159161
160162 folderSongs . add ( song , 'fn' ) . name ( song . name ) ;
163+ points . setUniform ( 'numChars' , title . length < MAXCHARS ? title . length : MAXCHARS ) ;
161164 points . setStorageMap ( 'chars' , strToCodes ( title ) ) ;
162165}
163166
@@ -321,13 +324,14 @@ points.setSampler('textImageSampler', {
321324} ) ;
322325points . setTexture2d ( 'feedbackTexture' , true ) ;
323326
324- audio = points . setAudio ( 'audio' , './../80s-pulse-synthwave-dude-212407.mp3 ' , options . volume , loop , false ) ;
327+ audio = points . setAudio ( 'audio' , '' , options . volume , loop , false ) ; // TODO returl null if empty or null is passed
325328
326329points . setUniform ( 'showMessage' , 1 ) ;
327330points . setUniform ( 'rand' , 0 ) ;
328331points . setUniform ( 'progress' , 0 ) ;
329332points . setUniform ( 'artworkLoaded' , 0 ) ;
330333// points.setUniform('somecolor', colors.color2, 'vec3f');
334+ points . setUniform ( 'numChars' , 12 ) ;
331335points . setStorageMap ( 'chars' , strToCodes ( 'Gravity Pull' ) , 'array<f32>' ) // TODO: setStorageMap doesn't work with u32 wrong sized
332336points . setStorageMap ( 'message' , strToCodes ( 'Select a song to Play' ) , 'array<f32>' ) // TODO: setStorageMap doesn't work with u32 wrong sized
333337points . setStorageMap ( 'artworkColors' , Array ( 16 ) . fill ( 1 ) , 'array<vec4f>' ) ;
@@ -345,8 +349,6 @@ if (await points.init(renderPasses)) {
345349 el . classList . toggle ( 'show' ) ;
346350}
347351
348-
349-
350352points . canvas . addEventListener ( 'click' , _ => {
351353 if ( pauseClickTimeout ) {
352354 return ;
@@ -356,7 +358,8 @@ points.canvas.addEventListener('click', _ => {
356358 pauseClickTimeout = null ;
357359 } , 300 ) ;
358360} ) ;
359- document . addEventListener ( 'dblclick' , _ => {
361+
362+ points . canvas . addEventListener ( 'dblclick' , _ => {
360363 clearTimeout ( pauseClickTimeout ) ;
361364 pauseClickTimeout = null ;
362365 points . fullscreen = ! points . fullscreen ;
0 commit comments