gazebosim / gazebosim/gz-rendering
Offer calibration APIs for users with various DPI setups
- Dominant language
- C++
- Stars
- 81
- Forks
- 90
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 10
Description
We've been having a hard time to support screens with different resolutions and DPIs. Pull request https://github.com/ignitionrobotics/ign-rendering/pull/221 has been open for a long time, but we're failing to find a single solution that applies to all use cases.
My alternative proposal is to provide users with a calibration utility so that they can manually set the scale. See for example this touchscreen calibration tool:
[](https://www.oki.com/printing/online-manuals-12/465331/id/contents/contents/kt_000025.html)
## Desired behavior
We could offer a small executable that opens a screen with a few points for the user to click on. Then internally calculate the scaling factor and save it to a file in `~/.ignition/rendering`. Every time `ign-rendering` is loaded, it reads from that file to set the scale. If the file doesn't exist, it uses 1.0 as the scale.
## Alternatives considered
We can keep banging our heads against a general solution like we're trying in https://github.com/ignitionrobotics/ign-rendering/pull/221, but there will always be corner cases that we can't test without the hardware.
## Implementation suggestion
See above.
## Additional context
Related to https://github.com/ignitionrobotics/ign-gazebo/issues/147
Contributor guide
Research direction
Start by reviewing pull request #221 and the related ign-gazebo issue #147 to understand existing DPI approaches and unresolved use cases. Define the calibration executable and scale persistence behavior described here; done means a user can set a scale, it is saved under ~/.ignition/rendering, and loading defaults to 1.0 when no file exists.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100