refactor: do dirty checks later

This commit is contained in:
cha0s 2019-04-13 16:06:30 -05:00
parent 6b2f392794
commit 2dca6509fb

View File

@ -24,7 +24,6 @@ appNode.addEventListener('touchmove', (event) => {
event.preventDefault(); event.preventDefault();
}); });
// Graphics stage. // Graphics stage.
let dirty = false;
const visibleSize = [320, 180]; const visibleSize = [320, 180];
const halfVisibleSize = Vector.scale(visibleSize, 0.5); const halfVisibleSize = Vector.scale(visibleSize, 0.5);
const visibleScale = [2, 2]; const visibleScale = [2, 2];
@ -93,7 +92,6 @@ room.on('entityAdded', (entity) => {
camera.on('realPositionChanged', () => { camera.on('realPositionChanged', () => {
const offset = Vector.sub(halfVisibleSize, camera.realPosition); const offset = Vector.sub(halfVisibleSize, camera.realPosition);
roomView.position = offset; roomView.position = offset;
dirty = true;
}); });
// Avoid the initial 'lerp. // Avoid the initial 'lerp.
camera.realPosition = camera.position; camera.realPosition = camera.position;
@ -207,7 +205,6 @@ const predictionHandle = setInterval(() => {
} }
// Tick synchronized. // Tick synchronized.
synchronizer.tick(elapsed); synchronizer.tick(elapsed);
dirty = dirty || synchronizer.state !== state;
state = synchronizer.state; state = synchronizer.state;
// Render timing. // Render timing.
renderTicker.tick(elapsed); renderTicker.tick(elapsed);
@ -254,22 +251,17 @@ function onPacket(packet) {
} }
} }
synchronizer.patchState(patch); synchronizer.patchState(patch);
dirty = true;
} }
} }
socket.on('packet', onPacket); socket.on('packet', onPacket);
// Render. // Render.
function render() { function render() {
stage.tick(); stage.tick();
if (!dirty) {
return;
}
if (!mayRender) { if (!mayRender) {
return false; return false;
} }
mayRender = false; mayRender = false;
stage.render(); stage.render();
dirty = false;
} }
const renderHandle = setAnimation(render); const renderHandle = setAnimation(render);
// UI. // UI.