@@ -189,26 +189,47 @@ static void detectDisplays(FFDisplayServerResult* ds)
189189
190190 if (display )
191191 {
192- DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO advColorInfo = {
192+ DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO_2 advColorInfo2 = {
193193 .header = {
194- .type = DISPLAYCONFIG_DEVICE_INFO_GET_ADVANCED_COLOR_INFO ,
195- .size = sizeof (advColorInfo ),
194+ .type = DISPLAYCONFIG_DEVICE_INFO_GET_ADVANCED_COLOR_INFO_2 ,
195+ .size = sizeof (advColorInfo2 ),
196196 .adapterId = path -> targetInfo .adapterId ,
197197 .id = path -> targetInfo .id ,
198198 }
199199 };
200- if (DisplayConfigGetDeviceInfo (& advColorInfo .header ) == ERROR_SUCCESS )
200+ if (DisplayConfigGetDeviceInfo (& advColorInfo2 .header ) == ERROR_SUCCESS )
201201 {
202- if (advColorInfo . advancedColorEnabled )
202+ if (advColorInfo2 . highDynamicRangeUserEnabled )
203203 display -> hdrStatus = FF_DISPLAY_HDR_STATUS_ENABLED ;
204- else if (advColorInfo . advancedColorSupported )
204+ else if (advColorInfo2 . highDynamicRangeSupported )
205205 display -> hdrStatus = FF_DISPLAY_HDR_STATUS_SUPPORTED ;
206206 else
207207 display -> hdrStatus = FF_DISPLAY_HDR_STATUS_UNSUPPORTED ;
208- display -> bitDepth = (uint8_t ) advColorInfo .bitsPerColorChannel ;
208+ display -> bitDepth = (uint8_t ) advColorInfo2 .bitsPerColorChannel ;
209209 }
210210 else
211- display -> hdrStatus = FF_DISPLAY_HDR_STATUS_UNKNOWN ;
211+ {
212+ DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO advColorInfo = {
213+ .header = {
214+ .type = DISPLAYCONFIG_DEVICE_INFO_GET_ADVANCED_COLOR_INFO ,
215+ .size = sizeof (advColorInfo ),
216+ .adapterId = path -> targetInfo .adapterId ,
217+ .id = path -> targetInfo .id ,
218+ }
219+ };
220+ if (DisplayConfigGetDeviceInfo (& advColorInfo .header ) == ERROR_SUCCESS )
221+ {
222+ if (advColorInfo .advancedColorEnabled )
223+ display -> hdrStatus = FF_DISPLAY_HDR_STATUS_ENABLED ;
224+ else if (advColorInfo .advancedColorSupported )
225+ display -> hdrStatus = FF_DISPLAY_HDR_STATUS_SUPPORTED ;
226+ else
227+ display -> hdrStatus = FF_DISPLAY_HDR_STATUS_UNSUPPORTED ;
228+ display -> bitDepth = (uint8_t ) advColorInfo .bitsPerColorChannel ;
229+ }
230+ else
231+ display -> hdrStatus = FF_DISPLAY_HDR_STATUS_UNKNOWN ;
232+ }
212233 if (edidLength > 0 )
213234 ffEdidGetSerialAndManufactureDate (edidData , & display -> serial , & display -> manufactureYear , & display -> manufactureWeek );
214235 }
0 commit comments