Default viewer display transform to config display/view instead of input colorspace

When no explicit color transform was set, ManagedDisplayWidget fell back to
the project's default input colorspace. For scene-referred reference spaces
like ACEScg / Linear this produced a raw, greenish image on the viewer
instead of a monitor-ready picture. Default to the OCIO config's default
display and view so the viewer looks correct out of the box, while still
honoring any Color Space / Display / View choice the user makes from the
context menu.
This commit is contained in:
2026-07-13 10:19:30 +08:00
parent 69cbe37f4f
commit b3c124fe7a
+14 -2
View File
@@ -188,8 +188,20 @@ void ManagedDisplayWidget::ColorConfigChanged()
return;
}
SetColorTransform(
color_manager_->GetCompliantColorSpace(color_transform_, false));
// When no explicit transform has been chosen, default to the config's
// display/view transform so the viewer shows a sensible image. Otherwise
// an empty transform falls back to the project's default input colorspace,
// which is usually a scene-referred space (e.g. ACEScg / Linear) and makes
// the picture look raw/wrong on a monitor.
if (color_transform_.output().isEmpty()) {
QString display = color_manager_->GetDefaultDisplay();
QString view = color_manager_->GetDefaultView(display);
SetColorTransform(color_manager_->GetCompliantColorSpace(
ColorTransform(display, view, QString()), true));
} else {
SetColorTransform(
color_manager_->GetCompliantColorSpace(color_transform_, false));
}
}
ColorProcessorPtr ManagedDisplayWidget::color_service()