Added support for HALF_FLOAT vertex attributes.

TRAC #22703

Signed-off-by: Jamie Madill
Signed-off-by: Shannon Woods
Author: Geoff Lang

git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2091 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index d0ff00d..451d72c 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -6768,6 +6768,8 @@
             return gl::error(GL_INVALID_VALUE);
         }
 
+        gl::Context *context = gl::getNonLostContext();
+
         switch (type)
         {
           case GL_BYTE:
@@ -6777,6 +6779,17 @@
           case GL_FIXED:
           case GL_FLOAT:
             break;
+
+          case GL_HALF_FLOAT:
+            if (context && context->getClientVersion() < 3)
+            {
+                return gl::error(GL_INVALID_ENUM);
+            }
+            else
+            {
+                break;
+            }
+
           default:
             return gl::error(GL_INVALID_ENUM);
         }
@@ -6786,8 +6799,6 @@
             return gl::error(GL_INVALID_VALUE);
         }
 
-        gl::Context *context = gl::getNonLostContext();
-
         if (context)
         {
             context->setVertexAttribState(index, context->getArrayBuffer(), size, type, (normalized == GL_TRUE), stride, ptr);