Skip to content

Commit 4f7a025

Browse files
Separate bbox tracking from dependencies tracking
When recording bboxes for images, it's enough to record their clip box / bounding box without needing to run the full bbox tracking of the image's dependencies.
1 parent 886c90d commit 4f7a025

2 files changed

Lines changed: 390 additions & 213 deletions

File tree

src/display/api.js

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import {
3939
SerializableEmpty,
4040
} from "./annotation_storage.js";
4141
import {
42+
CanvasBBoxTracker,
4243
CanvasDependencyTracker,
4344
CanvasImagesTracker,
4445
} from "./canvas_dependency_tracker.js";
@@ -1594,20 +1595,28 @@ class PDFPageProxy {
15941595
}
15951596
};
15961597

1598+
let dependencyTracker = null;
1599+
let bboxTracker = null;
1600+
if (shouldRecordOperations || shouldRecordImages) {
1601+
bboxTracker = new CanvasBBoxTracker(
1602+
canvas,
1603+
intentState.operatorList.length
1604+
);
1605+
}
1606+
if (shouldRecordOperations) {
1607+
dependencyTracker = new CanvasDependencyTracker(
1608+
bboxTracker,
1609+
recordForDebugger
1610+
);
1611+
}
1612+
15971613
const internalRenderTask = new InternalRenderTask({
15981614
callback: complete,
15991615
// Only include the required properties, and *not* the entire object.
16001616
params: {
16011617
canvas,
16021618
canvasContext,
1603-
dependencyTracker:
1604-
shouldRecordOperations || shouldRecordImages
1605-
? new CanvasDependencyTracker(
1606-
canvas,
1607-
intentState.operatorList.length,
1608-
recordForDebugger
1609-
)
1610-
: null,
1619+
dependencyTracker: dependencyTracker ?? bboxTracker,
16111620
imagesTracker: shouldRecordImages
16121621
? new CanvasImagesTracker(canvas)
16131622
: null,

0 commit comments

Comments
 (0)