diff --git a/Virtual Display Driver (HDR)/MttVDD/Driver.cpp b/Virtual Display Driver (HDR)/MttVDD/Driver.cpp index 68d9b75..40a9e3e 100644 --- a/Virtual Display Driver (HDR)/MttVDD/Driver.cpp +++ b/Virtual Display Driver (HDR)/MttVDD/Driver.cpp @@ -103,6 +103,7 @@ bool sendLogsThroughPipe = true; bool alphaCursorSupport = true; int CursorMaxX = 128; int CursorMaxY = 128; +IDDCX_XOR_CURSOR_SUPPORT XorCursorSupportLevel = IDDCX_XOR_CURSOR_SUPPORT_FULL; //Rest @@ -123,9 +124,26 @@ std::map> SettingsQueryMap = {L"AlphaCursorSupport", {L"ALPHACURSORSUPPORT", L"AlphaCursorSupport"}}, {L"CursorMaxX", {L"CURSORMAXX", L"CursorMaxX"}}, {L"CursorMaxY", {L"CURSORMAXY", L"CursorMaxY"}}, + {L"XorCursorSupportLevel", {L"XORCURSORSUPPORTLEVEL", L"XorCursorSupportLevel"}}, }; +const char* XorCursorSupportLevelToString(IDDCX_XOR_CURSOR_SUPPORT level) { + switch (level) { + case IDDCX_XOR_CURSOR_SUPPORT_UNINITIALIZED: + return "IDDCX_XOR_CURSOR_SUPPORT_UNINITIALIZED"; + case IDDCX_XOR_CURSOR_SUPPORT_NONE: + return "IDDCX_XOR_CURSOR_SUPPORT_NONE"; + case IDDCX_XOR_CURSOR_SUPPORT_FULL: + return "IDDCX_XOR_CURSOR_SUPPORT_FULL"; + case IDDCX_XOR_CURSOR_SUPPORT_EMULATION: + return "IDDCX_XOR_CURSOR_SUPPORT_EMULATION"; + default: + return "Unknown"; + } +} + + vector Microsoft::IndirectDisp::IndirectDeviceContext::s_KnownMonitorEdid; //Changed to support static vector struct IndirectDeviceContextWrapper @@ -1344,6 +1362,23 @@ extern "C" NTSTATUS DriverEntry( CursorMaxX = GetIntegerSetting(L"CursorMaxX"); CursorMaxY = GetIntegerSetting(L"CursorMaxY"); + int xorCursorSupportLevelInt = GetIntegerSetting(L"XorCursorSupportLevel"); + std::string xorCursorSupportLevelName; + + if (xorCursorSupportLevelInt < 0 || xorCursorSupportLevelInt > 3) { + vddlog("w", "Selected Xor Level unsupported, defaulting to IDDCX_XOR_CURSOR_SUPPORT_FULL"); + XorCursorSupportLevel = IDDCX_XOR_CURSOR_SUPPORT_FULL; + } + else { + XorCursorSupportLevel = static_cast(xorCursorSupportLevelInt); + } + + xorCursorSupportLevelName = XorCursorSupportLevelToString(XorCursorSupportLevel); + + vddlog("i", ("Selected Xor Cursor Support Level: " + xorCursorSupportLevelName).c_str()); + + + vddlog("i", "Driver Starting"); string utf8_confpath = WStringToString(confpath); string logtext = "VDD Path: " + utf8_confpath; diff --git a/Virtual Display Driver (HDR)/vdd_settings.xml b/Virtual Display Driver (HDR)/vdd_settings.xml index 9f91248..aff0287 100644 --- a/Virtual Display Driver (HDR)/vdd_settings.xml +++ b/Virtual Display Driver (HDR)/vdd_settings.xml @@ -64,5 +64,12 @@ 128 128 true + 2 + \ No newline at end of file