Coder Social home page Coder Social logo

Comments (17)

leadedge avatar leadedge commented on June 8, 2024

This was addressed back in 2017 by Tim Thompson, who changed the full screen function to allow for multiple monitors. It required some changes to use (MonitorFromWindow). If it's on a different monitor this function detects it. Default is the primary monitor. I can't see any changes since then that might affect it. Unfortunately I can't test it because I don't have a multiple monitor setup.
Check the version you are using. The changed occurred for Version 2.019. The latest version is 2.024. At that time it worked for him, so it should be same now. It might be possible with Openframeworks or something similar, but again I don't have the means to do anything with it. Perhaps you know somebody who might be able to help.

from spout2.

nuclearsugar avatar nuclearsugar commented on June 8, 2024

Thanks for the info.

I'm using SpoutReciever v2.023, as bundled with the latest Spout_2006_update-3 Install. Unfortunately SpoutReciever will currently only use the main display for full screening. This is confirmed from several different people using multi-monitor setups.

@nosuchtim - Would you be interested and willing to look at the SpoutReciever code again?

from spout2.

leadedge avatar leadedge commented on June 8, 2024

2.024 is at https://github.com/leadedge/Spout2/tree/beta/DEMO. But I am sure it won't make any difference.
If Tim has the time, I am available by email to look at details.

from spout2.

leadedge avatar leadedge commented on June 8, 2024

Try this version - 2.021 -

SpoutReceiver.zip

just after the modifications were made:

from spout2.

nuclearsugar avatar nuclearsugar commented on June 8, 2024

I just tested out SpoutReciever v2.021 and it will only use the main display for full screening. So perhaps something within Windows or a library has changed since then. Alas!

from spout2.

leadedge avatar leadedge commented on June 8, 2024

Here is Version 2.020

SpoutReceiver_2020.zip

That goes back a little more. I can't find 2.019.

Edit : - I found it in backups. Try both of these and that will narrow down the code changes.

SpoutReceiver_2019.zip

from spout2.

nosuchtim avatar nosuchtim commented on June 8, 2024

from spout2.

leadedge avatar leadedge commented on June 8, 2024

Thanks very much Tim.
The menu is now removed and the TaskBar put lowest order before the resizing.
Could you try both 2.021 and 2.024?
This should confirm where the problem is.
There is no repo for this, but I can send you a complete project for Visual Studio 2017.

from spout2.

nosuchtim avatar nosuchtim commented on June 8, 2024

from spout2.

nosuchtim avatar nosuchtim commented on June 8, 2024

from spout2.

leadedge avatar leadedge commented on June 8, 2024

Thanks Tim.
The only thing different between 2.020 and 2.021 is -

		GetMonitorInfoA(monitor, &mi);
		int w = (int)(mi.rcMonitor.right - mi.rcMonitor.left); // rcMonitor dimensions are LONG
		int h = (int)(mi.rcMonitor.bottom - mi.rcMonitor.top);
		// Setting topmost causes a grey screen for Windows 10
		// If scaling is set larger than 100% e.g. 125%
		// Also there seems to be a delay in receiving keystrokes even if set to 100%
		// SetWindowPos(g_hwnd, HWND_TOPMOST, 0, 0, w, h, SWP_SHOWWINDOW);
		// This seems to fix it.
		SetWindowPos(g_hwnd, HWND_NOTOPMOST, 0, 0, w, h, SWP_SHOWWINDOW);
		SetWindowPos(g_hwnd, HWND_TOP, 0, 0, w, h, SWP_SHOWWINDOW);

So I removed the NOTOPMOST/TOP and went back to a single TOPMOST. It no longer goes grey for me at this time. Could have been be a driver issue.

SpoutReceiver_2005.zip

If that still doesn't work, I am not sure where to look.

from spout2.

nosuchtim avatar nosuchtim commented on June 8, 2024

from spout2.

nuclearsugar avatar nuclearsugar commented on June 8, 2024

I tested each version and SpoutReceiver v2.020 is the only version that will fullscreen to any monitor.

@pom256 - have any experience with this?

from spout2.

leadedge avatar leadedge commented on June 8, 2024

I think I found the problem. While I was trying to solve the grey screen effect, I forgot to include the monitor origin in the moves.

		int x = (int)mi.rcMonitor.left;
		int y = (int)mi.rcMonitor.top;
		int w = (int)(mi.rcMonitor.right - mi.rcMonitor.left);
		int h = (int)(mi.rcMonitor.bottom - mi.rcMonitor.top);
		SetWindowPos(g_hwnd, HWND_NOTOPMOST, x, y, w, h, SWP_SHOWWINDOW);
		SetWindowPos(g_hwnd, HWND_TOP, x, y, w, h, SWP_SHOWWINDOW);

SpoutReceiver_2026.zip

from spout2.

nuclearsugar avatar nuclearsugar commented on June 8, 2024

SpoutReceiver v2.026 fixed the issue! Nicely done.

from spout2.

pom256 avatar pom256 commented on June 8, 2024

I always think that the demo receiver was designed for the main monitor only so I didn't try on a second monitor. But many NestDrop user tell me the same as NuclearSugar regards as even if they drag the Window on the second screen, it will go back to the primary in fullscreen mode. So I just tell them that they change the main monitor in Window setup... But it's more a patch for the moment then a real fix.

I confirm that the receiver which came with Spout 2.0.0.6 go back to my main monitor in full screen when I press f on it, and return to my second monitor when I exit the full screen.

I know that the real 'fullscreen' mode in Directx was targeted the main monitor only. But I remember read some comment in spout code that the fullscreen was just replaced by a floating window with the same size than the screen... But this is old stuff and I'm sure that leadedge is already far beyond that...

from spout2.

leadedge avatar leadedge commented on June 8, 2024

OK @nuclearsugar. That's got it working for you.
@pom256 - yes it's not real fullscreen. The window menu and borders are removed and the remainder is resized and put on top. This was always intended as a demo testing program and the code is ancient. There will come a time when it won't work but until then it does the job.
I read that there is more involved with DPI and scaling, but it's going too far for this program. I have enabled "Per Monitor High DPI Aware" in the project settings, so hopefully that will look after it.
@nosuchtim many thanks for your help.

from spout2.

Related Issues (20)

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.