From 9047c26694154a633ed9191dea4eea4b654f6967 Mon Sep 17 00:00:00 2001 From: Geoffrey McRae Date: Thu, 16 Jul 2026 03:43:45 +1000 Subject: [PATCH] [idd] hdr: fix incorrect struct usage --- idd/LGIdd/CIndirectDeviceContext.cpp | 28 +++++++++++++--------------- idd/LGIdd/CIndirectDeviceContext.h | 2 +- idd/LGIdd/Device.cpp | 2 +- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/idd/LGIdd/CIndirectDeviceContext.cpp b/idd/LGIdd/CIndirectDeviceContext.cpp index f3f0df5b..9721e61e 100644 --- a/idd/LGIdd/CIndirectDeviceContext.cpp +++ b/idd/LGIdd/CIndirectDeviceContext.cpp @@ -1019,7 +1019,7 @@ void CIndirectDeviceContext::SendCursor(const IDARG_OUT_QUERY_HWCURSOR& info, co } #ifdef HAS_IDDCX_110 -void CIndirectDeviceContext::SetHDRActive(const struct IDDCX_HDR_METADATA * hdrMeta) +void CIndirectDeviceContext::SetHDRActive(const struct IDDCX_HDR10_METADATA * hdrMeta) { AcquireSRWLockExclusive(&m_hdrLock); @@ -1030,23 +1030,21 @@ void CIndirectDeviceContext::SetHDRActive(const struct IDDCX_HDR_METADATA * hdrM return; } - auto& hdr10 = hdrMeta->Hdr10; - m_hdrActive = true; - m_hdrDisplayPrimary[0][0] = hdr10.RedPrimary [0]; - m_hdrDisplayPrimary[0][1] = hdr10.RedPrimary [1]; - m_hdrDisplayPrimary[1][0] = hdr10.GreenPrimary[0]; - m_hdrDisplayPrimary[1][1] = hdr10.GreenPrimary[1]; - m_hdrDisplayPrimary[2][0] = hdr10.BluePrimary [0]; - m_hdrDisplayPrimary[2][1] = hdr10.BluePrimary [1]; - m_hdrWhitePoint [0] = hdr10.WhitePoint [0]; - m_hdrWhitePoint [1] = hdr10.WhitePoint [1]; + m_hdrDisplayPrimary[0][0] = hdrMeta->RedPrimary [0]; + m_hdrDisplayPrimary[0][1] = hdrMeta->RedPrimary [1]; + m_hdrDisplayPrimary[1][0] = hdrMeta->GreenPrimary[0]; + m_hdrDisplayPrimary[1][1] = hdrMeta->GreenPrimary[1]; + m_hdrDisplayPrimary[2][0] = hdrMeta->BluePrimary [0]; + m_hdrDisplayPrimary[2][1] = hdrMeta->BluePrimary [1]; + m_hdrWhitePoint [0] = hdrMeta->WhitePoint [0]; + m_hdrWhitePoint [1] = hdrMeta->WhitePoint [1]; - m_hdrMaxDisplayLuminance = hdr10.MaxMasteringLuminance; - m_hdrMinDisplayLuminance = hdr10.MinMasteringLuminance; - m_hdrMaxContentLightLevel = hdr10.MaxContentLightLevel; - m_hdrMaxFrameAverageLightLevel = hdr10.MaxFrameAverageLightLevel; + m_hdrMaxDisplayLuminance = hdrMeta->MaxMasteringLuminance; + m_hdrMinDisplayLuminance = hdrMeta->MinMasteringLuminance; + m_hdrMaxContentLightLevel = hdrMeta->MaxContentLightLevel; + m_hdrMaxFrameAverageLightLevel = hdrMeta->MaxFrameAverageLightLevel; ReleaseSRWLockExclusive(&m_hdrLock); } diff --git a/idd/LGIdd/CIndirectDeviceContext.h b/idd/LGIdd/CIndirectDeviceContext.h index fe4a565d..c45e621d 100644 --- a/idd/LGIdd/CIndirectDeviceContext.h +++ b/idd/LGIdd/CIndirectDeviceContext.h @@ -186,7 +186,7 @@ public: void SendCursor(const IDARG_OUT_QUERY_HWCURSOR & info, const BYTE * data); // Tracks HDR state from EvtIddCxMonitorSetDefaultHdrMetadata - void SetHDRActive(const struct IDDCX_HDR_METADATA * hdrMeta); + void SetHDRActive(const struct IDDCX_HDR10_METADATA * hdrMeta); // Returns true if the display is currently in HDR mode bool IsHDRActive() const diff --git a/idd/LGIdd/Device.cpp b/idd/LGIdd/Device.cpp index 4247cf05..5852958f 100644 --- a/idd/LGIdd/Device.cpp +++ b/idd/LGIdd/Device.cpp @@ -166,7 +166,7 @@ NTSTATUS LGIddMonitorSetDefaultHdrMetadata(IDDCX_MONITOR monitor, auto* wrapper = WdfObjectGet_CIndirectMonitorContextWrapper(monitor); auto* ctx = wrapper->context->GetDeviceContext(); - ctx->SetHDRActive(inArgs->pHdrMetaData); + ctx->SetHDRActive(inArgs->Data.pHdr10); return STATUS_SUCCESS; }