Skip to content

Commit aaa7a20

Browse files
committed
Make dependencyTracker work with the renderer
1 parent 4734888 commit aaa7a20

File tree

2 files changed

+28
-7
lines changed

2 files changed

+28
-7
lines changed

src/display/api.js

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2403,10 +2403,10 @@ class RendererWorker {
24032403
const src =
24042404
// eslint-disable-next-line no-nested-ternary
24052405
typeof PDFJSDev === "undefined"
2406-
? "../src/pdf.worker.js"
2406+
? "../src/pdf.renderer.js"
24072407
: PDFJSDev.test("MOZCENTRAL")
2408-
? "resource://pdf.js/build/pdf.worker.mjs"
2409-
: "../build/pdf.worker.mjs";
2408+
? "resource://pdf.js/build/pdf.renderer.mjs"
2409+
: "../build/pdf.renderer.mjs";
24102410
this.#worker = new Worker(src, { type: "module" });
24112411
this.#handler = new MessageHandler("main", "renderer", this.#worker);
24122412
this.#handler.send("configure", { channelPort, enableHWA }, [channelPort]);
@@ -3427,9 +3427,16 @@ class InternalRenderTask {
34273427
this.graphicsReadyCallback ||= this._continueBound;
34283428
return;
34293429
}
3430-
this.gfx.dependencyTracker?.growOperationsCount(
3431-
this.operatorList.fnArray.length
3432-
);
3430+
if (!this._renderInWorker) {
3431+
this.gfx.dependencyTracker?.growOperationsCount(
3432+
this.operatorList.fnArray.length
3433+
);
3434+
} else {
3435+
this.rendererHandler.send("growOperationsCount", {
3436+
taskID: this.taskID,
3437+
newOperatorListLength: this.operatorList.fnArray.length,
3438+
});
3439+
}
34333440
this.stepper?.updateOperatorList(this.operatorList);
34343441

34353442
if (this.running) {

src/display/renderer_worker.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ class RendererMessageHandler {
8484
transparency,
8585
background,
8686
optionalContentConfig,
87+
dependencyTracker,
8788
}) => {
8889
assert(!this.#tasks.has(taskID), "Task already initialized");
8990
const ctx = canvas.getContext("2d", {
@@ -99,7 +100,8 @@ class RendererMessageHandler {
99100
this.#filterFactory,
100101
{ optionalContentConfig },
101102
map,
102-
colors
103+
colors,
104+
dependencyTracker
103105
);
104106
gfx.beginDrawing({ transform, viewport, transparency, background });
105107
this.#tasks.set(taskID, { canvas, gfx });
@@ -122,6 +124,18 @@ class RendererMessageHandler {
122124
}
123125
);
124126

127+
mainHandler.on(
128+
"growOperationsCount",
129+
({ taskID, newOperatorListLength }) => {
130+
if (terminated) {
131+
throw new Error("Renderer worker has been terminated.");
132+
}
133+
const task = this.#tasks.get(taskID);
134+
assert(task !== undefined, "Task not initialized");
135+
task.gfx.dependencyTracker?.growOperationsCount(newOperatorListLength);
136+
}
137+
);
138+
125139
mainHandler.on("end", ({ taskID }) => {
126140
if (terminated) {
127141
throw new Error("Renderer worker has been terminated.");

0 commit comments

Comments
 (0)