@@ -103,6 +103,7 @@ bool sendLogsThroughPipe = true;
103
103
bool alphaCursorSupport = true ;
104
104
int CursorMaxX = 128 ;
105
105
int CursorMaxY = 128 ;
106
+ IDDCX_XOR_CURSOR_SUPPORT XorCursorSupportLevel = IDDCX_XOR_CURSOR_SUPPORT_FULL;
106
107
107
108
108
109
// Rest
@@ -123,9 +124,26 @@ std::map<std::wstring, std::pair<std::wstring, std::wstring>> SettingsQueryMap =
123
124
{L" AlphaCursorSupport" , {L" ALPHACURSORSUPPORT" , L" AlphaCursorSupport" }},
124
125
{L" CursorMaxX" , {L" CURSORMAXX" , L" CursorMaxX" }},
125
126
{L" CursorMaxY" , {L" CURSORMAXY" , L" CursorMaxY" }},
127
+ {L" XorCursorSupportLevel" , {L" XORCURSORSUPPORTLEVEL" , L" XorCursorSupportLevel" }},
126
128
127
129
};
128
130
131
+ const char * XorCursorSupportLevelToString (IDDCX_XOR_CURSOR_SUPPORT level) {
132
+ switch (level) {
133
+ case IDDCX_XOR_CURSOR_SUPPORT_UNINITIALIZED:
134
+ return " IDDCX_XOR_CURSOR_SUPPORT_UNINITIALIZED" ;
135
+ case IDDCX_XOR_CURSOR_SUPPORT_NONE:
136
+ return " IDDCX_XOR_CURSOR_SUPPORT_NONE" ;
137
+ case IDDCX_XOR_CURSOR_SUPPORT_FULL:
138
+ return " IDDCX_XOR_CURSOR_SUPPORT_FULL" ;
139
+ case IDDCX_XOR_CURSOR_SUPPORT_EMULATION:
140
+ return " IDDCX_XOR_CURSOR_SUPPORT_EMULATION" ;
141
+ default :
142
+ return " Unknown" ;
143
+ }
144
+ }
145
+
146
+
129
147
vector<unsigned char > Microsoft::IndirectDisp::IndirectDeviceContext::s_KnownMonitorEdid; // Changed to support static vector
130
148
131
149
struct IndirectDeviceContextWrapper
@@ -1344,6 +1362,23 @@ extern "C" NTSTATUS DriverEntry(
1344
1362
CursorMaxX = GetIntegerSetting (L" CursorMaxX" );
1345
1363
CursorMaxY = GetIntegerSetting (L" CursorMaxY" );
1346
1364
1365
+ int xorCursorSupportLevelInt = GetIntegerSetting (L" XorCursorSupportLevel" );
1366
+ std::string xorCursorSupportLevelName;
1367
+
1368
+ if (xorCursorSupportLevelInt < 0 || xorCursorSupportLevelInt > 3 ) {
1369
+ vddlog (" w" , " Selected Xor Level unsupported, defaulting to IDDCX_XOR_CURSOR_SUPPORT_FULL" );
1370
+ XorCursorSupportLevel = IDDCX_XOR_CURSOR_SUPPORT_FULL;
1371
+ }
1372
+ else {
1373
+ XorCursorSupportLevel = static_cast <IDDCX_XOR_CURSOR_SUPPORT>(xorCursorSupportLevelInt);
1374
+ }
1375
+
1376
+ xorCursorSupportLevelName = XorCursorSupportLevelToString (XorCursorSupportLevel);
1377
+
1378
+ vddlog (" i" , (" Selected Xor Cursor Support Level: " + xorCursorSupportLevelName).c_str ());
1379
+
1380
+
1381
+
1347
1382
vddlog (" i" , " Driver Starting" );
1348
1383
string utf8_confpath = WStringToString (confpath);
1349
1384
string logtext = " VDD Path: " + utf8_confpath;
0 commit comments