1e32b5837c3f35b80502759f3de3e8cadf6625f4edjsollen@google.com 2a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon/* 3a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon * Copyright 2014 Google Inc. 4a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon * 5a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon * Use of this source code is governed by a BSD-style license that can be 6a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon * found in the LICENSE file. 7a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon */ 86c8c34e65ff8248ec7374e0d662d7f5684d800fatomhudson@google.com#include "gl/GrGLInterface.h" 99add5dc33f10ea6c48268dab448b1df0fc96daaacommit-bot@chromium.org#include "gl/GrGLAssembleInterface.h" 107a434a28685fd045cf848b99b563dfcf978363bccommit-bot@chromium.org#include "gl/GrGLUtil.h" 11e32b5837c3f35b80502759f3de3e8cadf6625f4edjsollen@google.com 12056f51b431ee4e99f62f31489cfd86142623bc0aborenet@google.com#include <EGL/egl.h> 13a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon#include <GLES2/gl2.h> 14f5897f83e65f18a85f71f2d3357df13c5443e89fcommit-bot@chromium.org 159add5dc33f10ea6c48268dab448b1df0fc96daaacommit-bot@chromium.orgstatic GrGLFuncPtr android_get_gl_proc(void* ctx, const char name[]) { 169add5dc33f10ea6c48268dab448b1df0fc96daaacommit-bot@chromium.org SkASSERT(NULL == ctx); 17a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon // Some older drivers on Android have busted eglGetProcAdddress Functions that 18a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon // will return the wrong pointer for built in GLES2 functions. This set of functions 19a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon // was generated on a Xoom by finding mismatches between the function pulled in via gl2.h and 20a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon // the address returned by eglGetProcAddress. 21a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon if (0 == strcmp("glActiveTexture", name)) { 22a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glActiveTexture; 23a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glAttachShader", name)) { 24a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glAttachShader; 25a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glBindAttribLocation", name)) { 26a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glBindAttribLocation; 27a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glBindBuffer", name)) { 28a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glBindBuffer; 29a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glBindTexture", name)) { 30a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glBindTexture; 31a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glBlendColor", name)) { 32a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glBlendColor; 33a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glBlendFunc", name)) { 34a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glBlendFunc; 35a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glBufferData", name)) { 36a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glBufferData; 37a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glBufferSubData", name)) { 38a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glBufferSubData; 39a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glClear", name)) { 40a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glClear; 41a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glClearColor", name)) { 42a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glClearColor; 43a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glClearStencil", name)) { 44a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glClearStencil; 45a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glColorMask", name)) { 46a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glColorMask; 47a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glCompileShader", name)) { 48a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glCompileShader; 49a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glCompressedTexImage2D", name)) { 50a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glCompressedTexImage2D; 51a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glCompressedTexSubImage2D", name)) { 52a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glCompressedTexSubImage2D; 53a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glCopyTexSubImage2D", name)) { 54a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glCopyTexSubImage2D; 55a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glCreateProgram", name)) { 56a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glCreateProgram; 57a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glCreateShader", name)) { 58a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glCreateShader; 59a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glCullFace", name)) { 60a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glCullFace; 61a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDeleteBuffers", name)) { 62a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDeleteBuffers; 63a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDeleteProgram", name)) { 64a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDeleteProgram; 65a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDeleteShader", name)) { 66a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDeleteShader; 67a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDeleteTextures", name)) { 68a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDeleteTextures; 69a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDepthMask", name)) { 70a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDepthMask; 71a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDisable", name)) { 72a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDisable; 73a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDisableVertexAttribArray", name)) { 74a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDisableVertexAttribArray; 75a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDrawArrays", name)) { 76a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDrawArrays; 77a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDrawElements", name)) { 78a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDrawElements; 79a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glEnable", name)) { 80a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glEnable; 81a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glEnableVertexAttribArray", name)) { 82a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glEnableVertexAttribArray; 83a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glFinish", name)) { 84a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glFinish; 85a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glFlush", name)) { 86a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glFlush; 87a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glFrontFace", name)) { 88a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glFrontFace; 89a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGenBuffers", name)) { 90a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGenBuffers; 91a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGenerateMipmap", name)) { 92a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGenerateMipmap; 93a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGenTextures", name)) { 94a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGenTextures; 95a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetBufferParameteriv", name)) { 96a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetBufferParameteriv; 97a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetError", name)) { 98a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetError; 99a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetIntegerv", name)) { 100a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetIntegerv; 101a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetProgramInfoLog", name)) { 102a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetProgramInfoLog; 103a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetProgramiv", name)) { 104a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetProgramiv; 105a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetShaderInfoLog", name)) { 106a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetShaderInfoLog; 107a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetShaderiv", name)) { 108a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetShaderiv; 109a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetString", name)) { 110a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetString; 111a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetUniformLocation", name)) { 112a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetUniformLocation; 113a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glLineWidth", name)) { 114a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glLineWidth; 115a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glLinkProgram", name)) { 116a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glLinkProgram; 117a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glPixelStorei", name)) { 118a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glPixelStorei; 119a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glReadPixels", name)) { 120a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glReadPixels; 121a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glScissor", name)) { 122a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glScissor; 123a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glShaderSource", name)) { 124a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glShaderSource; 125a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glStencilFunc", name)) { 126a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glStencilFunc; 127a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glStencilFuncSeparate", name)) { 128a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glStencilFuncSeparate; 129a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glStencilMask", name)) { 130a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glStencilMask; 131a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glStencilMaskSeparate", name)) { 132a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glStencilMaskSeparate; 133a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glStencilOp", name)) { 134a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glStencilOp; 135a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glStencilOpSeparate", name)) { 136a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glStencilOpSeparate; 137a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glTexImage2D", name)) { 138a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glTexImage2D; 139a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glTexParameteri", name)) { 140a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glTexParameteri; 141a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glTexParameteriv", name)) { 142a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glTexParameteriv; 143a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glTexSubImage2D", name)) { 144a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glTexSubImage2D; 145a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform1f", name)) { 146a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform1f; 147a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform1i", name)) { 148a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform1i; 149a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform1fv", name)) { 150a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform1fv; 151a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform1iv", name)) { 152a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform1iv; 153a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform2f", name)) { 154a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform2f; 155a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform2i", name)) { 156a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform2i; 157a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform2fv", name)) { 158a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform2fv; 159a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform2iv", name)) { 160a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform2iv; 161a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform3f", name)) { 162a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform3f; 163a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform3i", name)) { 164a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform3i; 165a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform3fv", name)) { 166a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform3fv; 167a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform3iv", name)) { 168a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform3iv; 169a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform4f", name)) { 170a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform4f; 171a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform4i", name)) { 172a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform4i; 173a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform4fv", name)) { 174a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform4fv; 175a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform4iv", name)) { 176a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform4iv; 177a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniformMatrix2fv", name)) { 178a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniformMatrix2fv; 179a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniformMatrix3fv", name)) { 180a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniformMatrix3fv; 181a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniformMatrix4fv", name)) { 182a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniformMatrix4fv; 183a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUseProgram", name)) { 184a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUseProgram; 185a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glVertexAttrib4fv", name)) { 186a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glVertexAttrib4fv; 187a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glVertexAttribPointer", name)) { 188a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glVertexAttribPointer; 189a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glViewport", name)) { 190a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glViewport; 191a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glBindFramebuffer", name)) { 192a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glBindFramebuffer; 193a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glBindRenderbuffer", name)) { 194a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glBindRenderbuffer; 195a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glCheckFramebufferStatus", name)) { 196a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glCheckFramebufferStatus; 197a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDeleteFramebuffers", name)) { 198a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDeleteFramebuffers; 199a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDeleteRenderbuffers", name)) { 200a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDeleteRenderbuffers; 201a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glFramebufferRenderbuffer", name)) { 202a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glFramebufferRenderbuffer; 203a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glFramebufferTexture2D", name)) { 204a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glFramebufferTexture2D; 205a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGenFramebuffers", name)) { 206a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGenFramebuffers; 207a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGenRenderbuffers", name)) { 208a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGenRenderbuffers; 209a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetFramebufferAttachmentParameteriv", name)) { 210a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetFramebufferAttachmentParameteriv; 211a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetRenderbufferParameteriv", name)) { 212a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetRenderbufferParameteriv; 213a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glRenderbufferStorage", name)) { 214a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glRenderbufferStorage; 215a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glActiveTexture", name)) { 216a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glActiveTexture; 217a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glAttachShader", name)) { 218a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glAttachShader; 219a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glBindAttribLocation", name)) { 220a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glBindAttribLocation; 221a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glBindBuffer", name)) { 222a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glBindBuffer; 223a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glBindTexture", name)) { 224a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glBindTexture; 225a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glBlendColor", name)) { 226a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glBlendColor; 227a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glBlendFunc", name)) { 228a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glBlendFunc; 229a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glBufferData", name)) { 230a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glBufferData; 231a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glBufferSubData", name)) { 232a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glBufferSubData; 233a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glClear", name)) { 234a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glClear; 235a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glClearColor", name)) { 236a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glClearColor; 237a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glClearStencil", name)) { 238a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glClearStencil; 239a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glColorMask", name)) { 240a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glColorMask; 241a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glCompileShader", name)) { 242a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glCompileShader; 243a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glCompressedTexImage2D", name)) { 244a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glCompressedTexImage2D; 245a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glCompressedTexSubImage2D", name)) { 246a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glCompressedTexSubImage2D; 247a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glCopyTexSubImage2D", name)) { 248a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glCopyTexSubImage2D; 249a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glCreateProgram", name)) { 250a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glCreateProgram; 251a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glCreateShader", name)) { 252a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glCreateShader; 253a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glCullFace", name)) { 254a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glCullFace; 255a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDeleteBuffers", name)) { 256a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDeleteBuffers; 257a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDeleteProgram", name)) { 258a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDeleteProgram; 259a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDeleteShader", name)) { 260a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDeleteShader; 261a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDeleteTextures", name)) { 262a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDeleteTextures; 263a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDepthMask", name)) { 264a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDepthMask; 265a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDisable", name)) { 266a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDisable; 267a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDisableVertexAttribArray", name)) { 268a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDisableVertexAttribArray; 269a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDrawArrays", name)) { 270a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDrawArrays; 271a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDrawElements", name)) { 272a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDrawElements; 273a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glEnable", name)) { 274a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glEnable; 275a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glEnableVertexAttribArray", name)) { 276a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glEnableVertexAttribArray; 277a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glFinish", name)) { 278a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glFinish; 279a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glFlush", name)) { 280a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glFlush; 281a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glFrontFace", name)) { 282a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glFrontFace; 283a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGenBuffers", name)) { 284a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGenBuffers; 285a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGenerateMipmap", name)) { 286a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGenerateMipmap; 287a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGenTextures", name)) { 288a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGenTextures; 289a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetBufferParameteriv", name)) { 290a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetBufferParameteriv; 291a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetError", name)) { 292a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetError; 293a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetIntegerv", name)) { 294a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetIntegerv; 295a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetProgramInfoLog", name)) { 296a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetProgramInfoLog; 297a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetProgramiv", name)) { 298a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetProgramiv; 299a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetShaderInfoLog", name)) { 300a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetShaderInfoLog; 301a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetShaderiv", name)) { 302a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetShaderiv; 303a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetString", name)) { 304a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetString; 305a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetUniformLocation", name)) { 306a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetUniformLocation; 307a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glLineWidth", name)) { 308a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glLineWidth; 309a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glLinkProgram", name)) { 310a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glLinkProgram; 311a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glPixelStorei", name)) { 312a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glPixelStorei; 313a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glReadPixels", name)) { 314a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glReadPixels; 315a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glScissor", name)) { 316a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glScissor; 317a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glShaderSource", name)) { 318a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glShaderSource; 319a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glStencilFunc", name)) { 320a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glStencilFunc; 321a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glStencilFuncSeparate", name)) { 322a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glStencilFuncSeparate; 323a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glStencilMask", name)) { 324a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glStencilMask; 325a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glStencilMaskSeparate", name)) { 326a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glStencilMaskSeparate; 327a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glStencilOp", name)) { 328a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glStencilOp; 329a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glStencilOpSeparate", name)) { 330a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glStencilOpSeparate; 331a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glTexImage2D", name)) { 332a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glTexImage2D; 333a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glTexParameteri", name)) { 334a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glTexParameteri; 335a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glTexParameteriv", name)) { 336a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glTexParameteriv; 337a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glTexSubImage2D", name)) { 338a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glTexSubImage2D; 339a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform1f", name)) { 340a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform1f; 341a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform1i", name)) { 342a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform1i; 343a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform1fv", name)) { 344a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform1fv; 345a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform1iv", name)) { 346a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform1iv; 347a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform2f", name)) { 348a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform2f; 349a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform2i", name)) { 350a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform2i; 351a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform2fv", name)) { 352a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform2fv; 353a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform2iv", name)) { 354a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform2iv; 355a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform3f", name)) { 356a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform3f; 357a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform3i", name)) { 358a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform3i; 359a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform3fv", name)) { 360a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform3fv; 361a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform3iv", name)) { 362a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform3iv; 363a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform4f", name)) { 364a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform4f; 365a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform4i", name)) { 366a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform4i; 367a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform4fv", name)) { 368a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform4fv; 369a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniform4iv", name)) { 370a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniform4iv; 371a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniformMatrix2fv", name)) { 372a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniformMatrix2fv; 373a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniformMatrix3fv", name)) { 374a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniformMatrix3fv; 375a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUniformMatrix4fv", name)) { 376a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUniformMatrix4fv; 377a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glUseProgram", name)) { 378a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glUseProgram; 379a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glVertexAttrib4fv", name)) { 380a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glVertexAttrib4fv; 381a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glVertexAttribPointer", name)) { 382a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glVertexAttribPointer; 383a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glViewport", name)) { 384a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glViewport; 385a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glBindFramebuffer", name)) { 386a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glBindFramebuffer; 387a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glBindRenderbuffer", name)) { 388a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glBindRenderbuffer; 389a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glCheckFramebufferStatus", name)) { 390a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glCheckFramebufferStatus; 391a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDeleteFramebuffers", name)) { 392a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDeleteFramebuffers; 393a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glDeleteRenderbuffers", name)) { 394a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glDeleteRenderbuffers; 395a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glFramebufferRenderbuffer", name)) { 396a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glFramebufferRenderbuffer; 397a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glFramebufferTexture2D", name)) { 398a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glFramebufferTexture2D; 399a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGenFramebuffers", name)) { 400a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGenFramebuffers; 401a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGenRenderbuffers", name)) { 402a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGenRenderbuffers; 403a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetFramebufferAttachmentParameteriv", name)) { 404a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetFramebufferAttachmentParameteriv; 405a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glGetRenderbufferParameteriv", name)) { 406a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glGetRenderbufferParameteriv; 407a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } else if (0 == strcmp("glRenderbufferStorage", name)) { 408a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return (GrGLFuncPtr) glRenderbufferStorage; 409a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon } 4109add5dc33f10ea6c48268dab448b1df0fc96daaacommit-bot@chromium.org return eglGetProcAddress(name); 4119add5dc33f10ea6c48268dab448b1df0fc96daaacommit-bot@chromium.org} 412a34bb60c4e319f2289106d519544fe09d43eabd5bsalomon@google.com 413f5897f83e65f18a85f71f2d3357df13c5443e89fcommit-bot@chromium.orgconst GrGLInterface* GrGLCreateNativeInterface() { 414a721c8167222a0b2b442a00052104b2a78ab93e5bsalomon return GrGLAssembleInterface(NULL, android_get_gl_proc); 415e32b5837c3f35b80502759f3de3e8cadf6625f4edjsollen@google.com} 416