Skip to content

Instantly share code, notes, and snippets.

@MattRix
Last active April 21, 2020 14:08
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MattRix/98f76f0a8488d2212f67350b513f5080 to your computer and use it in GitHub Desktop.
Save MattRix/98f76f0a8488d2212f67350b513f5080 to your computer and use it in GitHub Desktop.
Simple tool to generate the uints necessary for u8x8 drawtile: https://github.com/olikraus/u8g2/wiki/u8x8reference#drawtile - jsfiddle version: https://jsfiddle.net/hongm3tu/3/
<div id="main"></div>
<br/>
<button id="clear">Clear</button>
<button id="fill">Fill</button>
<button id="load">Load</button>
<br/>
<br/>
<textarea id="output"></textarea>
//for https://github.com/olikraus/u8g2/wiki/u8x8reference#drawtile
var main = document.getElementById("main");
var buttons = [];
for(var r = 0; r<8; r++)
{
for(var c = 0; c<8; c++)
{
(function()
{
var btn = document.createElement("BUTTON");
main.appendChild(btn);
buttons[r*8+c] = btn;
btn.style.width = "30px";
btn.style.height = "30px";
btn.innerHTML = "&nbsp";
btn.isOn = false;
btn.update = function()
{
btn.style.backgroundColor = btn.isOn ? "black" : "white";
}
btn.update();
btn.onclick = function()
{
btn.isOn = !btn.isOn;
btn.update();
doExport();
};
})();
}
var br = document.createElement("br");
main.appendChild(br);
}
document.getElementById("output").style.width = "400px";
document.getElementById("output").style.height = "100px";
var doExport = function()
{
var strings = [];
for(var c = 0; c<8; c++)
{
var total = 0;
for(var r = 0; r<8; r++)
{
if(buttons[r*8+c].isOn)
{
total += Math.pow(2,r);
}
}
strings.push("0x"+total.toString(16));
//strings.push(total);
}
document.getElementById("output").value = strings.join(",");
};
document.getElementById("clear").onclick = function()
{
for(var b = 0; b<8*8; b++)
{
buttons[b].isOn = false;
buttons[b].update();
}
doExport();
}
document.getElementById("fill").onclick = function()
{
for(var b = 0; b<8*8; b++)
{
buttons[b].isOn = true;
buttons[b].update();
}
doExport();
}
document.getElementById("load").onclick = function()
{
var input = document.getElementById("output").value;
var parts = input.split(",");
if(parts.length == 8)
{
for(var c = 0; c<8; c++)
{
var val = parseInt(parts[c],16);
for(var r = 0; r<8; r++)
{
buttons[r*8+c].isOn = ((val>>r) & 1) == 1;
buttons[r*8+c].update();
}
}
}
}
doExport();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment