<div dir="ltr"><div>I think we should allow fractional scale factors. Clients which only support integer scale factors should round the scale factor they get to a whole number.</div><div><br></div><div>We should implement this by adding a scale_factor event on wl_output (which clients can get at any time).</div>
<div>When clients have rendered their contents in the new scale factor they should call set_scale_factor on wl_surface (which should only work for windows/top-level surfaces, not subsurfaces).</div><div>set_scale_factor should take two arguments, the scale factor of the output the client used and the rounded scale factor it used for rendering.</div>
<div>The reason the rounded scale factor is sent is so when the compositor decides to resize the window, it can use the actual scale factor of the window. The scale factor of the output is send so the compositor knows it the client rounded the scale factor and can use a different policy of resizing the window.</div>
<div><br></div><div>I don't think we need a scale priority on wl_outputs, clients should pick the highest scale factor of the outputs it's on.</div><div><br></div><div>Bill Spitzak: This can't be done with the scaler API because it refers to scaling of subsurfaces which are positioned on pixel boundaries. It would also be prone to rounded errors resulting in scaling when we don't want any (which is in most cases).</div>
</div>