<div dir="ltr">On Tue, Jun 4, 2013 at 10:24 PM, Bill Spitzak <span dir="ltr"><<a href="mailto:spitzak@gmail.com" target="_blank">spitzak@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">John Kåre Alsaker wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
And I'm worried that high-resolution pointing devices will be<br>
ignored by clients that immediately round to the nearest buffer pixel.<br>
<br>
Presumably they wouldn't use the high-resolution for anything then. I'm not sure how this relates to the topic either.<br>
</blockquote>
<br></div>
A client has to round event if it wants to do high-resolution, because it wants to align positions with things in the buffer. This gets pretty important with 3D modelling, lots of users and software assume that the mouse will stop on exactly the same fractional positions, and under your proposal this would change.<br>
<br>
For instance if there is a low-res device and a scale-3 output, then a client doing a hi-res display will get mouse positions of 1, 1.333.., 1.666..., in that window. If there is no low-res device and the hi-res one now has a scale of 1, then the client will get positions of 3,4,5.<br>
<br>
Multiplying the 24.3 fixed-point representation of 1.333.. by 3 gets 3.996. The client has to round this to 4 or it will align things slightly different on one system than the other. I can assure you that this difference is very annoying in 3D software.<br>
<br>
The only solution is to figure out the resolution of the pointing device, transform the fixed-point event positions to the buffer positions, and then round to the nearest multiple of the pointing device resolution. I think a lot of software will ignore the "figure out the resolution of the pointing device" step and just assume it is 1 pixel. Therefore any possible high-resolution pointing will be thrown away.<br>
<br>Getting the events in buffer pixels would make it a lot easier as they could be used unchanged. Clients could then just assume any fraction is due to a high-resolution pointing device.<br></blockquote><div>This is still a problem without any high-DPI stuff. You could just as easily have an input device with a resolution 3 times higher than the display.</div>
<br></div>