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

Different render on different monitors at same computer #4

Open
VISTALL opened this issue Oct 12, 2021 · 13 comments
Open

Different render on different monitors at same computer #4

VISTALL opened this issue Oct 12, 2021 · 13 comments
Labels
bug Something isn't working

Comments

@VISTALL
Copy link

VISTALL commented Oct 12, 2021

I have 3 monitors

  • 1 - fullHD(horizontal)
  • 2 - 4k (main)(horizontal)
  • 3 - fullHD(vertical)

Results:

image

image

image

Also. At main monitor (2) - not focus background became black, but on 1/3 all ok.

Thanks

@VISTALL
Copy link
Author

VISTALL commented Oct 12, 2021

Display Settings

image

(there different index and position of it - ignore)

@selastingeorge
Copy link
Owner

I think it's because when you switch between monitors the IDCompositionVisual size remains the same and your monitor uses a high resolution, I was not able to test this issue since I didn't have a multi monitor setup.

@VISTALL
Copy link
Author

VISTALL commented Oct 12, 2021

I can test it from branch. I don't known this api :(

@selastingeorge
Copy link
Owner

selastingeorge commented Oct 12, 2021

its DWM private API, the API provides the IDCompositionVisual with a fixed size and i clip the visual during WM_WINDOWPOSCHANGED event with the WINDOWPOS struct values, Since there is no docs on this API it is very hard to debug. i think the background does not appear blurred in the first monitor because the IDCompositionVisual might not scale upto the resolution of the virtual monitor. The size of root visual is not set in the program it is set from the dwm private api so i am not sure about how to fix this

@VISTALL
Copy link
Author

VISTALL commented Oct 12, 2021

3rd monitor is also fullHD, but it's blured as expected. But - background bad

@selastingeorge
Copy link
Owner

Are you just testing out the api or trying to use it a project. because as i mentioned in the README file, this is not suitable for production. I Suggest using Windows.UI.Composition.

@selastingeorge
Copy link
Owner

3rd monitor is also fullHD, but it's blured as expected. But - background bad

Not sure about how that happen, just try printing the size of rootvisual on to the console, if it is same as the Virtual Screen width may be i could fix it

@selastingeorge selastingeorge added the bug Something isn't working label Oct 12, 2021
@VISTALL
Copy link
Author

VISTALL commented Oct 12, 2021

Testing :) I want understand, how do bluring via C++. I love aero, but win 10 introduce new bluring effects (acrylic) which not documented (except C# examples) =/

You made good work 👍🏻

@selastingeorge
Copy link
Owner

Testing :) I want understand, how do bluring via C++. I love aero, but win 10 introduce new bluring effects (acrylic) which not documented (except C# examples) =/

You made good work 👍🏻

Thank you, i am trying to bring back acrylic to wpf using windows.ui.composition but to overcome the airspace issue it's hard, the only way i see is by overlapping windows it works fine but i will lose all the windows animations like minimize, maximize etc..
Here is a demo :
acrylic demo .NET 5.zip

@VISTALL
Copy link
Author

VISTALL commented Oct 12, 2021

Nice demo) I want create same effect at my app (java app).

There some example at macOS

image

and want same for windows (for mac it's native impl too)

@VISTALL
Copy link
Author

VISTALL commented Oct 12, 2021

Just research :)

@selastingeorge
Copy link
Owner

But Windows, Mac, Linux uses different technologies to blur the windows, it is completely depend upon the Compositor used by the OS. When a GUI Application is running the compositor receives the buffer containing the pixels to be rendered it is compositors duty to attach input to each Application, and render it into the screen. so different compositors uses different techniques for blurring and some does not even have an API. eg: Windows uses DWM as its Compositor, for Linux there are a lot like Sway (wlroots) etc..

@VISTALL
Copy link
Author

VISTALL commented Oct 12, 2021

yeah:) it's just example

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants