-
Notifications
You must be signed in to change notification settings - Fork 187
[win32] Improve GC init for ImageGcDrawer #2110
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[win32] Improve GC init for ImageGcDrawer #2110
Conversation
| */ | ||
| @Override | ||
| public long internal_new_GC (GCData data) { | ||
| return configureGC(data, 100); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just for clarification: why do we use 100 instead of DPIUtil.getNativeDeviceZoom() here? Wouldn't the latter be more consistent with existing behavior (i.e., in case monitor-specific scaling is disabled an images are drawn this way)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We know GC works better with 100% then with e.g. 125 or 175 that could be provided with DPIUtil.getNativeDeviceZoom() so I would like to prevent using DPIUtil.getNativeDeviceZoom() as default
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was concerned that this changes behavior if now for the same calling code a GC at a different zoom is created. Isn't that the case?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, it sure does. Before DPIUtil.getNativeZoom was used, but not for a specific reason, especially not for the GC, but just for creating the probably most suitable initial handle here So, for this default case I would argue, no value is really the correct value here. I chose 100 out of two reasons
- drawing on the GC works best with 100% - e.g. having GEF in mind.
- all "easy" use cases involving GC and Images should be covered with ImageGcDrawer, leaving the complex ones (like. GEF) which brings me back to the upper point
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the clarification!
Just like in #2108 (comment), I was mistakenly thinking that the image data may be at a wrong size and that may lead to issues when drawing on them, but since the drawing happens in point coordinates it will always work.
The decision makes sense to me.
This commits wraps the GC initialization for the ImageGcDrawer to directly pass the zoom from the wrapper when the GC is initialized. In all other cases the GC will be initialized with 100 zoom.
cb53cbc to
004719a
Compare
This PR wraps the GC initialization for the ImageGcDrawer to directly pass the zoom from the wrapper when the GC is initialized. In all other cases the GC will be initialized with 100 zoom.