#10486: add to accelerant api to support managing multiple montors ------------------------------------+---------------------------- Reporter: kallisti5 | Owner: axeld Type: enhancement | Status: new Priority: normal | Milestone: Unscheduled Component: Kits/Application Kit | Version: R1/Development Resolution: | Keywords: Blocked By: | Blocking: 8612 Has a Patch: 1 | Platform: All ------------------------------------+---------------------------- Comment (by pulkomandy): I don't remember saying that, either... I was only wondering which way we want to go with this. The current hack in Radeon driver is to have a big frame buffer, and each display shows only part of it. If both display show the same part, you have clone mode. If they show different parts, you have poor man's dualscreen mode, with some problems because apps don't know about it, and for example CenterOnScreen will put window in the middle, split between the two displays. In X11, they use the same solution with a single framebuffer, but they allow apps (or, actually, window managers) to query about the displays positions and put things at the right place. Another solution is to allocate a separate framebuffer for each display. This can work, but we have to take care of some things, for example a window that has parts visible on each screen (if we make this possible) will have to draw on both framebuffers. I think this requires calling the Draw() method twice, because splitting the drawing primitives between two framebuffers inside app_server sounds complicated to me (this is where the "nightmare" comes from). On the other hand, this makes it possible to do a dual-head setup with two video cards easy, as there is no need to share a framebuffer. I'm also still unsure how this would map to workspaces. From the user standpoint, workspaces are already layed out in space, in a grid. Mapping this to the available displays may be non-trivial. We may make the workspace cover both displays, allow each display to show any workspace independent from the others, or force the workspace > display mapping to be spacially correct. If your workspaces are setup this way: {{{ 0 1 2 3 4 5 }}} The left monitor can only show even workspaces. The right monitor shows the workspace at n+1 (so you can see (0,1), (2,3), or (4,5). Then there is the problem of dinamically adding/removing displays, where we want windows to come back to the visible area, but we don't want their positions to be lost if you re-plug the same monitor again. I'm not sure it's a good idea to rush into writing code, when, as far as I know, none of this has been discussed yet and we don't even know how the multi-display thing is supposed to work, from the user point of view. -- Ticket URL: <https://dev.haiku-os.org/ticket/10486#comment:12> Haiku <https://dev.haiku-os.org> Haiku - the operating system.