Git Product home page Git Product logo

Comments (5)

kettle11 avatar kettle11 commented on August 16, 2024

This is a tricky issue.

If I'm understanding correctly the goal is to display a single window across multiple screens of different DPIs and yet still have the window appear as if it's a proper rectangle without broken edges.

Conceptually such a thing should be possible: It should be possible to know the size of the pixels one each screen and their relation to each other.

In reality it may be too potentially fraught with error because there may not be a reliable way to know the actual scale of a monitor's pixels and the relation of the monitors and their bezels to each other may not be known.

Does any software (regardless of purpose) handle this case? Perhaps something like a flight simulator, or a racing game?

And each OS may have different quirks that make it difficult to handle this case in a consistent way.

Most software seems to use the DPI of the screen that the window is primarily on (simply using the DPI of the first screen is not appropriate, but some software does that). LIkely kui will just scale the interface to the window it is mostly on.

Thinking on this issue seems useful, but actually trying to solve it may be too difficult and niche. At least initially.

from kui.

dumblob avatar dumblob commented on August 16, 2024

There was some discussion about this in vurtun/nuklear#283 (comment) . I know that e.g. nVidia offers something similar in driver settings (but I don't know to what extent - though I remember even bezels could be "cut out" to make the physical view of adjacent physical screens continuos despite missing some information "hidden behind bezels").

I actually don't think it's such a niche as it might seem. Multiple screens is a standard today and most people around have different resolutions on different screens and they accept that the SW is still so dumb in 2020, that it can't do the adjustment mentioned above.

A more important question would be to ask whether this issue should be solved by UI library or rather by some lower-level library. My answer is "I don't know generally, but in UI library we can have it much much quicker and multiplatform unlike with lower-level backends.".

from kui.

kettle11 avatar kettle11 commented on August 16, 2024

Stepping back a level let's assume it's completely possible, what does the person using the software expect?

Windows and MacOS have settings (not sure about Linux distros) to scale the UI on high resolution monitors so that text is legible. If a window spans multiple monitors which scale should be used?

If the window scaled differently in different parts depending on the monitor then the UI would still look fragmented. An approach is to choose a primary monitor to use the scale from, but that's what Windows at least does already (not sure about the other OS's).

Perhaps the OS's do this poorly in a way that makes the window look broken up, but it is potentially difficult to work around from a UI library's perspective.

from kui.

dumblob avatar dumblob commented on August 16, 2024

Windows and MacOS have settings (not sure about Linux distros) to scale the UI on high resolution monitors so that text is legible. If a window spans multiple monitors which scale should be used?

Oses do this on top of what kui and other libraries can (should) use, so there shouldn't be any harm.

I'm biased as the author of an API for this kind of issues as well as one of the "pushers" to prepare technical foundation for how to implement this in practice with nearly no effort. From my point of view, there are absolutely no technical obstacles, but just informed decisions of UI libs' makers to ignore this and proceed with the current "status quo". I bet there'll be a day when this'll blow up and UIs will need to implement it anyway (I see some parallels with how APIs in Android have blown up several times due to significant changes on the market leading to severe complications of development and making backwards compatibility nearly impossible).

from kui.

dumblob avatar dumblob commented on August 16, 2024

Stepping back a level let's assume it's completely possible, what does the person using the software expect?

Sorry for not answering this question. I think people always expect physical continuity of what is being rendered in case the screens are in the "continuous" mode (i.e. forming the one big canvas). The long term trend is to forget about resolution (both horizontal & vertical) completely and think of just scaling (beware, for technical reasons scaling is actually two independent coefficients - one for "overall size" and another for "font and font-dependent-e.g.-padding sizes").

from kui.

Related Issues (5)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.