Convert the getOutputScale
helper function into a OutputScale
class
Given the previous patch in particular, this seems like an overall nicer format since it avoids duplicating the `scaled` getter in each instance.
This commit is contained in:
parent
0928d26d54
commit
36cb82e517
@ -40,7 +40,7 @@ import {
|
||||
import {
|
||||
approximateFraction,
|
||||
DEFAULT_SCALE,
|
||||
getOutputScale,
|
||||
OutputScale,
|
||||
RendererType,
|
||||
RenderingStates,
|
||||
roundToDivide,
|
||||
@ -806,7 +806,7 @@ class PDFPageView {
|
||||
}
|
||||
|
||||
const ctx = canvas.getContext("2d", { alpha: false });
|
||||
const outputScale = (this.outputScale = getOutputScale());
|
||||
const outputScale = (this.outputScale = new OutputScale());
|
||||
|
||||
if (this.useOnlyCssZoom) {
|
||||
const actualSizeViewport = viewport.clone({
|
||||
|
@ -19,7 +19,7 @@
|
||||
// eslint-disable-next-line max-len
|
||||
/** @typedef {import("./pdf_rendering_queue").PDFRenderingQueue} PDFRenderingQueue */
|
||||
|
||||
import { getOutputScale, RenderingStates } from "./ui_utils.js";
|
||||
import { OutputScale, RenderingStates } from "./ui_utils.js";
|
||||
import { RenderingCancelledException } from "pdfjs-lib";
|
||||
|
||||
const DRAW_UPSCALE_FACTOR = 2; // See comment in `PDFThumbnailView.draw` below.
|
||||
@ -233,7 +233,7 @@ class PDFThumbnailView {
|
||||
canvas.mozOpaque = true;
|
||||
}
|
||||
const ctx = canvas.getContext("2d", { alpha: false });
|
||||
const outputScale = getOutputScale();
|
||||
const outputScale = new OutputScale();
|
||||
|
||||
canvas.width = (upscaleFactor * this.canvasWidth * outputScale.sx) | 0;
|
||||
canvas.height = (upscaleFactor * this.canvasHeight * outputScale.sy) | 0;
|
||||
|
@ -78,20 +78,29 @@ const SpreadMode = {
|
||||
const AutoPrintRegExp = /\bprint\s*\(/;
|
||||
|
||||
/**
|
||||
* Returns scale factor for the canvas. It makes sense for the HiDPI displays.
|
||||
* @returns {Object} The object with horizontal (sx) and vertical (sy) scales.
|
||||
* The scaled property is false if scaling is not required, true otherwise.
|
||||
* Scale factors for the canvas, necessary with HiDPI displays.
|
||||
*/
|
||||
function getOutputScale() {
|
||||
const pixelRatio = window.devicePixelRatio || 1;
|
||||
return {
|
||||
sx: pixelRatio,
|
||||
sy: pixelRatio,
|
||||
class OutputScale {
|
||||
constructor() {
|
||||
const pixelRatio = window.devicePixelRatio || 1;
|
||||
|
||||
get scaled() {
|
||||
return this.sx !== 1 || this.sy !== 1;
|
||||
},
|
||||
};
|
||||
/**
|
||||
* @type {number} Horizontal scale.
|
||||
*/
|
||||
this.sx = pixelRatio;
|
||||
|
||||
/**
|
||||
* @type {number} Vertical scale.
|
||||
*/
|
||||
this.sy = pixelRatio;
|
||||
}
|
||||
|
||||
/**
|
||||
* @type {boolean} Returns `true` when scaling is required, `false` otherwise.
|
||||
*/
|
||||
get scaled() {
|
||||
return this.sx !== 1 || this.sy !== 1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -836,7 +845,6 @@ export {
|
||||
DEFAULT_SCALE_DELTA,
|
||||
DEFAULT_SCALE_VALUE,
|
||||
getActiveOrFocusedElement,
|
||||
getOutputScale,
|
||||
getPageSizeInches,
|
||||
getVisibleElements,
|
||||
isPortraitOrientation,
|
||||
@ -849,6 +857,7 @@ export {
|
||||
noContextMenuHandler,
|
||||
normalizeWheelEventDelta,
|
||||
normalizeWheelEventDirection,
|
||||
OutputScale,
|
||||
parseQueryString,
|
||||
PresentationModeState,
|
||||
ProgressBar,
|
||||
|
Loading…
x
Reference in New Issue
Block a user