Send JpegStreams to the main thread ASAP. No need for ImagesLoader anymore
This commit is contained in:
parent
32ae879219
commit
ac11f30ae9
3 changed files with 43 additions and 70 deletions
40
worker.js
40
worker.js
|
@ -30,16 +30,24 @@ var WorkerPage = (function() {
|
|||
// TODO: Place the worker magic HERE.
|
||||
// this.page.startRendering(ctx, callback, errback);
|
||||
|
||||
this.startRenderingTime = Date.now();
|
||||
this.workerPDF.startRendering(this)
|
||||
},
|
||||
|
||||
startRenderingFromIRQueue: function(IRQueue, fonts, images) {
|
||||
startRenderingFromIRQueue: function(IRQueue, fonts) {
|
||||
var gfx = new CanvasGraphics(this.ctx);
|
||||
|
||||
// TODO: Add proper handling for images loaded by the worker.
|
||||
var images = new ImagesLoader();
|
||||
|
||||
this.page.startRenderingFromIRQueue(gfx, IRQueue, fonts, images, this.callback);
|
||||
var startTime = Date.now();
|
||||
var callback = function(err) {
|
||||
var pageNum = this.page.pageNumber + 1;
|
||||
console.log("page=%d - rendering time: time=%dms",
|
||||
pageNum, Date.now() - startTime);
|
||||
console.log("page=%d - total time: time=%dms",
|
||||
pageNum, Date.now() - this.startRenderingTime);
|
||||
|
||||
this.callback(err);
|
||||
}.bind(this);
|
||||
this.page.startRenderingFromIRQueue(gfx, IRQueue, fonts, callback);
|
||||
},
|
||||
|
||||
getLinks: function() {
|
||||
|
@ -153,15 +161,21 @@ var WorkerPDFDoc = (function() {
|
|||
}
|
||||
}
|
||||
|
||||
var images = data.images;
|
||||
for (var i = 0; i < images.length; i++) {
|
||||
var image = images[i];
|
||||
var stream = new JpegStreamIR(image.id, image.IR);
|
||||
page.startRenderingFromIRQueue(data.IRQueue, data.fonts);
|
||||
}, this);
|
||||
|
||||
handler.on("obj", function(data) {
|
||||
var objId = data[0];
|
||||
var objType = data[1];
|
||||
|
||||
switch (objType) {
|
||||
case "JpegStream":
|
||||
var IR = data[2];
|
||||
new JpegStreamIR(objId, IR);
|
||||
break;
|
||||
default:
|
||||
throw "Got unkown object type " + objType;
|
||||
}
|
||||
|
||||
var timeStart = new Date();
|
||||
page.startRenderingFromIRQueue(data.IRQueue, data.fonts, data.images);
|
||||
console.log("RenderingTime", (new Date()) - timeStart);
|
||||
}, this);
|
||||
|
||||
if (!useWorker) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue