mirror of
https://github.com/gnif/LookingGlass.git
synced 2026-08-22 15:11:31 +00:00
[idd] postprocess: centralize color transform state
This commit is contained in:
@@ -208,8 +208,8 @@ PostProcessStatus CColorTransformEffect::SetFormat(
|
||||
const ComPtr<ID3D12Device3>& device,
|
||||
const D12FrameFormat& src, D12FrameFormat& dst)
|
||||
{
|
||||
if (!src.colorTransform || IsIdentityColorTransform(*src.colorTransform) ||
|
||||
(!src.colorTransform->matrixEnabled && !src.colorTransform->lutEnabled))
|
||||
const auto transform = D12::Transform(src.colorTransform);
|
||||
if (!transform)
|
||||
return PostProcessStatus::BYPASS_EFFECT;
|
||||
|
||||
DXGI_FORMAT dstFormat;
|
||||
@@ -247,16 +247,16 @@ PostProcessStatus CColorTransformEffect::SetFormat(
|
||||
return PostProcessStatus::FAILED;
|
||||
}
|
||||
|
||||
std::memcpy(m_consts.matrix, src.colorTransform->matrix,
|
||||
std::memcpy(m_consts.matrix, transform->matrix,
|
||||
sizeof(m_consts.matrix));
|
||||
m_consts.scalar = src.colorTransform->scalar;
|
||||
m_consts.matrixEnabled = src.colorTransform->matrixEnabled;
|
||||
m_consts.lutEnabled = src.colorTransform->lutEnabled;
|
||||
m_consts.inputTransfer = src.hdrPQ ? TRANSFER_PQ :
|
||||
m_consts.scalar = transform->scalar;
|
||||
m_consts.matrixEnabled = transform->matrixEnabled;
|
||||
m_consts.lutEnabled = transform->lutEnabled;
|
||||
m_consts.inputTransfer = src.hdrPQ ? TRANSFER_PQ :
|
||||
(src.hdr ? TRANSFER_LINEAR : TRANSFER_SRGB);
|
||||
m_consts.outputTransfer = src.hdr ? TRANSFER_PQ : TRANSFER_SRGB;
|
||||
|
||||
std::memcpy(m_lut, src.colorTransform->lut, sizeof(m_lut));
|
||||
std::memcpy(m_lut, transform->lut, sizeof(m_lut));
|
||||
m_uploadPending = true;
|
||||
|
||||
m_srcFormat = src.desc.Format;
|
||||
|
||||
@@ -83,12 +83,7 @@ struct CRGB24Effect::State
|
||||
format.desc.Format != DXGI_FORMAT_B8G8R8A8_UNORM)
|
||||
return false;
|
||||
|
||||
if (!format.colorTransform ||
|
||||
(!format.colorTransform->matrixEnabled &&
|
||||
!format.colorTransform->lutEnabled))
|
||||
return true;
|
||||
|
||||
return IsIdentityColorTransform(*format.colorTransform);
|
||||
return !D12::Transform(format.colorTransform);
|
||||
}
|
||||
|
||||
bool WantsPackedLocked() const
|
||||
|
||||
Reference in New Issue
Block a user