mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-28 23:28:16 +02:00
Add a GlobalColorSpaceCache
to reduce unnecessary re-parsing
This complements the existing `LocalColorSpaceCache`, which is unique to each `getOperatorList`-invocation since it also caches by `Name`, which should help reduce unnecessary re-parsing especially for e.g. `ICCBased` ColorSpaces once we properly support those.
This commit is contained in:
parent
6e1cfa20d1
commit
4be79748c9
11 changed files with 311 additions and 77 deletions
|
@ -97,11 +97,12 @@ function parseDefaultAppearance(str) {
|
|||
}
|
||||
|
||||
class AppearanceStreamEvaluator extends EvaluatorPreprocessor {
|
||||
constructor(stream, evaluatorOptions, xref) {
|
||||
constructor(stream, evaluatorOptions, xref, globalColorSpaceCache) {
|
||||
super(stream);
|
||||
this.stream = stream;
|
||||
this.evaluatorOptions = evaluatorOptions;
|
||||
this.xref = xref;
|
||||
this.globalColorSpaceCache = globalColorSpaceCache;
|
||||
|
||||
this.resources = stream.dict?.get("Resources");
|
||||
}
|
||||
|
@ -161,6 +162,7 @@ class AppearanceStreamEvaluator extends EvaluatorPreprocessor {
|
|||
xref: this.xref,
|
||||
resources: this.resources,
|
||||
pdfFunctionFactory: this._pdfFunctionFactory,
|
||||
globalColorSpaceCache: this.globalColorSpaceCache,
|
||||
localColorSpaceCache: this._localColorSpaceCache,
|
||||
});
|
||||
break;
|
||||
|
@ -210,8 +212,18 @@ class AppearanceStreamEvaluator extends EvaluatorPreprocessor {
|
|||
|
||||
// Parse appearance stream to extract font and color information.
|
||||
// It returns the font properties used to render the first text object.
|
||||
function parseAppearanceStream(stream, evaluatorOptions, xref) {
|
||||
return new AppearanceStreamEvaluator(stream, evaluatorOptions, xref).parse();
|
||||
function parseAppearanceStream(
|
||||
stream,
|
||||
evaluatorOptions,
|
||||
xref,
|
||||
globalColorSpaceCache
|
||||
) {
|
||||
return new AppearanceStreamEvaluator(
|
||||
stream,
|
||||
evaluatorOptions,
|
||||
xref,
|
||||
globalColorSpaceCache
|
||||
).parse();
|
||||
}
|
||||
|
||||
function getPdfColor(color, isFill) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue