unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Third <alan@idiocy.org>
To: Lars Ingebrigtsen <larsi@gnus.org>
Cc: Eli Zaretskii <eliz@gnu.org>,
	casouri@gmail.com, rpluim@gmail.com, monnier@iro.umontreal.ca,
	emacs-devel@gnu.org
Subject: Re: "Fix" sag scaling for hidpi
Date: Tue, 9 Feb 2021 20:01:31 +0000	[thread overview]
Message-ID: <YCLqGwpxrRjgmuOZ@breton.holly.idiocy.org> (raw)
In-Reply-To: <87mtwhctte.fsf@gnus.org>

On Sat, Feb 06, 2021 at 12:35:41PM +0100, Lars Ingebrigtsen wrote:
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> "Logical" pixels was something that was introduced when people started
> making high-resolution screens.  In a 2x HiDPI scenario, the OS will
> report that the 1280 × 1024 is really a 640 x 512 screen, but if you
> give it an image that's 640x512 to display, it'll scale it up, using
> four physical pixels per logical pixel, and this will be blurry.
> 
> So you give it a 1280x1024 image if it's a logical 640x512 2x screen if
> you don't want blurriness.  :-/

One of the main problems I've had with trying to find a solution is to
work out what we want to actually happen.

If I open an image on an emacs frame it makes sense that the image
should be displayed 1:1 with the physical pixels no matter what the
scale factor is.

If that frame is then moved to another display with a different scale
factor do we then resize the image according to the change in scale
factor (so it's still 1:1 with the physical pixels), or keep it the
same (logical) size?

I think we probably want to keep it the same (logical) size, so I
think we need to, as described elsewhere, expose the scale factor to
lisp so that create-image can calculate :scale rather than trying to
calculate it on-the-fly in C code.

We'll probably have to do more fiddling with SVGs though, since they
can define sizes in real-world units, like cm or inches, so the dpi
has to match the physical pixels, and if we move to a different screen
and regenerate the SVG the DPI will be different but the scale likely
won't be recalculated and the image will change size.

Perhaps we need to let lisp set the DPI for an SVG (and other scalable
image types) as well as the scale.

And this is further complicated by the fact macOS uses a "fake" DPI
that has no relation to physical pixel size at all!

And, of course, none of this will help when the lisp code doesn't use
create-image.

I hope this makes sense, I find this hard to describe.
-- 
Alan Third



  parent reply	other threads:[~2021-02-09 20:01 UTC|newest]

Thread overview: 192+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-04 20:49 "Fix" sag scaling for hidpi Yuan Fu
2021-02-04 22:07 ` Stefan Monnier
2021-02-04 23:10   ` Yuan Fu
2021-02-05  9:02     ` Lars Ingebrigtsen
2021-02-05 10:24       ` Robert Pluim
2021-02-06 10:00         ` Lars Ingebrigtsen
2021-02-06 11:15           ` Eli Zaretskii
2021-02-06 11:35             ` Lars Ingebrigtsen
2021-02-06 12:20               ` Eli Zaretskii
2021-02-07 12:05                 ` Lars Ingebrigtsen
2021-02-07 13:14               ` Robert Pluim
2021-02-09 20:01               ` Alan Third [this message]
2021-02-10  8:29                 ` Lars Ingebrigtsen
2021-02-10 18:00                 ` Yuan Fu
2021-02-10 18:07                   ` Yuan Fu
2021-02-10 18:17                     ` Lars Ingebrigtsen
2021-02-10 18:24                       ` Robert Pluim
2021-02-10 18:41                         ` Lars Ingebrigtsen
2021-02-10 18:52                         ` Basil L. Contovounesios
2021-02-11 13:53                           ` Robert Pluim
2021-02-11 14:30                             ` Basil L. Contovounesios
2021-02-11 15:11                               ` Robert Pluim
2021-02-11 22:18                                 ` Cleaning out old X11 toolkits? chad
2021-02-12  7:09                                   ` Eli Zaretskii
2021-02-12  8:44                                     ` Colin Baxter
2021-02-12 11:22                                       ` Eli Zaretskii
2021-02-12  9:30                                     ` Robert Pluim
2021-02-12  9:35                                       ` Lars Ingebrigtsen
2021-02-12 10:00                                         ` Robert Pluim
2021-02-12 10:02                                           ` Lars Ingebrigtsen
2021-02-12 10:04                                             ` Lars Ingebrigtsen
2021-02-12 10:18                                               ` Robert Pluim
2021-02-12 10:30                                                 ` Lars Ingebrigtsen
2021-02-12 21:49                                         ` Jean Louis
2021-02-12 22:03                                           ` Jean Louis
2021-02-12 22:45                                             ` Stefan Kangas
2021-02-13  7:51                                           ` Eli Zaretskii
2021-02-13 12:05                                             ` Jean Louis
2021-02-12 11:28                                       ` Eli Zaretskii
2021-02-12 11:38                                         ` tomas
2021-02-12 13:26                                         ` Robert Pluim
2021-02-12 13:57                                           ` Basil L. Contovounesios
2021-02-15 16:49                                         ` Sean Whitton
2021-02-12 11:47                                     ` Ulrich Mueller
2021-02-12 10:00                                   ` martin rudalics
2021-02-12 10:14                                     ` Robert Pluim
2021-02-12 17:56                                       ` martin rudalics
2021-02-12 18:14                                         ` Merging native-comp and pgtk Stefan Monnier
2021-02-12 18:36                                           ` Eli Zaretskii
2021-02-12 22:29                                             ` Andy Moreton
2021-02-12 23:06                                               ` Stefan Monnier
2021-02-12 23:28                                                 ` Andy Moreton
2021-02-13  9:39                                                 ` Eli Zaretskii
2021-02-13 13:27                                                   ` Stefan Monnier
2021-02-13 14:10                                                     ` Andy Moreton
2021-02-13 14:14                                                       ` Eli Zaretskii
2021-02-13 14:17                                                     ` Eli Zaretskii
2021-02-13 15:48                                                     ` martin rudalics
2021-02-13 15:58                                                       ` Eli Zaretskii
2021-02-14  8:34                                                         ` martin rudalics
2021-02-13  9:20                                               ` Eli Zaretskii
2021-02-13 13:07                                                 ` Andy Moreton
2021-02-13 14:16                                                   ` Eli Zaretskii
2021-02-13 18:01                                                     ` Andy Moreton
2021-02-13 18:12                                                       ` Eli Zaretskii
2021-02-14  7:33                                                 ` Andrea Corallo via Emacs development discussions.
2021-02-14 15:25                                                   ` Eli Zaretskii
2021-02-13  9:26                                               ` Andreas Schwab
2021-02-13 12:45                                                 ` Andy Moreton
2021-02-16 23:22                                               ` Phillip Lord
2021-02-17 15:32                                                 ` Eli Zaretskii
2021-02-17 17:32                                                   ` Andy Moreton
2021-02-17 18:09                                                     ` Óscar Fuentes
2021-02-17 22:20                                                       ` Andy Moreton
2021-02-17 22:52                                                         ` Óscar Fuentes
2021-02-17 19:20                                                     ` Eli Zaretskii
2021-02-12 23:04                                             ` Stefan Monnier
2021-02-13  9:30                                               ` Eli Zaretskii
2021-02-13 13:24                                                 ` Stefan Monnier
2021-02-13 14:15                                                   ` Eli Zaretskii
2021-02-12 21:47                                           ` Andrea Corallo via Emacs development discussions.
2021-02-13  7:39                                             ` Eli Zaretskii
2021-02-13 11:16                                             ` Lars Ingebrigtsen
2021-02-13 11:28                                               ` Tassilo Horn
2021-02-13 11:57                                                 ` Lars Ingebrigtsen
2021-02-13 12:17                                                   ` Dmitry Gutov
2021-02-13 14:53                                                     ` Lars Ingebrigtsen
2021-02-13 20:30                                                       ` Dmitry Gutov
2021-02-13 21:03                                                         ` Lars Ingebrigtsen
2021-02-13 21:30                                                           ` Dmitry Gutov
2021-02-13 21:42                                                             ` Lars Ingebrigtsen
2021-02-13 22:48                                                               ` Lars Ingebrigtsen
2021-02-13 23:44                                                                 ` Tassilo Horn
2021-02-13 17:38                                                   ` Stefan Kangas
2021-02-14 18:36                                                     ` Andrea Corallo via Emacs development discussions.
2021-02-14 19:23                                                       ` Stefan Kangas
2021-02-14 19:32                                                         ` Andrea Corallo via Emacs development discussions.
2021-02-14 23:18                                                           ` Óscar Fuentes
2021-02-15 14:15                                                             ` Andrea Corallo via Emacs development discussions.
2021-02-13 13:41                                               ` Stefan Monnier
2021-02-13 14:18                                                 ` Eli Zaretskii
2021-02-13 20:32                                                   ` Dmitry Gutov
2021-02-14  3:34                                                     ` Eli Zaretskii
2021-02-14  4:32                                                   ` Stefan Monnier
2021-02-13 14:58                                                 ` Lars Ingebrigtsen
2021-02-14 18:34                                                   ` Andrea Corallo via Emacs development discussions.
2021-02-14  7:42                                               ` Andrea Corallo via Emacs development discussions.
2021-02-12 18:32                                         ` Cleaning out old X11 toolkits? Eli Zaretskii
2021-02-13  9:01                                           ` martin rudalics
2021-02-13  9:44                                             ` Eli Zaretskii
2021-02-13 10:29                                               ` martin rudalics
2021-02-14 12:50                                           ` Robert Pluim
2021-02-14 15:53                                             ` Eli Zaretskii
2021-02-15  9:48                                               ` Robert Pluim
2021-02-15 15:23                                                 ` Eli Zaretskii
2021-02-15 16:02                                                   ` Robert Pluim
2021-02-15 16:13                                                     ` tomas
2021-02-15 17:03                                                     ` Eli Zaretskii
2021-02-15 17:20                                                       ` Robert Pluim
2021-02-12 13:04                                     ` Dmitry Gutov
2021-02-12 17:56                                       ` martin rudalics
2021-02-12 18:33                                         ` Eli Zaretskii
2021-02-12 20:09                                           ` martin rudalics
2021-02-12 20:13                                             ` Eli Zaretskii
2021-02-13  9:02                                               ` martin rudalics
2021-02-13  9:47                                                 ` Eli Zaretskii
2021-02-13 10:29                                                 ` Colin Baxter
2021-02-13 13:24                                                   ` martin rudalics
2021-02-13 13:53                                                     ` Ulrich Mueller
2021-02-13 15:49                                                       ` martin rudalics
2021-02-13 19:23                                                         ` Jean Louis
2021-02-14  8:35                                                           ` martin rudalics
2021-02-14  9:33                                                             ` Ulrich Mueller
2021-02-14 17:16                                                               ` martin rudalics
2021-02-14 17:48                                                               ` Eli Zaretskii
2021-02-14 18:18                                                                 ` Andy Moreton
2021-02-14 19:15                                                                   ` Eli Zaretskii
2021-02-14 22:33                                                                     ` Óscar Fuentes
2021-02-15  8:17                                                                     ` martin rudalics
2021-02-15  9:19                                                                     ` Andy Moreton
2021-02-13 14:39                                                     ` Colin Baxter
2021-02-13 14:43                                                       ` Jean Louis
2021-02-13 15:50                                                       ` martin rudalics
2021-02-13 16:04                                                         ` Colin Baxter
2021-02-13 21:42                                                 ` Stefan Monnier
2021-02-14 12:41                                                   ` Robert Pluim
2021-02-14 15:51                                                     ` Eli Zaretskii
2021-02-14 18:18                                                       ` Stefan Monnier
2021-02-14 19:10                                                         ` Eli Zaretskii
2021-02-12 11:20                                   ` Ulrich Mueller
2021-02-12 13:33                                   ` James Cloos
2021-02-12 13:49                                     ` Robert Pluim
2021-02-10 19:19                         ` "Fix" sag scaling for hidpi Stefan Monnier
2021-02-11 14:01                           ` Robert Pluim
2021-02-11 14:59                             ` Stefan Monnier
2021-02-11 15:16                               ` Robert Pluim
2021-02-10 23:55                   ` Alan Third
2021-02-11  2:01                     ` Yuan Fu
2021-02-11 17:34                       ` Yuan Fu
2021-02-11 20:18                         ` Alan Third
2021-02-12 22:47                           ` Alan Third
2021-02-13 11:13                             ` Lars Ingebrigtsen
2021-02-13 11:17                               ` Alan Third
2021-02-13 11:52                                 ` Lars Ingebrigtsen
2021-02-13 12:54                                   ` Alan Third
2021-02-13 13:09                                     ` Alan Third
2021-02-13 15:09                                       ` Lars Ingebrigtsen
2021-02-13 16:00                                         ` Alan Third
2021-02-13 23:30                                           ` Alan Third
2021-02-13 20:09                                         ` Yuan Fu
2021-02-13 21:14                                           ` Lars Ingebrigtsen
2021-02-13 22:50                                       ` Dmitry Gutov
2021-02-13 23:14                                         ` Alan Third
2021-02-14  0:02                                           ` Dmitry Gutov
2021-02-14  2:06                                             ` Yuan Fu
2021-02-14  2:09                                               ` Yuan Fu
2021-02-14 12:19                                               ` Dmitry Gutov
2021-02-14  9:58                                             ` Alan Third
2021-02-13 15:08                                     ` Lars Ingebrigtsen
2021-02-13 15:59                                       ` Alan Third
2021-02-13 21:08                                         ` Lars Ingebrigtsen
2021-02-13 21:53                                           ` Alan Third
2021-02-13 21:57                                             ` Lars Ingebrigtsen
2021-02-13 22:13                                               ` Alan Third
2021-02-13 18:29                                       ` chad
2021-02-13 19:52                                         ` chad
2021-02-13 20:06                                       ` Yuan Fu
2021-02-13 21:11                                         ` Lars Ingebrigtsen
2021-02-13 23:20                                           ` Alan Third
2021-02-09 17:26         ` Grzegorz Kowzan
2021-02-05 20:29       ` Alan Third
2021-02-07 21:58     ` Alan Third

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YCLqGwpxrRjgmuOZ@breton.holly.idiocy.org \
    --to=alan@idiocy.org \
    --cc=casouri@gmail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=larsi@gnus.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=rpluim@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).