Skip to content

feat: Add Map Quality setting#92

Merged
ThomasHalwax merged 2 commits intomainfrom
feature/map-quality
Feb 14, 2026
Merged

feat: Add Map Quality setting#92
ThomasHalwax merged 2 commits intomainfrom
feature/map-quality

Conversation

@axel-krapotke
Copy link
Contributor

Summary

Adds a View → Map Quality menu with three options to control the OpenLayers pixelRatio:

Option Pixel Ratio Use Case
Full native (2x on Retina) Best quality, highest GPU load
Balanced (default) 1.5x Good compromise for HiDPI displays
Performance 1x Fastest rendering, slightly softer on HiDPI

Motivation

On macOS with Retina displays, rendering at native 2x DPR means 4x the pixel count compared to 1x displays. This causes noticeable lag during pan/zoom on older hardware (e.g. 2017 MacBook Pro with AMD dGPU).

Changes

  • src/main/menu/view-menu.js — Map Quality submenu in View menu
  • src/main/preload/modules/preferences.js — IPC bridge for VIEW_MAP_QUALITY
  • src/renderer/store/PreferencesStore.js — Persistence + event emission
  • src/renderer/components/map/Map.js — Apply pixelRatio at map construction; reload on change

Notes

  • pixelRatio can only be set at Map construction time, so changing the setting triggers a page reload.
  • Default is "Balanced" (1.5x) for better out-of-the-box performance on HiDPI displays.

Three options: Full (native DPR), Balanced (1.5x), Performance (1x).
Primarily helps on HiDPI/Retina displays where rendering at native
pixel ratio is expensive. Setting is persisted in preferences and
requires a reload to take effect.
Better out-of-the-box performance on HiDPI/Retina displays.
@ThomasHalwax ThomasHalwax merged commit 18e72e8 into main Feb 14, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants