Hey Gus, as I’m working on my own stuff I’m digging deep into how other image editors work, and I spotted a couple minor things I thought I’d report for Acorn.
I have a dual monitor setup, one is 1x (circa 2004 20” Cinema Display) and one is 2x (brand new ViewSonic 24” 4k). If I start on the 1x display, crop an image to 1000x1000, size at 100% zoom, then move the window over to the 2x monitor, it stays the same size in logical pixels, but show 200% in the zoom slider. Shouldn’t that be showing logical zoom level, such that it would keep showing 100%?
Maybe this is a design choice but wanted to report anyhow.
Acorn is doing the right thing here, at least as it is designed.
When you move from a 1x display to a 2x display, the number of pixels that Acorn can render to grows (It’s actually 4x more pixels - where there used to be 1 pixel is now 4. 2 horizontal and 2 vertical).
Acorn is always going to show the pixels at a 1 to 1 mapping to the actual pixels on your screen*. So when you drag a window from a 1x display to a 2x display, Acorn will change the scale of your image so the canvas size doesn’t jump around. It used to do this before retina displays were a thing, and it was a bit jarring.
Does that make sense?
* Unless you have some non-standard zoom level set. I guess I should say “When scaled to 100%, Acorn is always going to draw pixels as a 1 to 1 mapping to the pixels on your screen as MacOS tells reports it"
Makes sense to me, I think I’m influenced by how the macOS screenshot tool works, you drag out a rectangle and it shows dimensions in logical pixels rather than device pixels. For an image editor, what you’re doing here seems to be inline with what everyone else is doing.
Thinking more about this… in say a web browser if you show a 500x500 image without specifying its size, on a 1x display it’ll be 500 device pixels wide but on a 2x display, 1000 device pixels wide. Showing at it’s “native” or “logical” size. In this case, pixel device ratio is abstracted away. But… image editors are all about the pixels. Doesn’t really make sense to “abstract them away” when pixels are literally the main thing.