From 242eda245b4a3de72ef18482a5256a41bd95debf Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Fri, 25 Oct 2024 09:38:00 +0100 Subject: [PATCH] clockbg 0.06: 25% speed improvement if Math.randInt exists (2v25 fw) --- apps/clockbg/ChangeLog | 3 ++- apps/clockbg/lib.js | 8 ++++++-- apps/clockbg/metadata.json | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/apps/clockbg/ChangeLog b/apps/clockbg/ChangeLog index 3c681a638..a370befc0 100644 --- a/apps/clockbg/ChangeLog +++ b/apps/clockbg/ChangeLog @@ -4,4 +4,5 @@ 0.04: More options for different background colors 'Plasma' generative background Add a 'view' option in settings menu to view the current background -0.05: Random square+plasma speed improvements (~2x faster) \ No newline at end of file +0.05: Random square+plasma speed improvements (~2x faster) +0.06: 25% speed improvement if Math.randInt exists (2v25 fw) \ No newline at end of file diff --git a/apps/clockbg/lib.js b/apps/clockbg/lib.js index 59345340f..256f2f372 100644 --- a/apps/clockbg/lib.js +++ b/apps/clockbg/lib.js @@ -1,6 +1,7 @@ let settings; exports.reload = function() { + //let t = Date.now(); settings = Object.assign({ style : "randomcolor", colors : ["#F00","#0F0","#00F"] @@ -17,7 +18,8 @@ exports.reload = function() { let bpp = (settings.colors.length>4)?4:2; let bg = Graphics.createArrayBuffer(11,11,bpp,{msb:true}); let u32 = new Uint32Array(bg.buffer); // faster to do 1/4 of the ops of E.mapInPlace(bg.buffer, bg.buffer, ()=>Math.random()*256); - E.mapInPlace(u32, u32, function(r,n){"ram";return r()*n}.bind(null,Math.random,0x100000000)); // random pixels + if (Math.randInt) E.mapInPlace(u32, u32, Math.randInt); // random pixels + else E.mapInPlace(u32, u32, function(r,n){"ram";return r()*n}.bind(null,Math.random,0x100000000)); // random pixels bg.buffer[bg.buffer.length-1]=Math.random()*256; // 11x11 isn't a multiple of 4 bytes - we need to set the last one! bg.palette = new Uint16Array(1<g.toColor(c))); @@ -28,7 +30,8 @@ exports.reload = function() { settings.style = "image"; let bg = Graphics.createArrayBuffer(16,16,4,{msb:true}); let u32 = new Uint32Array(bg.buffer); // faster to do 1/4 of the ops of E.mapInPlace(bg.buffer, bg.buffer, ()=>Math.random()*256); - E.mapInPlace(u32, u32, function(r,n){"ram";return r()*n}.bind(null,Math.random,0x100000000)); // random pixels + if (Math.randInt) E.mapInPlace(u32, u32, Math.randInt); // random pixels + else E.mapInPlace(u32, u32, function(r,n){"ram";return r()*n}.bind(null,Math.random,0x100000000)); // random pixels bg.filter([ // a gaussian filter to smooth out 1, 4, 7, 4, 1, 4,16,26,16, 4, @@ -42,6 +45,7 @@ exports.reload = function() { settings.imgOpt = {scale:11}; delete settings.colors; } + //console.log("bg",Date.now()-t); }; exports.reload(); diff --git a/apps/clockbg/metadata.json b/apps/clockbg/metadata.json index 85b1f8a5a..ba6fb6712 100644 --- a/apps/clockbg/metadata.json +++ b/apps/clockbg/metadata.json @@ -1,7 +1,7 @@ { "id": "clockbg", "name": "Clock Backgrounds", "shortName":"Backgrounds", - "version": "0.05", + "version": "0.06", "description": "Library that allows clocks to include a custom background (generated on demand or uploaded).", "icon": "app.png", "screenshots": [{"url":"screenshot.png"},{"url":"screenshot2.png"},{"url":"screenshot3.png"}],