// bunnymark var render = use('render') var os = use('os') var dim = [500,500] render.initialize({ width:dim.x, height:dim.y, resolution_x:dim.x, resolution_y:dim.y, mode:"letterboxed", refresh: 60, }) var camera = { size: [500,500], transform: os.make_transform(), fov:50, near_z: 0, far_z: 1000, surface: undefined, viewport: {x:0,y:0,width:1,height:1}, ortho:true, anchor:[0,0], } var draw = use('draw2d') var sprite = use('lcdsprite') var graphics = use('graphics') var dt = 0 var img = undefined var ioguy = { __ACTORDATA__: { id: os.ioactor() } } var io = use('io') io.mount('/') var qr = use('qr') var myimg = qr.encode("HELLO WORLD") var mybytes = qr.rgba(myimg) graphics.save_png("qr_hello.png", mybytes.width, mybytes.height, mybytes.buffer, mybytes.pitch); // test saving a zipped json var miniz = use('miniz') var lvl = io.slurp('tests/level.json') var lvl_cmp = miniz.compress(lvl) var qr_lvl = qr.encode(lvl_cmp) var lvl_bytes = qr.rgba(qr_lvl) graphics.save_png("qr_level.png", lvl_bytes.width, lvl_bytes.height, lvl_bytes.buffer, lvl_bytes.pitch) console.log(`saved compressed level as qr; size was ${lvl_cmp.byteLength}`) $_.send(ioguy, { type: "subscribe", actor: $_ }) function strToArrayBuffer(binStr) { const view = new Uint8Array(binStr.length); for (let i = 0; i < binStr.length; i++) view[i] = binStr.codePointAt(i) & 0xff; // mask keeps it 0-255 return view.buffer; } $_.receiver(e => { if (e.type === 'quit') os.exit() switch(e.type) { case "drop_file": console.log(`got ${e.data} dropped`) img = e.data var image = graphics.texture(e.data) var data = qr.decode(image.surface.pixels(), image.surface.width(), image.surface.height(), image.surface.pitch()) console.log(`found ${data.length} qr`) data = data[0] console.log(data.byteLength) var ddata = miniz.decompress(data, true) console.log(ddata) } }) function loop() { var now = os.now() render.clear([22/255,120/255,194/255,255/255]) render.camera(camera) if (img) draw.image(img, {x:0,y:0,width:300,height:300}) render.present() dt = os.now() - now var delay = (1/60) - dt $_.delay(loop, delay) } loop()