Add new cases for GLES3 SRC_ALPHA_SATURATE blend modes.

TRAC #23125

Signed-off-by: Geoff Lang
Signed-off-by: Nicolas Capens
Author: Jamie Madill

git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2351 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index 937e70f..cc15969 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -1106,6 +1106,8 @@
 
     try
     {
+        gl::Context *context = gl::getNonLostContext();
+
         switch (srcRGB)
         {
           case GL_ZERO:
@@ -1145,6 +1147,14 @@
           case GL_CONSTANT_ALPHA:
           case GL_ONE_MINUS_CONSTANT_ALPHA:
             break;
+
+          case GL_SRC_ALPHA_SATURATE:
+            if (!context || context->getClientVersion() < 3)
+            {
+                return gl::error(GL_INVALID_ENUM);
+            }
+            break;
+
           default:
             return gl::error(GL_INVALID_ENUM);
         }
@@ -1188,6 +1198,14 @@
           case GL_CONSTANT_ALPHA:
           case GL_ONE_MINUS_CONSTANT_ALPHA:
             break;
+
+          case GL_SRC_ALPHA_SATURATE:
+            if (!context || context->getClientVersion() < 3)
+            {
+                return gl::error(GL_INVALID_ENUM);
+            }
+            break;
+
           default:
             return gl::error(GL_INVALID_ENUM);
         }
@@ -1204,8 +1222,6 @@
             return gl::error(GL_INVALID_OPERATION);
         }
 
-        gl::Context *context = gl::getNonLostContext();
-
         if (context)
         {
             context->setBlendFactors(srcRGB, dstRGB, srcAlpha, dstAlpha);