Re: [g-a-devel] No module anymore & perfect zoom feature



On Mon, 2018-03-05 at 15:05 +0100, Samuel Thibault wrote:
Hello,

Emmanuele Bassi, on jeu. 01 mars 2018 20:27:04 +0000, wrote:
I was not claiming that the Shell’s zoom is perfect; I’m saying
that the Shell
is where things need to be fixed, as it’s where things are
implemented already.

Well, that is for gnome.  Users shouldn't be tied with gnome just to
get
good zoom of gtk applications, and we want good zoom of other widget
libraries too, so we need a window magnification interface which is
independent from gnome.

If you implement the feature in GTK+ and gnome-shell in a way that
makes either of those replaceable, you can then add support for non-
GTK+ apps, or non-gnome-shell compositors.

I don't see how you could implement it without the compositor knowing
about the feature. The compositor already knows how to modify what
appears on the screen, can modify on-screen data quickly (for all the
brightness, contrast, etc. changes), and using the GPU knows how to
scale.

The shell does not currently ask the toolkit to render an area at a
different
scaling factor, but it could. The shell can also change the
rendering pipeline
to apply an effect like color inversion.

But that means it'll only benefit the gnome shell, and not other
desktops.  Writing a *good* magnifier, which means not only just the
graphical effect, but also mouse tracking, focus tracking, smooth
transition, etc. is not something that we want to see having to be
implemented several times for several desktops, there are not enough
people who have the skills, context, and time to do that.

Perhaps, but you'd be doing a disservice to your users trying to
implement this as a "can run anywhere" solution. I don't think there's
any way you can implement this generically so that there's no work
needed on other desktops.

Implementing this in GTK+ and gnome-shell gives you the opportunity to
experiment with an interface that should hopefully be applicable to
other compositors, and compositing window managers.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]