Merge "Create a GrGLDefaultInterface for Android."
diff --git a/Android.mk b/Android.mk
index 41d17af..6461d9b 100644
--- a/Android.mk
+++ b/Android.mk
@@ -277,7 +277,7 @@
   gpu/src/GrContext.cpp \
   gpu/src/GrCreatePathRenderer_none.cpp \
   gpu/src/GrDrawTarget.cpp \
-  gpu/src/GrGLDefaultInterface_none.cpp \
+  gpu/src/android/GrGLDefaultInterface_android.cpp \
   gpu/src/GrGLIndexBuffer.cpp	\
   gpu/src/GrGLInterface.cpp \
   gpu/src/GrGLProgram.cpp \
@@ -321,7 +321,8 @@
   $(LOCAL_PATH)/gpu/src \
   $(LOCAL_PATH)/include/core \
   $(LOCAL_PATH)/include/gpu \
-  $(LOCAL_PATH)/src/core
+  $(LOCAL_PATH)/src/core \
+  frameworks/base/opengl/include/GLES2
 
 LOCAL_LDLIBS += -lpthread
 
diff --git a/gpu/src/android/GrGLDefaultInterface_android.cpp b/gpu/src/android/GrGLDefaultInterface_android.cpp
new file mode 100644
index 0000000..0a1f7eb
--- /dev/null
+++ b/gpu/src/android/GrGLDefaultInterface_android.cpp
@@ -0,0 +1,138 @@
+// Modified from chromium/src/webkit/glue/gl_bindings_skia_cmd_buffer.cc
+
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "GrGLInterface.h"
+
+#ifndef GL_GLEXT_PROTOTYPES
+#define GL_GLEXT_PROTOTYPES
+#endif
+
+#include "gl2.h"
+#include "gl2ext.h"
+/*
+#include "gpu/GLES2/gl2.h"
+#include "gpu/GLES2/gl2ext.h"
+*/
+void GrGLSetDefaultGLInterface() {
+  static GrGLInterface cmd_buffer_interface = {
+    kES2_GrGLBinding,
+
+    glActiveTexture,
+    glAttachShader,
+    glBindAttribLocation,
+    glBindBuffer,
+    glBindTexture,
+    glBlendColor,
+    glBlendFunc,
+    glBufferData,
+    glBufferSubData,
+    glClear,
+    glClearColor,
+    glClearStencil,
+    NULL,  // glClientActiveTexture
+    NULL,  // glColor4ub
+    glColorMask,
+    NULL,  // glColorPointer
+    glCompileShader,
+    glCompressedTexImage2D,
+    glCreateProgram,
+    glCreateShader,
+    glCullFace,
+    glDeleteBuffers,
+    glDeleteProgram,
+    glDeleteShader,
+    glDeleteTextures,
+    glDepthMask,
+    glDisable,
+    NULL,  // glDisableClientState
+    glDisableVertexAttribArray,
+    glDrawArrays,
+    glDrawElements,
+    glEnable,
+    NULL,  // glEnableClientState
+    glEnableVertexAttribArray,
+    glFrontFace,
+    glGenBuffers,
+    glGenTextures,
+    glGetBufferParameteriv,
+    glGetError,
+    glGetIntegerv,
+    glGetProgramInfoLog,
+    glGetProgramiv,
+    glGetShaderInfoLog,
+    glGetShaderiv,
+    glGetString,
+    glGetUniformLocation,
+    glLineWidth,
+    glLinkProgram,
+    NULL,  // glLoadMatrixf
+    NULL,  // glMatrixMode
+    glPixelStorei,
+    NULL,  // glPointSize
+    glReadPixels,
+    glScissor,
+    NULL,  // glShadeModel
+    glShaderSource,
+    glStencilFunc,
+    glStencilFuncSeparate,
+    glStencilMask,
+    glStencilMaskSeparate,
+    glStencilOp,
+    glStencilOpSeparate,
+    NULL,  // glTexCoordPointer
+    NULL,  // glTexEnvi
+    glTexImage2D,
+    glTexParameteri,
+    glTexSubImage2D,
+    glUniform1f,
+    glUniform1i,
+    glUniform1fv,
+    glUniform1iv,
+    glUniform2f,
+    glUniform2i,
+    glUniform2fv,
+    glUniform2iv,
+    glUniform3f,
+    glUniform3i,
+    glUniform3fv,
+    glUniform3iv,
+    glUniform4f,
+    glUniform4i,
+    glUniform4fv,
+    glUniform4iv,
+    glUniformMatrix2fv,
+    glUniformMatrix3fv,
+    glUniformMatrix4fv,
+    glUseProgram,
+    glVertexAttrib4fv,
+    glVertexAttribPointer,
+    NULL,  // glVertexPointer
+    glViewport,
+    glBindFramebuffer,
+    glBindRenderbuffer,
+    glCheckFramebufferStatus,
+    glDeleteFramebuffers,
+    glDeleteRenderbuffers,
+    glFramebufferRenderbuffer,
+    glFramebufferTexture2D,
+    glGenFramebuffers,
+    glGenRenderbuffers,
+    glRenderbufferStorage,
+    NULL,  // glRenderbufferStorageMultisampleEXT,
+    NULL,  // glBlitFramebufferEXT,
+    NULL,  // glResolveMultisampleFramebuffer
+    glMapBufferOES,
+    glUnmapBufferOES,
+
+    GrGLInterface::kStaticInitEndGuard
+  };
+  static bool host_StubGL_initialized = false;
+  if (!host_StubGL_initialized) {
+    GrGLSetGLInterface(&cmd_buffer_interface);
+    host_StubGL_initialized = true;
+  }
+}
+