Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question about multiple monitors #9

Open
jeremfg opened this issue Jul 4, 2023 · 2 comments
Open

Question about multiple monitors #9

jeremfg opened this issue Jul 4, 2023 · 2 comments
Labels
enhancement New feature or request question Further information is requested

Comments

@jeremfg
Copy link

jeremfg commented Jul 4, 2023

I'm currently a user of Advanced Scene Switcher, allowing me to automatically switch the scene/screen being shown based on the current cursor position.

This script's current behavior (by design) only shows the cursor highlight when my primary display (scene) is being shown.
It would be cool if we could support multiple monitors.

Multiple monitors setup will not work.

Does this implies it's impossible to make it work? Or just very hard and the idea was abandoned?
I can already foresee the complexity of calculating relative scene position from X,Y mouse coordinates when hovering above other monitors. What are the difficulties I'm not seeing for developing this feature?

@upgradeQ
Copy link
Owner

upgradeQ commented Jul 5, 2023

Does this implies it's impossible to make it work? Or just very hard and the idea was abandoned?

  1. No, it is possible if we set restrictions, e.g. no vertical stacking, only dual monitors, set monitor
    positions in the settings menu, etc. 2) It was abandoned because there was no way to have virtual monitors to test, as I currently only have one real monitor.

Update:
I've tested this method - adding virtual display via driver https://superuser.com/a/1742744 - it works and shows in OBS Studio.

Sample mouse cursor positions printed c = pynput.mouse.Controller(); print(c.position) when using it:

  • (1111, 523) - normal primary monitor location
  • (2770, 602) - right side of the primary monitor set as extended in display settings
  • (5119, 213) - same as above
  • (1346, -241) - vertically stacked in display settings above primary monitor
  • (0, -1440) - same as above

What are the difficulties I'm not seeing for developing this feature?

The mouse cursor source may be stuck in one place and we need to tell it to hide/show up when the current monitor is active/inactive in the OBS Studio preview. It also important to know how large is canvas size, how many monitors on it.

Idea:
There should be a list of scenes with display capture and cursor skin source, depending on the position in a list, the offset is calculated.

I am not using a multi-monitor setup and may be missing some critical functionality. It would be nice if the community could come up with ideas,suggestions and designs for this feature.

@upgradeQ upgradeQ added enhancement New feature or request question Further information is requested labels Jul 5, 2023
@upgradeQ
Copy link
Owner

Idea:
Use 3x3 monitor matrix, primary screen starts at matrix[1][1]. Use shaders instead of script + sceneitem method, so each shader (filter) is applied to each monitor screen source, and it gets normalised mouse coordinates. You set the matrix index for each filter in the properties of that filter, then the code of the filter source decides to paint or skip. Additionally it should be possible to draw image or video source inside the filter.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants