Add support for EXT_YUV_target

Add new sampler type "__samplerExternal2DY2YEXT"
to sample a YUV texture image and output color value
without any color conversion,
new additional type to specify color space standard formula and
built-in functions for yuv to rgb transformation.

Change-Id: I1780650fe84cd75191c1ca1e4118e89d585bfd92
Reviewed-on: https://chromium-review.googlesource.com/454697
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/compiler/translator/ConstantUnion.cpp b/src/compiler/translator/ConstantUnion.cpp
index 464c30c..b960e42 100644
--- a/src/compiler/translator/ConstantUnion.cpp
+++ b/src/compiler/translator/ConstantUnion.cpp
@@ -198,6 +198,11 @@
     return b == bConst;
 }
 
+bool TConstantUnion::operator==(const TYuvCscStandardEXT s) const
+{
+    return s == yuvCscStandardEXTConst;
+}
+
 bool TConstantUnion::operator==(const TConstantUnion &constant) const
 {
     if (constant.type != type)
@@ -213,6 +218,8 @@
             return constant.fConst == fConst;
         case EbtBool:
             return constant.bConst == bConst;
+        case EbtYuvCscStandardEXT:
+            return constant.yuvCscStandardEXTConst == yuvCscStandardEXTConst;
         default:
             return false;
     }
@@ -238,6 +245,11 @@
     return !operator==(b);
 }
 
+bool TConstantUnion::operator!=(const TYuvCscStandardEXT s) const
+{
+    return !operator==(s);
+}
+
 bool TConstantUnion::operator!=(const TConstantUnion &constant) const
 {
     return !operator==(constant);