Absulit / Absulit/points

Support for high density monitors with devicePixelRatio

オープン
#306 コメント 0 件 リアクション 0 件 担当者 1 名 @Absulit が担当を希望しています GitHub で見る
enhancement
主要言語
JavaScript
スター
56
フォーク
5
平均マージ
2分
マージ済み PR(30日)
1

説明

This is related to #299

Required for high density monitors and the HTML in Canvas to not look blurry, it needs to support the device pixel ratio

```js

const observer = new ResizeObserver(this.#resizeCanvasToFitWindow);

const supportsDevicePixelContentBox =
typeof ResizeObserverEntry !== 'undefined' &&
'devicePixelContentBoxSize' in ResizeObserverEntry.prototype;
const options = supportsDevicePixelContentBox ? { box: 'device-pixel-content-box', signal } : { signal };
observer.observe(this.#canvas, options);

#resizeCanvasToFitWindow = (entries) => {
// there are some calls of this function that do not have entries
// because of this, clientWidth and clientHeight values are used
const entry = entries?.[0];

this.#screenResized = true;
if (this.#fitWindow) {
const width = entry?.contentRect?.width || this.#canvas.clientWidth;
const height = entry?.contentRect?.height || this.#canvas.clientHeight;
const dpc = entry?.devicePixelContentBoxSize;
this.#canvas.width = dpc ? dpc[0].inlineSize : Math.round(width * window.devicePixelRatio);
this.#canvas.height = dpc ? dpc[0].blockSize : Math.round(height * window.devicePixelRatio);
this.#setScreenSize();
this.#frame()
}
}
```

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。