Intuition "Xinerama" Features

AmigaOS users can make feature requests in this forum.
Belxjander
Posts: 314
Joined: Mon May 14, 2012 10:26 pm
Location: 日本千葉県松戸市 / Matsudo City, Chiba, Japan
Contact:

Intuition "Xinerama" Features

Post by Belxjander »

This is actually very simple in concept,

1: Allowance for Mutliple Display Capable Machines to have whatever Intuition Screen displayed on each card to continue refreshing even when the pointer is active elsewhere

2 Visually Infinite Mouse Scrolling using a transition at Screen Edges Option (Programmable setting).

basically the addition (either a new Commodity or Intuition update)

When the mouse touches a screen border, it will either stop (default. existing behaviour) or *appear* to continue by switching to a new screen (with the mouse appearing on the opposite screen edge of the new screen displayed).

basically a new SwitchToScreen behaviour when the pointer reaches a screen border (actual screen edge for larger than display screens not the displayed area edge).

given “screen scrolling” for a 1024x768 screen when displayed on an 800x600 view, scroll as normal,
at the 1024x768 edges trigger for a change of screen + mouse pointer relocation to opposite screen border.

Example: GraphicsCard1+Monitor1 displays “Workbench” PubScreen @1024x768,
GraphicsCard2+Monitor2 displays “CygnusEdScreen1” PubScreen @1024x768,

When the pointer is travelling right and touches the Right edge of “Workbench” Active screen is switched to CygnusEdScreen1 additionally the mouse is horizontally changed from Right Edge to Left Edge placement.

Visually the mouse is to appear to cross from Workbench to CygnusEdScreen1 smoothly.
but in actual terms two changes are applied, ScreenToFront() +Mouse Pointer Position changes.

the result would be an X11/Xorg “Xinerama” appearance of mouse travel across PubScreens.

Restriction: only the mouse can cross screen edges (dragged objects and windows are “drop-reset” back to pickup points)
Required: Active refresh of any screen currently displayed on visible GraphicsCard+Monitor "head"s

Is this possible?
Is this a wanted behaviour?
User avatar
Amigo1
Posts: 221
Joined: Sun Jan 01, 2012 3:32 pm

Re: Intuition "Xinerama" Features

Post by Amigo1 »

Is this possible?
My guess, I don't think it is. Too few developers and little (monetary) resources.
Is this a wanted behaviour?
I would not say no to multi-monitor support..
User avatar
tonyw
AmigaOS Core Developer
AmigaOS Core Developer
Posts: 1479
Joined: Wed Mar 09, 2011 1:36 pm
Location: Sydney, Australia

Re: Intuition "Xinerama" Features

Post by tonyw »

As a developer, I would dearly love multi-monitor support. As it is, I write and compile on one machine and run debug tests on another, their two monitors side by side. The two machines talk by Samba and after rebuilding my work, I save it in RAM: on the #1 machine, then, on the #2 machine, copy it from the #1 machine to RAM: in the #2 machine, where I can run and test the result. I capture any debug output from the #2 machine via a serial cable to the #1 machine, running Term.

If I had dual monitors, I could do all that on the one machine and leave the other machine to capture debug output. Unfortunately, the main problem is not Intuition but graphics library. It does not grok the concept of more than one graphics playing field, or even of displaying a double-width playing field on two monitors. There is a lot of work to be done there to make that possible.
cheers
tony
User avatar
thomasrapp
Posts: 310
Joined: Sat Jun 18, 2011 11:22 pm

Re: Intuition "Xinerama" Features

Post by thomasrapp »

It's very easy to write an input handler or commodity which switches to the next screen when you move the mouse over the right border of the current screen. I wrote it already.

More work would be needed to switch only to screens on a different monitor or to arrange monitors.

What can't be done without adjustment to the OS is to expand one screen to multiple monitors. So you cannot have the Workbench screen span two monitors or so. But of course you can have your editor on the left screen, the compiler and documentation on the middle screen and your test program on the right screen.

All you need is three different graphics cards, one for each monitor. AFAIK using three gfx cards of the same kind or multiple outputs of the same gfx card is not possioble yet.
User avatar
broadblues
AmigaOS Core Developer
AmigaOS Core Developer
Posts: 600
Joined: Sat Jun 18, 2011 2:40 am
Location: Portsmouth, UK
Contact:

Re: Intuition "Xinerama" Features

Post by broadblues »

Apart from the fact I'm moving between screen on two different machines, this is essential what MKShare does.

Mouse hit left edge of screen on SAM enters right edge of Screen on X1000. Keyboard focus follows mouse. And as an extra clipboard is auto copied between machines if out of sync.
Belxjander
Posts: 314
Joined: Mon May 14, 2012 10:26 pm
Location: 日本千葉県松戸市 / Matsudo City, Chiba, Japan
Contact:

Re: Intuition "Xinerama" Features

Post by Belxjander »

FOR CLARICATION ***NOT** A SINGLE-SCREEN ACROSS MONITORS,

Specifically the visual appearance of *multiple* PubScreens allowing the mouse to visually border cross from one to another,

@ThomasRapp: the Right-Border linkage to a second screen is a simple case,
I was also considering where Workbench was the logical center screen with full visual “border crossing” in any direction.
(**potentially** plausible behaviour for additional pubscreens to do the same...)

@Tonyw: I have already discussed this with the Radeon drivers author (Radeon HW requires explicit driver modelling to enable a “two monitors - one graphics card” **hack** so I did not request this at all, all results of trying such hackery became unworkable or required massive braphics/layers/intuition hacking to support...ugh...just no)

I explicitly stated, primary “GraphicsCard(*1*)+Monitor(*1*)" and secondary “GraphicsCard(*2*)+Monitor(*2*)”,
not “multi-monitor” with shared graphics card at all.

the explicit OS change would be a GraphicsCard retaining and continuing updating the last screen loaded to its active drawing mechanisms.

each single graphicscard+monitor pair having a single PubScreen displayed,

the explicit “Multiple Display” aspect was the mouse transition at screen borders (drag-n-drop or other mouse-move updated handling is exited by this transition)

in this way *multiple* PubScreens may appear as a single larger Workspace and it would behave in a “Tiled” manner,
each monitor being one “pubscreen tile” of the combined Workspace.

Does this clarify for everyone the actual concept ruiles better?

EDIT: @Broadblues: Multiple PubScreens with separate GraphicsCard+Monitor hardware *on-a-single-machine*,
not two machines sharing a Keyboard+mouse, single machine with two graphics cards and two monitors showing two PubScreens that are used as a singular workspace.
User avatar
broadblues
AmigaOS Core Developer
AmigaOS Core Developer
Posts: 600
Joined: Sat Jun 18, 2011 2:40 am
Location: Portsmouth, UK
Contact:

Re: Intuition "Xinerama" Features

Post by broadblues »

EDIT: @Broadblues: Multiple PubScreens with separate GraphicsCard+Monitor hardware *on-a-single-machine*,
not two machines sharing a Keyboard+mouse, single machine with two graphics cards and two monitors showing two PubScreens that are used as a singular workspace.
Yes but functionally in terms of mouse event control at the commodity level, the actions required are the same. Also in terms of user preference as to seting up which screen is where. (left or right edge move to other screen etc).

Another feature that MKShare has which might make your concept more usable is a "Screen Lock" hotkey, that prevents the mouse from switching screen. This makes playing of mouse controled games easier and also maybe drawing packgaes where you wouldn't want to switch screen if you hit the edge of the canvas.

This could all be done with a relatively simple commodity. Probably slightly simple than MKShares as there is no need to worry about streaming the mouse and keyboard events to the remote machine.
Belxjander
Posts: 314
Joined: Mon May 14, 2012 10:26 pm
Location: 日本千葉県松戸市 / Matsudo City, Chiba, Japan
Contact:

Re: Intuition "Xinerama" Features

Post by Belxjander »

broadblues wrote:
EDIT: @Broadblues: Multiple PubScreens with separate GraphicsCard+Monitor hardware *on-a-single-machine*,
not two machines sharing a Keyboard+mouse, single machine with two graphics cards and two monitors showing two PubScreens that are used as a singular workspace.
Yes but functionally in terms of mouse event control at the commodity level, the actions required are the same. Also in terms of user preference as to seting up which screen is where. (left or right edge move to other screen etc).

Another feature that MKShare has which might make your concept more usable is a "Screen Lock" hotkey, that prevents the mouse from switching screen. This makes playing of mouse controled games easier and also maybe drawing packgaes where you wouldn't want to switch screen if you hit the edge of the canvas.

This could all be done with a relatively simple commodity. Probably slightly simple than MKShares as there is no need to worry about streaming the mouse and keyboard events to the remote machine.
That is a very good point about "Screen Lock" however my initial concept had the "Screen Lock" as default behaviour and only "Named PubScreen" @ "<direction>=<target>" tupling rules followed when both <current> and <target> Named PubScreens are open.

so if a Rule for "Extend=Workbench Right=CygnusEdScreen1 Bottom=DOpus.1" and neither CygnusEd nor DOPus were open, Workbench would not extend, however as soon as one or both become available the scrolling also becomes available with an active movement of the mouse stepping past the screen border for vector bounds checking.

Would it be possible to check "velocity" and require a minimum velocity to make a transition?
slow = edge-passthrough, fast = edge-blocking maybe reversible by toggle?

Definitely User-Configs and not policy by code here...if I get any time I'll experiment with this.
xenic
Posts: 1185
Joined: Sun Jun 19, 2011 12:06 am

Re: Intuition "Xinerama" Features

Post by xenic »

Belxjander wrote:so if a Rule for "Extend=Workbench Right=CygnusEdScreen1 Bottom=DOpus.1" and neither CygnusEd nor DOPus were open, Workbench would not extend, however as soon as one or both become available the scrolling also becomes available with an active movement of the mouse stepping past the screen border for vector bounds checking.
What would happen if the user drags the Workbench screen to reveal the screen that is already being displayed on another monitor? It seems to me that a number of Intuition features would need to be disabled for your dual display system to work properly.
AmigaOne X1000 with 2GB memory - OS4.1 FE
User avatar
nbache
Beta Tester
Beta Tester
Posts: 1714
Joined: Mon Dec 20, 2010 7:25 pm
Location: Copenhagen, Denmark
Contact:

Re: Intuition "Xinerama" Features

Post by nbache »

xenic wrote:What would happen if the user drags the Workbench screen to reveal the screen that is already being displayed on another monitor? It seems to me that a number of Intuition features would need to be disabled for your dual display system to work properly.
Not sure of the exact workings (I never or rarely use other screens than WB), but if a certain screen had been defined to appear on another card/monitor, I wouldn't expect to be able to reveal it on the first one even when dragging WB down.

Best regards,

Niels
Post Reply