public static void initGl() { // Initialize shaders and create/link program int vertexShaderHandle = GLUtil.loadShader(GLES20.GL_VERTEX_SHADER, VERTEX_SHADER_CODE); int fragShaderHandle = GLUtil.loadShader(GLES20.GL_FRAGMENT_SHADER, FRAGMENT_SHADER_CODE); sProgramHandle = GLUtil.createAndLinkProgram(vertexShaderHandle, fragShaderHandle, null); sAttribPositionHandle = GLES20.glGetAttribLocation(sProgramHandle, "aPosition"); sAttribTextureCoordsHandle = GLES20.glGetAttribLocation(sProgramHandle, "aTexCoords"); sUniformMVPMatrixHandle = GLES20.glGetUniformLocation(sProgramHandle, "uMVPMatrix"); sUniformTextureHandle = GLES20.glGetUniformLocation(sProgramHandle, "uTexture"); sUniformAlphaHandle = GLES20.glGetUniformLocation(sProgramHandle, "uAlpha"); // Compute max texture size int[] maxTextureSize = new int[1]; GLES20.glGetIntegerv(GLES20.GL_MAX_TEXTURE_SIZE, maxTextureSize, 0); sMaxTextureSize = maxTextureSize[0]; }