1041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck/* 2041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck * Copyright(C) 2015 The Android Open Source Project 3041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck * 4041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck * Licensed under the Apache License, Version 2.0(the "License"); 5041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck * you may not use this file except in compliance with the License. 6041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck * You may obtain a copy of the License at 7041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck * 8041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck * http://www.apache.org/licenses/LICENSE-2.0 9041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck * 10041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck * Unless required by applicable law or agreed to in writing, software 11041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck * distributed under the License is distributed on an "AS IS" BASIS, 12041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck * See the License for the specific language governing permissions and 14041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck * limitations under the License. 15041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck */ 16041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 17041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck#include <GLES3/gl3.h> 18041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck#include <GLES2/gl2ext.h> 19041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 20041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck#include <stdlib.h> 21041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck#include <string.h> 22041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 23041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckstruct { 24041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck GLboolean scissorEnabled; 25041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} gState; 26041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 27041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glGenCommon(GLsizei n, GLuint *buffers) { 28041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck static GLuint nextId = 0; 29041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck int i; 30041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck for(i = 0; i < n; i++) { 31041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck buffers[i] = ++nextId; 32041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck } 33041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 34041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 35041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glGenBuffers(GLsizei n, GLuint *buffers) { 36041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck glGenCommon(n, buffers); 37041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 38041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 39041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glGenFramebuffers(GLsizei n, GLuint *framebuffers) { 40041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck glGenCommon(n, framebuffers); 41041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 42041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 43041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glGenRenderbuffers(GLsizei n, GLuint *renderbuffers) { 44041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck glGenCommon(n, renderbuffers); 45041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 46041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 47041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glGenTextures(GLsizei n, GLuint *textures) { 48041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck glGenCommon(n, textures); 49041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 50041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 51041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn ReckGLuint glCreateProgram(void) { 52041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck static GLuint nextProgram = 0; 53041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck return ++nextProgram; 54041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 55041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 56041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn ReckGLuint glCreateShader(GLenum type) { 57041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck static GLuint nextShader = 0; 58041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck return ++nextShader; 59041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 60041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 61041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glGetProgramiv(GLuint program, GLenum pname, GLint *params) { 62041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck switch (pname) { 63041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck case GL_DELETE_STATUS: 64041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck case GL_LINK_STATUS: 65041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck case GL_VALIDATE_STATUS: 66041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck *params = GL_TRUE; 67041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck break; 68041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck case GL_INFO_LOG_LENGTH: 69041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck *params = 16; 70041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck break; 71041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck } 72041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 73041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 74041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glGetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog) { 75041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck *length = snprintf(infoLog, bufSize, "success"); 76041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck if (*length >= bufSize) { 77041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck *length = bufSize - 1; 78041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck } 79041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 80041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 81041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glGetShaderiv(GLuint shader, GLenum pname, GLint *params) { 82041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck switch (pname) { 83041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck case GL_COMPILE_STATUS: 84041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck case GL_DELETE_STATUS: 85041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck *params = GL_TRUE; 86041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck } 87041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 88041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 89041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog) { 90041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck *length = snprintf(infoLog, bufSize, "success"); 91041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck if (*length >= bufSize) { 92041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck *length = bufSize - 1; 93041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck } 94041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 95041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 96041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid setBooleanState(GLenum cap, GLboolean value) { 97041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck switch (cap) { 98041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck case GL_SCISSOR_TEST: 99041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck gState.scissorEnabled = value; 100041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck break; 101041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck } 102041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 103041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 104041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glEnable(GLenum cap) { 105041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck setBooleanState(cap, GL_TRUE); 106041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 107041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 108041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glDisable(GLenum cap) { 109041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck setBooleanState(cap, GL_FALSE); 110041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 111041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 112041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn ReckGLboolean glIsEnabled(GLenum cap) { 113041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck switch (cap) { 114041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck case GL_SCISSOR_TEST: 115041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck return gState.scissorEnabled; 116041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck default: 117041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck return GL_FALSE; 118041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck } 119041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 120041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 121041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glGetIntegerv(GLenum pname, GLint *data) { 122041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck switch (pname) { 123041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck case GL_MAX_TEXTURE_SIZE: 124041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck *data = 2048; 125041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck break; 126041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: 127041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck *data = 4; 128041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck break; 129041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck default: 130041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck *data = 0; 131041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck } 132041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 133041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 134041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckconst char* getString(GLenum name) { 135041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck switch (name) { 136041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck case GL_VENDOR: 137041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck return "android"; 138041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck case GL_RENDERER: 139041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck return "null"; 140041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck case GL_VERSION: 141041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck return "OpenGL ES 2.0 rev1"; 142041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck case GL_SHADING_LANGUAGE_VERSION: 143041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck return "OpenGL ES GLSL ES 2.0 rev1"; 144041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck case GL_EXTENSIONS: 145041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck default: 146041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck return ""; 147041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck } 148041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 149041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 150041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckconst GLubyte* glGetString(GLenum name) { 151041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck return (GLubyte*) getString(name); 152041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 153041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 154041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glActiveTexture(GLenum texture) {} 155041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glAttachShader(GLuint program, GLuint shader) {} 156041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glBindAttribLocation(GLuint program, GLuint index, const GLchar *name) {} 157041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glBindBuffer(GLenum target, GLuint buffer) {} 158041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glBindFramebuffer(GLenum target, GLuint framebuffer) {} 159041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glBindRenderbuffer(GLenum target, GLuint renderbuffer) {} 160041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glBindTexture(GLenum target, GLuint texture) {} 161041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glBlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {} 162041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glBlendEquation(GLenum mode) {} 163041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) {} 164041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glBlendFunc(GLenum sfactor, GLenum dfactor) {} 165041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) {} 166041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glBufferData(GLenum target, GLsizeiptr size, const void *data, GLenum usage) {} 167041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const void *data) {} 168041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glClear(GLbitfield mask) {} 169041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {} 170041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glClearDepthf(GLfloat d) {} 171041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glClearStencil(GLint s) {} 172041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) {} 173041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glCompileShader(GLuint shader) {} 174041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data) {} 175041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data) {} 176041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {} 177041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {} 178041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glCullFace(GLenum mode) {} 179041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glDeleteBuffers(GLsizei n, const GLuint *buffers) {} 180041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glDeleteFramebuffers(GLsizei n, const GLuint *framebuffers) {} 181041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glDeleteProgram(GLuint program) {} 182041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers) {} 183041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glDeleteShader(GLuint shader) {} 184041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glDeleteTextures(GLsizei n, const GLuint *textures) {} 185041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glDepthFunc(GLenum func) {} 186041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glDepthMask(GLboolean flag) {} 187041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glDepthRangef(GLfloat n, GLfloat f) {} 188041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glDetachShader(GLuint program, GLuint shader) {} 189041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glDisableVertexAttribArray(GLuint index) {} 190041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glDrawArrays(GLenum mode, GLint first, GLsizei count) {} 191041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glDrawElements(GLenum mode, GLsizei count, GLenum type, const void *indices) {} 192041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glEnableVertexAttribArray(GLuint index) {} 193041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glFinish(void) {} 194041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glFlush(void) {} 195041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) {} 196041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) {} 197041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glFrontFace(GLenum mode) {} 198041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glGenerateMipmap(GLenum target) {} 199041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn ReckGLint glGetAttribLocation(GLuint program, const GLchar *name) { return 1; } 200041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn ReckGLenum glGetError(void) { return GL_NO_ERROR; } 201041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn ReckGLint glGetUniformLocation(GLuint program, const GLchar *name) { return 2; } 202041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glHint(GLenum target, GLenum mode) {} 203041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glLineWidth(GLfloat width) {} 204041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glLinkProgram(GLuint program) {} 205041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glPixelStorei(GLenum pname, GLint param) {} 206041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glPolygonOffset(GLfloat factor, GLfloat units) {} 207041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels) {} 208041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glReleaseShaderCompiler(void) {} 209041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) {} 210041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glSampleCoverage(GLfloat value, GLboolean invert) {} 211041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glScissor(GLint x, GLint y, GLsizei width, GLsizei height) {} 212041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glShaderBinary(GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length) {} 213041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glShaderSource(GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length) {} 214041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glStencilFunc(GLenum func, GLint ref, GLuint mask) {} 215041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) {} 216041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glStencilMask(GLuint mask) {} 217041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glStencilMaskSeparate(GLenum face, GLuint mask) {} 218041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glStencilOp(GLenum fail, GLenum zfail, GLenum zpass) {} 219041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glStencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) {} 220041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels) {} 221041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glTexParameterf(GLenum target, GLenum pname, GLfloat param) {} 222041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params) {} 223041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glTexParameteri(GLenum target, GLenum pname, GLint param) {} 224041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glTexParameteriv(GLenum target, GLenum pname, const GLint *params) {} 225041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels) {} 226041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniform1f(GLint location, GLfloat v0) {} 227041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniform1fv(GLint location, GLsizei count, const GLfloat *value) {} 228041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniform1i(GLint location, GLint v0) {} 229041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniform1iv(GLint location, GLsizei count, const GLint *value) {} 230041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniform2f(GLint location, GLfloat v0, GLfloat v1) {} 231041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniform2fv(GLint location, GLsizei count, const GLfloat *value) {} 232041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniform2i(GLint location, GLint v0, GLint v1) {} 233041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniform2iv(GLint location, GLsizei count, const GLint *value) {} 234041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) {} 235041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniform3fv(GLint location, GLsizei count, const GLfloat *value) {} 236041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniform3i(GLint location, GLint v0, GLint v1, GLint v2) {} 237041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniform3iv(GLint location, GLsizei count, const GLint *value) {} 238041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) {} 239041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniform4fv(GLint location, GLsizei count, const GLfloat *value) {} 240041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) {} 241041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniform4iv(GLint location, GLsizei count, const GLint *value) {} 242041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) {} 243041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) {} 244041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) {} 245041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glUseProgram(GLuint program) {} 246041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glValidateProgram(GLuint program) {} 247041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glVertexAttrib1f(GLuint index, GLfloat x) {} 248041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glVertexAttrib1fv(GLuint index, const GLfloat *v) {} 249041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glVertexAttrib2f(GLuint index, GLfloat x, GLfloat y) {} 250041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glVertexAttrib2fv(GLuint index, const GLfloat *v) {} 251041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glVertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z) {} 252041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glVertexAttrib3fv(GLuint index, const GLfloat *v) {} 253041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glVertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {} 254041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glVertexAttrib4fv(GLuint index, const GLfloat *v) {} 255041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer) {} 256041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glViewport(GLint x, GLint y, GLsizei width, GLsizei height) {} 257041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 258041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 259041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck// gles2 ext 260041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glInsertEventMarkerEXT(GLsizei length, const GLchar *marker) {} 261041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glPushGroupMarkerEXT(GLsizei length, const GLchar *marker) {} 262041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glPopGroupMarkerEXT(void) {} 263041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum *attachments) {} 264041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask) {} 265041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glEndTilingQCOM(GLbitfield preserveMask) {} 266041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image) {} 267041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 268041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck// GLES3 269041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reckvoid* glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) { 270041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck return 0; 271041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 272041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck 273041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn ReckGLboolean glUnmapBuffer(GLenum target) { 274041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck return GL_FALSE; 275041b985dbb2f75aa492236d46ab47dbda8c2c74eJohn Reck} 276