Add stubs for primitive restart caps.

Allow dEQP to reset this particular state variable, while still
throwing an UNIMPLEMENTED error if we try to render with primitive
restart enabled.

BUG=angle:901

Change-Id: I1ab46ff4d8bff2775225b083f08d156b9422b9c5
Reviewed-on: https://chromium-review.googlesource.com/244840
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/State.cpp b/src/libANGLE/State.cpp
index ae79782..cbe81fa 100644
--- a/src/libANGLE/State.cpp
+++ b/src/libANGLE/State.cpp
@@ -141,6 +141,8 @@
 
     mReadFramebuffer = NULL;
     mDrawFramebuffer = NULL;
+
+    mPrimitiveRestart = false;
 }
 
 void State::reset()
@@ -531,6 +533,16 @@
     mBlend.dither = enabled;
 }
 
+bool State::isPrimitiveRestartEnabled() const
+{
+    return mPrimitiveRestart;
+}
+
+void State::setPrimitiveRestart(bool enabled)
+{
+    mPrimitiveRestart = enabled;
+}
+
 void State::setEnableFeature(GLenum feature, bool enabled)
 {
     switch (feature)
@@ -544,7 +556,7 @@
       case GL_DEPTH_TEST:                    setDepthTest(enabled);             break;
       case GL_BLEND:                         setBlend(enabled);                 break;
       case GL_DITHER:                        setDither(enabled);                break;
-      case GL_PRIMITIVE_RESTART_FIXED_INDEX: UNIMPLEMENTED();                   break;
+      case GL_PRIMITIVE_RESTART_FIXED_INDEX: setPrimitiveRestart(enabled);      break;
       case GL_RASTERIZER_DISCARD:            setRasterizerDiscard(enabled);     break;
       default:                               UNREACHABLE();
     }
@@ -563,7 +575,7 @@
       case GL_DEPTH_TEST:                    return isDepthTestEnabled();
       case GL_BLEND:                         return isBlendEnabled();
       case GL_DITHER:                        return isDitherEnabled();
-      case GL_PRIMITIVE_RESTART_FIXED_INDEX: UNIMPLEMENTED(); return false;
+      case GL_PRIMITIVE_RESTART_FIXED_INDEX: return isPrimitiveRestartEnabled();
       case GL_RASTERIZER_DISCARD:            return isRasterizerDiscardEnabled();
       default:                               UNREACHABLE(); return false;
     }