Commit graph

40 commits

Author SHA1 Message Date
Geoffrey McRae
f633c63d51 [host] added support for cursor pitch 2017-12-13 04:47:28 +11:00
Geoffrey McRae
4b4aca841c [host] don't spam the client with mouse updates when nothing has changed 2017-12-13 02:30:19 +11:00
Geoffrey McRae
818164da7f [host] updated to use new protocol design 2017-12-12 07:56:50 +11:00
Geoffrey McRae
b0f83d7106 [host] dxgi reinit timeout was too short 2017-12-12 05:05:21 +11:00
Geoffrey McRae
219179b375 [misc] added website url to sources 2017-12-12 04:30:47 +11:00
Geoffrey McRae
8c8d0ec7af [host] fixed DXGI cursor offset 2017-12-12 03:59:58 +11:00
Geoffrey McRae
ad6c2ab544 [host] Cropping is still required on NvFBC... :( 2017-12-12 03:59:58 +11:00
Geoffrey McRae
7f3657e5f0 [host] reversed the cropping logic, likely not needed anymore 2017-12-12 03:59:57 +11:00
Geoffrey McRae
a61293b551 [host] fixed support for high DPI desktops (4K+) 2017-12-12 03:59:57 +11:00
Geoffrey McRae
51bc7631ab [host] fixed incorrect checking of difference map 2017-12-12 03:59:57 +11:00
Geoffrey McRae
0b290d83d3 [host] Numerous performance improvements and minor bug fixes 2017-12-12 03:59:57 +11:00
Geoffrey McRae
ec13fc161d [host] rename project to "Looking Glass" 2017-12-12 03:59:57 +11:00
Geoffrey McRae
a54f3000f5 [host] reworked capture to capture at the hosts's frame rate
This will help frame delivery to the host arrive on time, as well as
allow lower latency with a higher host refresh rate.

Data offset addresses are now also pre-calculated rather then
updated on every frame.
2017-12-12 03:59:56 +11:00
Geoffrey McRae
d450d792e3 [host] Don't specify D3D11_CREATE_DEVICE_DEBUG in release builds 2017-12-12 03:59:56 +11:00
Geoffrey McRae
5ecf2d36c1 [host] Updated to use the new header format 2017-12-12 03:59:55 +11:00
Geoffrey McRae
12617479d4 [host] Prevent NvFBC from stalling
NvFBC will wait forever for a change if nothing has changed, instead use
a timeout so that if the guest has re-connected it doesn't stall waiting
for a guest update.
2017-12-12 03:59:55 +11:00
Geoffrey McRae
f91b837172 [host] fixed NvFBC bpp problem in nocrop mode 2017-12-12 03:59:55 +11:00
Geoffrey McRae
3a64f9b96c [host] Use ARGB instead of RGB for performance
This is counter intuative as it consumes more RAM, but performance is
improved on the client as video hardware doesn't work in RGB but BGRA.
2017-12-12 03:59:55 +11:00
Geoffrey McRae
ad9b78a7cc [host] altered to use common memcpySSE 2017-12-12 03:59:55 +11:00
Geoffrey McRae
9de71ed2da [host] memory performance improvements 2017-12-12 03:59:55 +11:00
Geoffrey McRae
534e9425f1 [host] Added SMID BGRAToRGB support and implemented it in DXGI 2017-12-12 03:59:55 +11:00
Geoffrey McRae
6eb40a1897 [host] added option parsing to application 2017-12-12 03:59:55 +11:00
Geoffrey McRae
71c6e5d317 [host] NvFBC now takes full screen capture and crops off letterboxing
For this to function correctly the display scaling in the nvidia control
panel must be set to "No scaling", failure to do so will cause incorrect
window cropping. This is due to the inability to capture a non-scaled
image using NvFBC.
2017-12-12 03:59:55 +11:00
Geoffrey McRae
fcf0976081 [host] removed MTMemcpy, overheads negate performance gains 2017-12-12 03:59:55 +11:00
Geoffrey McRae
c18e5a13aa [host] corrected error in DXGI retry logic 2017-11-04 11:15:06 +11:00
Geoffrey McRae
1975bc13bc [host] make DXGI detect the secure desktop and wait
While we can't interact with UAC and CTL+ALT+DEL stuff, we can alteast
wait around for it to return so we can re-init and continue to stream.
2017-11-04 06:11:24 +11:00
Geoffrey McRae
00c96a7dec [host] removed left behind change from debugging 2017-11-04 04:02:55 +11:00
Geoffrey McRae
9287ec97eb [host] made DXGI ReInitialization more robust on mode changes
DXGI doesn't like to restart too fast, com exceptions are logged and the
duplication device fails to create with an E_ACCESS_DENIED error. Adding
a 200ms sleep between teardown and re-init resolves this issue.
2017-11-04 04:00:00 +11:00
Geoffrey McRae
8fadf0a80c [host] Added cursor support to DXGI capture 2017-11-04 00:14:30 +11:00
Geoffrey McRae
f90c258c34 [host] initial rewrite of DXGI capture 2017-11-03 22:20:48 +11:00
Geoffrey McRae
ffd2fc1824 [host] Fixed the DXGIManager to capture the cursor properly.
Note: This class will be entirely re-written when I find some time,
it is very poorly implemented, full of assumptions and creates a new
texture for every single frame 🤦.
2017-11-03 00:18:37 +11:00
Geoffrey McRae
7d83af9410 [host] added DXGI Desktop Duplication support 2017-11-02 22:37:19 +11:00
Geoffrey McRae
44d7e9e77c [host] added initial framework for DXGI capture 2017-11-02 17:57:11 +11:00
Geoffrey McRae
fc192c0016 [host] removed namespace sillyness 2017-11-02 17:57:10 +11:00
Geoffrey McRae
23b0dc7c81 [host] Added GPLv2 license to host project 2017-11-01 03:53:06 +11:00
Geoffrey McRae
01b10b3ee1 [host] converted program to a windows hidden/background user app.
NvFBC will not start when running as a service, likely intentional
security of the API to prevent it from being abused.
2017-11-01 03:23:46 +11:00
Geoffrey McRae
9ac3cadc7d [host] added multithreaded memcopy implementation 2017-11-01 02:15:47 +11:00
Geoffrey McRae
de8403dcd6 [cosmetics] fixed unintentional de-indent of code 2017-11-01 02:03:26 +11:00
Geoffrey McRae
ffbd89fb77 [host] NvFBC is now functional 2017-11-01 01:46:47 +11:00
Geoffrey McRae
85f39b7070 [host] initial NvFBC implementation 2017-11-01 00:51:53 +11:00