Add new capture technology#932
Conversation
… screen, but this is not yet included) as a Beta Test feature.
|
It's ✨🪄 |
|
Placed this behind a BetaTester feature toggle, which is currently only available via the greenshot.ini file. Those wanting to help beta-testing this, just drop a file called greenshot-fixed.ini (if there isn't one already) with the following in the %APPDATA%\Greenshot directory and restart Greenshot: |
|
🤩 |
|
Can you take her for a ride? Wasn't easy to get her running... |
|
I played around with it a bit.
|
|
Thanks for having a look! I also like the transparency, even though it said somewhere that it doesn't do that 😂 The loop somewhat can be explained, Windows waits until something changes. Why nothing changes is a good question. What do you mean with parts of the Window? More or less, Microsoft advertises this Technology to solve exactly THAT. |
|
I set and greenshot still doesn't seem to handle HDR correctly, preview/screenshot is very blown out still. |
|
just wanted to thank you, man. This thing was so fucking annoying. |
It's currently only for the window capture, not the whole screen. |
|
With V1.4.147 the new tech is also used with the region and screen captures. Still needs the BetaTester as it's not tested enough. |

This PR adds WindowsGraphicsCapture functionality to capture the Window (and screen, but this is not yet included) as a Beta Test feature.
WGC is a relative new feature in Windows, arrived with Windows 10, made to capture Windows and screens with the latest technologies. This should work with HDR, high DPI and also with games, but I didn't put it through extensive tests... Which is why we put it behind a feature toggle.
WGC captures the window contents from the composition engine, sometimes it takes a bit longer if there are no changes, so we need to monitor this. I also noticed that it uses transparency, let's see how that works.
Anyway, to make this work on .NET 10 would be easy, unfortunately we are on .NET framework, so I had to use some tricks and DirectX code, including SharpDx (no longer maintained) as a dependency would not be very satisfactory, so I had to create the needed interop classes myself.
For now I only enabled Window capture, due to limited time. The screen capture will need to be added later, as this is monitor based and not 100% in line with the current GDI (bitblt) capture.