MCPcopy Create free account
hub / github.com/Aleksoid1978/VideoRenderer / SetDolbyVisionDynamicParams

Method SetDolbyVisionDynamicParams

Source/DX11VideoProcessor.cpp:954–988  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

952}
953
954void CDX11VideoProcessor::SetDolbyVisionDynamicParams()
955{
956 const DoViDynamicConstantsBuffer_t cbuffer = {
957 m_DoviExtensionMetadata.L2.trim_chroma_weight - 0.5f, m_DoviExtensionMetadata.L2.trim_saturation_gain - 0.5f,
958 m_DoviExtensionMetadata.L2.trim_slope + 0.5f, m_DoviExtensionMetadata.L2.trim_offset - 0.5f, m_DoviExtensionMetadata.L2.trim_power + 0.5f,
959 static_cast<UINT>(m_DoviExtensionMetadata.L2.present)
960 };
961
962 if (m_pDoViDynamicConstants) {
963 if (memcmp(&m_lastDoViDynamicConstantsBuffer, &cbuffer, sizeof(cbuffer)) == 0) {
964 return;
965 }
966
967 m_pDeviceContext->UpdateSubresource(m_pDoViDynamicConstants, 0, nullptr, &cbuffer, 0, 0);
968 } else {
969 D3D11_BUFFER_DESC BufferDesc = {
970 .ByteWidth = sizeof(cbuffer),
971 .Usage = D3D11_USAGE_DEFAULT,
972 .BindFlags = D3D11_BIND_CONSTANT_BUFFER,
973 };
974 D3D11_SUBRESOURCE_DATA InitData = { &cbuffer, 0, 0 };
975 HRESULT result = m_pDevice->CreateBuffer(&BufferDesc, &InitData, &m_pDoViDynamicConstants);
976 if (FAILED(result))
977 {
978 DLog(L"SetDolbyVisionDynamicParams() failed to create m_pDoViDynamicConstants. Error: {}", result);
979 }
980 EXECUTE_ASSERT(S_OK == result);
981 }
982
983 m_lastDoViDynamicConstantsBuffer = cbuffer;
984
985#ifndef NDEBUG
986 UpdateStatsStatic();
987#endif
988}
989
990HRESULT CDX11VideoProcessor::SetShaderDoviCurvesPoly()
991{

Callers

nothing calls this directly

Calls 1

DLogFunction · 0.85

Tested by

no test coverage detected