<div dir="ltr">Mouse input is reported in a 24.8 fixed-point format. Subpixel mouse locations are entirely possible.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Mar 9, 2015 at 10:33 PM, microcai <span dir="ltr"><<a href="mailto:microcai@fedoraproject.org" target="_blank">microcai@fedoraproject.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">在 2015年3月9日 Monday 08:59:35,您写道:<br>
<span class="">> You misunderstood what pq said.<br>
><br>
> You work in "logical pixels". On a hi-DPI display, with twice the pixel<br>
> density, each "logical pixel" is backed by 4 device pixels. Your actual<br>
> backing surface containing the pixels is in "device pixels".<br>
><br>
> So, if you have an window that is 800x600 logical pixels, when you drag it<br>
> to a low-DPI display, your backing buffer is 800x600 device pixels. When<br>
> you drag it to a hi-DPI display, your backing buffer is 1600x1200 device<br>
> pixels.<br>
<br>
</span>So mouse input is reported in logical pixels, and the logical pixels is not<br>
floating point numbers, resulting lost information when the surface are on<br>
hidpi display.<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
> When you submit your buffer, you tell the compositor what the ratio of<br>
> device pixels to logical pixels is, in the perhaps misnamed<br>
> "set_buffer_scale" request. So, for the low-DPI buffer, you submit "1",<br>
> since 800x600 / 800x600 = 1. When you submit your hi-DPI buffer, you submit<br>
> "2", since 1600x1200 / 800x600 = 2.<br>
><br>
> If you submit "1" and you are on a low-DPI display, it all matches and<br>
> things are fine. If you submit "1" and you are on a hi-DPI display, the<br>
> compositor scales up your buffer to match. If you submit "2" and you are on<br>
> a hi-DPI display, it all matches up and things are fine. If you submit "2"<br>
> and you are on a low-DPI display, the compositor scales down your buffer to<br>
> match.<br>
><br>
> On Mon, Mar 9, 2015 at 6:19 AM, microcai <<a href="mailto:microcai@fedoraproject.org">microcai@fedoraproject.org</a>> wrote:<br>
> > 在 2015年3月9日 Monday 10:39:20,您写道:<br>
> ><br>
> > > Hi,<br>
> > ><br>
> > > On Monday, March 9, 2015, microcai <<a href="mailto:microcai@fedoraproject.org">microcai@fedoraproject.org</a>> wrote:<br>
> > > > so we are forcing two code pathes in APP? or just support non-integer<br>
> > > > scale?<br>
> > ><br>
> > > Scaling is a specific fallback for legacy/non-DPI-aware clients, to get<br>
> > > them to show anything at all. Other clients will render at the<br>
> ><br>
> > appropriate<br>
> ><br>
> > > resolution already.<br>
> ><br>
> > That's not the story I was told. pg says scale is the *only way* to<br>
> > support<br>
> > HiDPI.<br>
> ><br>
> > > Any plan that relies on integer scaling means you're wasting pixels on<br>
> ><br>
> > your<br>
> ><br>
> > > lovely dense display. Any plan that relies on non-integer scaling makes<br>
> > > your text blurry to the point of unreadable - again, a waste of pixels<br>
> > > on<br>
> > > such lovely displays. Just render at the correct scale to begin with.<br>
> > ><br>
> > > Cheers,<br>
> > > Daniel<br>
> ><br>
> > _______________________________________________<br>
> > wayland-devel mailing list<br>
> > <a href="mailto:wayland-devel@lists.freedesktop.org">wayland-devel@lists.freedesktop.org</a><br>
> > <a href="http://lists.freedesktop.org/mailman/listinfo/wayland-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/wayland-devel</a><br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">  Jasper<br></div>
</div>