Microsoft basically deprecated GetVersion/GetVersionEx so now they'll
always report invalid version numbers. The way to get the actual
version of windows after 8+ is to get the actual file version of
kernel32.dll according to microsoft's documentation.
NVENC at least does not like being shut down if there is still pending encoder output to be consumed. Normally output flushing is skipped when rendering preview for UI responsiveness.
The coordinates used to draw the global source indicator were absolute
and not relative as it was supposed to. (retrieved with LVIR_BOUNDS)
This caused drawing "artefacts" when horizontally scrolling the sources
list.
Following previous reverts, fixes a number of isses with ConfigFile, and
prevents the hotkey thread from potentially corrupting the config file.
The user will no longer be able to update these two settings in real
time, but at this point I'd rather spend time on the new version rather
than make fixes that require too much time.
This reverts commit fb3188a7cd94a4577238aae1692f91f847949090.
This was a change that was added to fix support for certain intel
devices, but ultimately I feel like it's just not needed and is trying
to fix something that isn't broken.
The ID for the services configs are mostly for backward compatibility
due to design flaws with the config files where the config files would
use indexes rather than using actual name values. They aren't actually
equal to the indexes of the list box.
NVenc doesn't currently seem to support CBR properly, so I'm temporarily
disabling the option to even use it until we can figure out a way around
the problem (just putting in the padding ourselves perhaps?)
This disables using shift as modifier and F2 as hotkey, because
the Uplay overlay relies on legacy behavior for GetAsyncKeyState:
"Although the least significant bit of the return value indicates
whether the key has been pressed since the last query, due to the
pre-emptive multitasking nature of Windows, another application can
call GetAsyncKeyState and receive the "recently pressed" bit instead
of your application. The behavior of the least significant bit of
the return value is retained strictly for compatibility with 16-bit
Windows applications (which are non-preemptive) and should not be
relied upon."