Skip to content

Conversation

@SoloJiang
Copy link
Owner

No description provided.

Copilot AI review requested due to automatic review settings December 8, 2025 14:52
@SoloJiang SoloJiang force-pushed the fix/multi-monitor-hidpi branch from 45a89cb to 181d9be Compare December 8, 2025 14:54
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses multi-monitor overlay issues on macOS by performing a major architectural refactor from Skia-based rendering to an egui + wgpu hybrid rendering system. The change is part of v0.2.0 and represents a significant evolution in the rendering architecture.

Key Changes:

  • Complete rendering stack migration from Skia to egui + wgpu
  • Window management improvements for multi-monitor and HiDPI support
  • New toolbar infrastructure preparation for future annotation features

Reviewed changes

Copilot reviewed 35 out of 42 changed files in this pull request and generated no comments.

Show a summary per file
File Description
docs/todo/ui_overlay.md Updated roadmap reflecting v0.2.0 completion and egui migration
docs/tech_design/ui_overlay.md Comprehensive technical design update documenting new architecture
window_manager.rs Refactored window creation with single-source-of-truth approach, HiDPI detection
window_info.rs Replaced Skia backend with WGPU rendering state and egui integration
selection_app.rs Updated event loop to winit 0.30 standards, coordinate transformation fixes
background_renderer.rs New wgpu shader-based background renderer bypassing egui texture limits
selection_render.rs Migrated from Skia Canvas to egui Painter API for UI elements
platform/macos.rs Window level fixes (NSScreenSaverWindowLevel) to prevent menubar interference
toolbar/* New toolbar module foundation for future annotation features
platform_mac/src/lib.rs Enhanced debug logging for coordinate system diagnostics
Cargo.toml Removed Skia/Metal dependencies, added egui/wgpu dependencies
api_cli/src/main.rs Added comprehensive logging with file output for debugging
assets/icons/*.svg Placeholder SVG icons for toolbar (mostly empty files)

Refactored window creation logic to use `winit` as the single source of truth for monitor information, improving support for multi-monitor and vertical screen setups.

Improved HiDPI support and added detailed debug logs for diagnostics.

Fixed menu bar interference on macOS by setting the window level to 1000.

Updated the technical design and TODO documents for `ui_overlay` to reflect these changes.
Remove explicit .iter() call for a more idiomatic loop.
…ntegration

- Add platform-specific abstraction layer for better OS integration
- Refactor selector with new Winit ApplicationHandler pattern
- Implement improved macOS/Windows presentation management
- Add comprehensive logging system with tracing-subscriber
- Update project documentation and technical specifications
- Enhance error handling and cross-platform compatibility
- Streamline build configuration and dependency management
Addresses an issue where the screenshot overlay appeared magnified, particularly on HiDPI/multi-monitor setups. The `capture_all` function in `platform_mac` incorrectly applied a second scaling pass to images already in physical pixels from `xcap`, leading to unintended magnification. This change removes the redundant scaling logic, ensuring that the captured images are processed at their native physical pixel dimensions, thereby resolving the visual distortion of the overlay.
@SoloJiang SoloJiang force-pushed the fix/multi-monitor-hidpi branch from 181d9be to 95e1415 Compare December 8, 2025 14:54
@SoloJiang SoloJiang merged commit 9cfc17b into main Dec 8, 2025
5 checks 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