-
-
Notifications
You must be signed in to change notification settings - Fork 171
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
ms windows shadow server improvements #389
Comments
Screenscraping may be the only feasible way to get 3D apps to work: (from DRC @virtualgl-users) |
Some fixes:
|
Generic Window API links:
Window Event Hooks:
Example code: |
r10002 uses Pillow's ImageGrab module to capture the screen on win32, which is already much faster. It is still quite slow: timeit clocks it at about 100ms for 1080p on a mid-range system, which is a lot better than GTK, but has room for improvement:
Some links: |
The code in r10002 only captured one screen, this is fixed in r10026, see #637#comment:11 for details. Will backport. r10028 should help speed things up a bit by re-using the same bitmap and context objects until the display settings change. We want to stay on the GPU if we can (#365), especially if we're going to use the GPU for encoding (ie: nvenc) - the difference is in the order of a factor 100! More info:
This will have to do for now. (nvenc needs fixing first anyway... see #389) |
r11482 added a basic systray for the shadow server which only shows: "about", "exit" and "close menu". |
2015-12-27 08:11:04: antoine uploaded file
|
Moving the named pipes to #1150. |
Keyboard issues in #1099. Stumbled upon this info python-win32: Global Window Messages: What you probably want is a WH_CBT hook so that you can catch WM_ACTIVATE and WM_DEACTIVATE. |
See my original question to python-win32 mailing list: https://mail.python.org/pipermail/python-win32/2009-September/009584.html This is going to take some effort and will require Windows 8 or later and probably building things with MSVC 2013 (not the "free" express version..) for the newer API: IDXGIOutputDuplication: The IDXGIOutputDuplication interface accesses and manipulates the duplicated desktop image. Printing may be possible using redmon: The RedMon port monitor redirects a special printer port to a program |
For sound see: wasapisink r12394 will use |
2016-06-17 10:16:22: antoine commented
|
A good solution for solving shadow performance issues is #1317 (requires an nvidia card...) |
If we go down the directx route, with mingw #678 these may be helpful / needed:
So, by injecting the DLL into every process, we could get individual windows as surfaces. If we are willing to require windows 8 or later, the solution is likely to be the Desktop Duplication API:
Some links on the logon stuff, which we need for running as a service:
For audio: |
Added basic NVIDIA Capture SDK support using basic "copy to system memory" API. Much more can be done with this API:
|
Some scripts that could be useful - and not just for shadow servers:
Could also be useful for detecting virtualbox:
Now for making a service: |
For capturing the screen with directx, a good example is found in the gstreamer source: winscreencap. See also multi-monitor handling as windows: #1805 |
NVFBC is now deprecated on windows-10: #1317#comment:11. DDA example: nvEncDXGIOutputDuplicationSample |
Links:
See also: |
Windows 10 Screen capture example code looks simple enough. |
The current shadow server for win32 sort of works but we need to improve:
The text was updated successfully, but these errors were encountered: