Merge "[RenderEngine] Convert BT2020 to SRGB by default." into pi-dev
diff --git a/services/surfaceflinger/RenderEngine/GLES20RenderEngine.cpp b/services/surfaceflinger/RenderEngine/GLES20RenderEngine.cpp
index aca6c7b..90404fa 100644
--- a/services/surfaceflinger/RenderEngine/GLES20RenderEngine.cpp
+++ b/services/surfaceflinger/RenderEngine/GLES20RenderEngine.cpp
@@ -147,6 +147,7 @@
mSrgbToXyz = srgb.getRGBtoXYZ();
mDisplayP3ToXyz = displayP3.getRGBtoXYZ();
mBt2020ToXyz = bt2020.getRGBtoXYZ();
+ mXyzToSrgb = mat4(srgb.getXYZtoRGB());
mXyzToDisplayP3 = mat4(displayP3.getXYZtoRGB());
mXyzToBt2020 = mat4(bt2020.getXYZtoRGB());
}
@@ -347,14 +348,17 @@
break;
}
- // The supported output color spaces are Display P3 and BT2020.
+ // The supported output color spaces are BT2020, Display P3 and standard RGB.
switch (outputStandard) {
case Dataspace::STANDARD_BT2020:
wideColorState.setOutputTransformMatrix(mXyzToBt2020);
break;
- default:
+ case Dataspace::STANDARD_DCI_P3:
wideColorState.setOutputTransformMatrix(mXyzToDisplayP3);
break;
+ default:
+ wideColorState.setOutputTransformMatrix(mXyzToSrgb);
+ break;
}
} else if (inputStandard != outputStandard) {
// At this point, the input data space and output data space could be both
diff --git a/services/surfaceflinger/RenderEngine/GLES20RenderEngine.h b/services/surfaceflinger/RenderEngine/GLES20RenderEngine.h
index 84a4813..de5761b 100644
--- a/services/surfaceflinger/RenderEngine/GLES20RenderEngine.h
+++ b/services/surfaceflinger/RenderEngine/GLES20RenderEngine.h
@@ -103,6 +103,7 @@
mat3 mSrgbToXyz;
mat3 mBt2020ToXyz;
mat3 mDisplayP3ToXyz;
+ mat4 mXyzToSrgb;
mat4 mXyzToDisplayP3;
mat4 mXyzToBt2020;