You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.4 KiB
67 lines
1.4 KiB
function ui_offline() { |
|
document.body.classList.add('offline'); |
|
document.querySelector('.offline-toast').classList.remove('hidden'); |
|
} |
|
|
|
function ui_online() { |
|
document.body.classList.remove('offline'); |
|
document.querySelector('.offline-toast').classList.add('hidden'); |
|
} |
|
|
|
function event_size(event) { |
|
let size = 1 + 3; // type + padding |
|
|
|
switch (event.type) { |
|
case EVENT.PREDRAW: { |
|
size += 4 * 2; |
|
break; |
|
} |
|
|
|
case EVENT.SET_COLOR: { |
|
size += 4; |
|
break; |
|
} |
|
|
|
case EVENT.SET_WIDTH: { |
|
size += 2; |
|
break; |
|
} |
|
|
|
case EVENT.STROKE: { |
|
size += 4 + 2 + 2 + 4 + event.points.length * 4 * 2; // u32 stroke id + u16 (count) + u16 (width) + u32 (color + count * (f32, f32) points |
|
break; |
|
} |
|
|
|
case EVENT.UNDO: |
|
case EVENT.REDO: { |
|
break; |
|
} |
|
|
|
case EVENT.IMAGE: |
|
case EVENT.IMAGE_MOVE: { |
|
size += 4 + 4 + 4; // file id + x + y |
|
break; |
|
} |
|
|
|
case EVENT.ERASER: { |
|
size += 4; // stroke id |
|
break; |
|
} |
|
|
|
default: { |
|
console.error('fuck'); |
|
} |
|
} |
|
|
|
return size; |
|
} |
|
|
|
function find_touch(touchlist, id) { |
|
for (const touch of touchlist) { |
|
if (touch.identifier === id) { |
|
return touch; |
|
} |
|
} |
|
|
|
return null; |
|
} |