Skip to content

Add proper HighDPI support across all platforms #180

@emoon

Description

@emoon

Summary

Add proper HighDPI support across all platforms (macOS, Windows, Linux) so the UI renders crisply on modern high-resolution displays.

Current Behavior

  • macOS: Retina support explicitly disabled (setWantsBestResolutionOpenGLSurface:NO)
  • Windows: No DPI awareness manifest, causing Windows to bitmap-scale the entire application (blurry menus and UI)
  • Linux: SDL2 window created without SDL_WINDOW_ALLOW_HIGHDPI flag

Proposed Solution

  • Add DPI awareness manifest for Windows
  • Enable Retina support on macOS
  • Add SDL_WINDOW_ALLOW_HIGHDPI flag on Linux
  • Add scale factor management to EMGUI
  • Separate OpenGL viewport (physical pixels) from projection (logical pixels)
  • Support TTF font re-rasterization at different scales
  • Handle mouse coordinate transformation
  • Add user-configurable UI scale option (100%, 125%, 150%, 200%)

References

  • Research document: research/highdpi-scaling-support.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions