1
0
Fork 0
mirror of https://github.com/sbrl/Nibriboard.git synced 2018-01-10 21:33:49 +00:00

[client] Send a viewport update before requesting new chunks

This commit is contained in:
Starbeamrainbowlabs 2017-07-29 21:26:06 +01:00
parent d6b4b50588
commit b34fb59575
2 changed files with 21 additions and 12 deletions

View file

@ -320,6 +320,23 @@ class BoardWindow extends EventEmitter
window.addEventListener("resize", this.matchWindowSize.bind(this)); window.addEventListener("resize", this.matchWindowSize.bind(this));
} }
/**
* Sends the current viewport to the server.
*/
sendViewport() {
this.rippleLink.send({
Event: "ViewportUpdate",
NewViewport: {
X: parseInt(this.viewport.x),
Y: parseInt(this.viewport.y),
Width: parseInt(this.viewport.width),
Height: parseInt(this.viewport.height)
}
});
this.lastViewportUpdate = +new Date();
}
/** /**
* Handles events generated by pan-zoom, the package that handles the * Handles events generated by pan-zoom, the package that handles the
* dragging and zooming of the whiteboard. * dragging and zooming of the whiteboard.
@ -345,17 +362,7 @@ class BoardWindow extends EventEmitter
if(+new Date() - this.lastViewportUpdate < (1 / this.cursorSyncer.cursorUpdateFrequency) * 1000) if(+new Date() - this.lastViewportUpdate < (1 / this.cursorSyncer.cursorUpdateFrequency) * 1000)
return false; return false;
this.rippleLink.send({ this.sendViewport();
Event: "ViewportUpdate",
NewViewport: {
X: parseInt(this.viewport.x),
Y: parseInt(this.viewport.y),
Width: parseInt(this.viewport.width),
Height: parseInt(this.viewport.height)
}
});
this.lastViewportUpdate = +new Date();
}).bind(this)); }).bind(this));
} }

View file

@ -61,7 +61,9 @@ class ChunkCache
} }
if(missingChunks.length > 0) { if(missingChunks.length > 0) {
// Asynchronously request them from the server // Make sure that the server knows our current viewport
this.boardWindow.sendViewport();
// Asynchronously request the missing chunks from the server
this.boardWindow.rippleLink.send({ this.boardWindow.rippleLink.send({
"Event": "ChunkUpdateRequest", "Event": "ChunkUpdateRequest",
"ForgottenChunks": missingChunks "ForgottenChunks": missingChunks