mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-20 15:18:08 +02:00
Add an OutputScale
static method to get the devicePixelRatio
Currently we lookup the `devicePixelRatio`, with fallback handling, in a number of spots in the code-base. Rather than duplicating code we can instead add a new static method in the `OutputScale` class, since that one is now exposed in the API.
This commit is contained in:
parent
e4795f639c
commit
319d239f41
7 changed files with 25 additions and 17 deletions
|
@ -30,6 +30,7 @@ import {
|
|||
import {
|
||||
getCurrentTransform,
|
||||
getCurrentTransformInverse,
|
||||
OutputScale,
|
||||
PixelsPerInch,
|
||||
} from "./display_utils.js";
|
||||
import {
|
||||
|
@ -811,7 +812,7 @@ function getImageSmoothingEnabled(transform, interpolate) {
|
|||
scale[0] = Math.fround(scale[0]);
|
||||
scale[1] = Math.fround(scale[1]);
|
||||
const actualScale = Math.fround(
|
||||
(globalThis.devicePixelRatio || 1) * PixelsPerInch.PDF_TO_CSS_UNITS
|
||||
OutputScale.pixelRatio * PixelsPerInch.PDF_TO_CSS_UNITS
|
||||
);
|
||||
return scale[0] <= actualScale && scale[1] <= actualScale;
|
||||
}
|
||||
|
|
|
@ -620,7 +620,7 @@ function setLayerDimensions(
|
|||
*/
|
||||
class OutputScale {
|
||||
constructor() {
|
||||
const pixelRatio = window.devicePixelRatio || 1;
|
||||
const { pixelRatio } = OutputScale;
|
||||
|
||||
/**
|
||||
* @type {number} Horizontal scale.
|
||||
|
@ -673,6 +673,10 @@ class OutputScale {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static get pixelRatio() {
|
||||
return globalThis.devicePixelRatio || 1;
|
||||
}
|
||||
}
|
||||
|
||||
// See https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types
|
||||
|
|
|
@ -23,7 +23,7 @@ import {
|
|||
Util,
|
||||
warn,
|
||||
} from "../shared/util.js";
|
||||
import { setLayerDimensions } from "./display_utils.js";
|
||||
import { OutputScale, setLayerDimensions } from "./display_utils.js";
|
||||
|
||||
/**
|
||||
* @typedef {Object} TextLayerParameters
|
||||
|
@ -115,7 +115,7 @@ class TextLayer {
|
|||
}
|
||||
this.#container = this.#rootContainer = container;
|
||||
|
||||
this.#scale = viewport.scale * (globalThis.devicePixelRatio || 1);
|
||||
this.#scale = viewport.scale * OutputScale.pixelRatio;
|
||||
this.#rotation = viewport.rotation;
|
||||
this.#layoutTextParams = {
|
||||
div: null,
|
||||
|
@ -205,7 +205,7 @@ class TextLayer {
|
|||
* @returns {undefined}
|
||||
*/
|
||||
update({ viewport, onBefore = null }) {
|
||||
const scale = viewport.scale * (globalThis.devicePixelRatio || 1);
|
||||
const scale = viewport.scale * OutputScale.pixelRatio;
|
||||
const rotation = viewport.rotation;
|
||||
|
||||
if (rotation !== this.#rotation) {
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { stopEvent } from "./display_utils.js";
|
||||
import { OutputScale, stopEvent } from "./display_utils.js";
|
||||
|
||||
class TouchManager {
|
||||
#container;
|
||||
|
@ -75,7 +75,7 @@ class TouchManager {
|
|||
// The properties TouchEvent::screenX/Y are in screen CSS pixels:
|
||||
// https://developer.mozilla.org/en-US/docs/Web/API/Touch/screenX#examples
|
||||
// MIN_TOUCH_DISTANCE_TO_PINCH is in CSS pixels.
|
||||
return 35 / (window.devicePixelRatio || 1);
|
||||
return 35 / OutputScale.pixelRatio;
|
||||
}
|
||||
|
||||
#onTouchStart(evt) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue