Adds support for hints

TRAC #11343
Author:    Shannon Woods
Signed-off-by: Andrew Lewycky
Signed-off-by: Daniel Koch

git-svn-id: https://angleproject.googlecode.com/svn/trunk@56 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index 26e347e..fcb8633 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -1797,6 +1797,7 @@
               case GL_CURRENT_PROGRAM:                  *params = context->currentProgram;          break;
               case GL_PACK_ALIGNMENT:                   *params = context->packAlignment;           break;
               case GL_UNPACK_ALIGNMENT:                 *params = context->unpackAlignment;         break;
+              case GL_GENERATE_MIPMAP_HINT:             *params = context->generateMipmapHint;      break;
               case GL_RED_BITS:
               case GL_GREEN_BITS:
               case GL_BLUE_BITS:
@@ -2248,7 +2249,29 @@
 
     try
     {
-        UNIMPLEMENTED();   // FIXME
+        switch (target)
+        {
+          case GL_GENERATE_MIPMAP_HINT:
+            switch (mode)
+            {
+              case GL_FASTEST:
+              case GL_NICEST:
+              case GL_DONT_CARE:
+                break;
+              default:
+                return error(GL_INVALID_ENUM); 
+            }
+            break;
+          default:
+              return error(GL_INVALID_ENUM);
+        }
+
+        gl::Context *context = gl::getContext();
+        if (context)
+        {
+            if (target == GL_GENERATE_MIPMAP_HINT)
+                context->generateMipmapHint = mode;
+        }
     }
     catch(std::bad_alloc&)
     {