Merge "Add gmock to hwui library"

This commit is contained in:
Sergei Vasilinetc
2016-05-17 21:00:01 +00:00
committed by Android (Google) Code Review
22 changed files with 3055 additions and 1275 deletions

View File

@@ -108,6 +108,14 @@ hwui_test_common_src_files := \
tests/common/TestScene.cpp \
tests/common/TestUtils.cpp
hwui_debug_common_src_files := \
debug/wrap_gles.cpp \
debug/DefaultGlesDriver.cpp \
debug/GlesErrorCheckWrapper.cpp \
debug/GlesDriver.cpp \
debug/FatalBaseDriver.cpp \
debug/NullGlesDriver.cpp
hwui_cflags := \
-DEGL_EGLEXT_PROTOTYPES -DGL_GLEXT_PROTOTYPES \
-DATRACE_TAG=ATRACE_TAG_VIEW -DLOG_TAG=\"OpenGLRenderer\" \
@@ -160,14 +168,6 @@ ifneq (false,$(ANDROID_ENABLE_RENDERSCRIPT))
frameworks/rs
endif
ifeq (true, $(HWUI_ENABLE_OPENGL_VALIDATION))
hwui_cflags += -include debug/wrap_gles.h
hwui_src_files += debug/wrap_gles.cpp
hwui_c_includes += frameworks/native/opengl/libs/GLES2
hwui_cflags += -DDEBUG_OPENGL=3
endif
# ------------------------
# static library
# ------------------------
@@ -178,6 +178,13 @@ LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE := libhwui_static
LOCAL_CFLAGS := $(hwui_cflags)
LOCAL_SRC_FILES := $(hwui_src_files)
ifeq (true, $(HWUI_ENABLE_OPENGL_VALIDATION))
LOCAL_CFLAGS += -include debug/wrap_gles.h
LOCAL_CFLAGS += -DDEBUG_OPENGL=3
LOCAL_SRC_FILES += $(hwui_debug_common_src_files)
endif
LOCAL_C_INCLUDES := $(hwui_c_includes) $(call hwui_proto_include)
LOCAL_EXPORT_C_INCLUDE_DIRS := \
$(LOCAL_PATH) \
@@ -193,14 +200,15 @@ include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE := libhwui_static_null_gpu
LOCAL_MODULE := libhwui_static_debug
LOCAL_CFLAGS := \
$(hwui_cflags) \
-include debug/wrap_gles.h \
-DHWUI_NULL_GPU
LOCAL_SRC_FILES := \
$(hwui_src_files) \
debug/nullegl.cpp \
debug/nullgles.cpp
$(hwui_debug_common_src_files) \
debug/nullegl.cpp
LOCAL_C_INCLUDES := $(hwui_c_includes) $(call hwui_proto_include)
LOCAL_EXPORT_C_INCLUDE_DIRS := \
$(LOCAL_PATH) \
@@ -231,10 +239,11 @@ include $(CLEAR_VARS)
LOCAL_MODULE := hwui_unit_tests
LOCAL_MODULE_TAGS := tests
LOCAL_STATIC_LIBRARIES := libhwui_static_null_gpu
LOCAL_STATIC_LIBRARIES := libgmock libhwui_static_debug
LOCAL_SHARED_LIBRARIES := libmemunreachable
LOCAL_CFLAGS := \
$(hwui_cflags) \
-include debug/wrap_gles.h \
-DHWUI_NULL_GPU
LOCAL_C_INCLUDES := $(hwui_c_includes)
@@ -253,6 +262,7 @@ LOCAL_SRC_FILES += \
tests/unit/LayerUpdateQueueTests.cpp \
tests/unit/LinearAllocatorTests.cpp \
tests/unit/MatrixTests.cpp \
tests/unit/MeshStateTests.cpp \
tests/unit/OffscreenBufferPoolTests.cpp \
tests/unit/RenderNodeTests.cpp \
tests/unit/SkiaBehaviorTests.cpp \
@@ -293,7 +303,7 @@ LOCAL_MODULE_STEM_64 := hwuitest64
LOCAL_CFLAGS := $(hwui_cflags)
LOCAL_C_INCLUDES := $(hwui_c_includes)
# set to libhwui_static_null_gpu to skip actual GL commands
# set to libhwui_static_debug to skip actual GL commands
LOCAL_WHOLE_STATIC_LIBRARIES := libhwui_static
LOCAL_SRC_FILES += \
@@ -318,11 +328,12 @@ LOCAL_MODULE_STEM_32 := hwuimicro
LOCAL_MODULE_STEM_64 := hwuimicro64
LOCAL_CFLAGS := \
$(hwui_cflags) \
-include debug/wrap_gles.h \
-DHWUI_NULL_GPU
LOCAL_C_INCLUDES := $(hwui_c_includes)
LOCAL_WHOLE_STATIC_LIBRARIES := libhwui_static_null_gpu
LOCAL_WHOLE_STATIC_LIBRARIES := libhwui_static_debug
LOCAL_STATIC_LIBRARIES := libgoogle-benchmark
LOCAL_SRC_FILES += \

View File

@@ -0,0 +1,40 @@
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "DefaultGlesDriver.h"
#include "gles_undefine.h"
#include <EGL/egl.h>
namespace android {
namespace uirenderer {
namespace debug {
// Generate the proxy
#define API_ENTRY(x) DefaultGlesDriver::x##_
#define CALL_GL_API(x, ...) x(__VA_ARGS__);
#define CALL_GL_API_RETURN(x, ...) return x(__VA_ARGS__);
#include "gles_stubs.in"
#undef API_ENTRY
#undef CALL_GL_API
#undef CALL_GL_API_RETURN
} // namespace debug
} // namespace uirenderer
} // namespace android

View File

@@ -0,0 +1,35 @@
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include "GlesDriver.h"
namespace android {
namespace uirenderer {
namespace debug {
class DefaultGlesDriver : public GlesDriver {
public:
#define GL_ENTRY(ret, api, ...) virtual ret api##_(__VA_ARGS__) override;
#include "gles_decls.in"
#undef GL_ENTRY
};
} // namespace debug
} // namespace uirenderer
} // namespace android

View File

@@ -0,0 +1,40 @@
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "FatalBaseDriver.h"
#include <cutils/log.h>
namespace android {
namespace uirenderer {
namespace debug {
// Generate the proxy
#define API_ENTRY(x) FatalBaseDriver::x##_
#define CALL_GL_API(x, ...) LOG_ALWAYS_FATAL("Not Implemented");
#define CALL_GL_API_RETURN(x, ...) \
LOG_ALWAYS_FATAL("Not Implemented"); \
return static_cast<decltype(x(__VA_ARGS__))>(0);
#include "gles_stubs.in"
#undef API_ENTRY
#undef CALL_GL_API
#undef CALL_GL_API_RETURN
} // namespace debug
} // namespace uirenderer
} // namespace android

View File

@@ -0,0 +1,37 @@
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include "GlesDriver.h"
namespace android {
namespace uirenderer {
namespace debug {
// A base driver that implements all the pure virtuals in the form of
// LOG_ALWAYS_FATALS. Suitable for selective-override implementations
// where only a known subset of methods need to be overridden
class FatalBaseDriver : public GlesDriver {
public:
#define GL_ENTRY(ret, api, ...) virtual ret api##_(__VA_ARGS__) override;
#include "gles_decls.in"
#undef GL_ENTRY
};
} // namespace debug
} // namespace uirenderer
} // namespace android

View File

@@ -0,0 +1,41 @@
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "GlesDriver.h"
#include "DefaultGlesDriver.h"
#include "GlesErrorCheckWrapper.h"
namespace android {
namespace uirenderer {
namespace debug {
static DefaultGlesDriver sDefaultDriver;
static std::unique_ptr<GlesDriver> sGlesDriver(new GlesErrorCheckWrapper(sDefaultDriver));
GlesDriver* GlesDriver::get() {
return sGlesDriver.get();
}
std::unique_ptr<GlesDriver> GlesDriver::replace(std::unique_ptr<GlesDriver>&& driver) {
std::unique_ptr<GlesDriver> ret = std::move(sGlesDriver);
sGlesDriver = std::move(driver);
return ret;
}
} // namespace debug
} // namespace uirenderer
} // namespace android

View File

@@ -0,0 +1,53 @@
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#ifndef HWUI_GLES_WRAP_ENABLED
#error Wrapping wasn't enabled, can't use this!
#endif
#include <GLES/gl.h>
#include <GLES/glext.h>
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#include <GLES3/gl3.h>
#include <GLES3/gl31.h>
#include <GLES3/gl32.h>
#include <memory>
namespace android {
namespace uirenderer {
namespace debug {
// All the gl methods on GlesDriver have a trailing underscore
// This is to avoid collision with gles_redefine/gles_undefine
class GlesDriver {
public:
virtual ~GlesDriver() {}
#define GL_ENTRY(ret, api, ...) virtual ret api##_(__VA_ARGS__) = 0;
#include "gles_decls.in"
#undef GL_ENTRY
static GlesDriver* get();
static std::unique_ptr<GlesDriver> replace(std::unique_ptr<GlesDriver>&& driver);
};
} // namespace debug
} // namespace uirenderer
} // namespace android

View File

@@ -0,0 +1,74 @@
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "GlesErrorCheckWrapper.h"
#include <cutils/log.h>
namespace android {
namespace uirenderer {
namespace debug {
void GlesErrorCheckWrapper::assertNoErrors(const char* apicall) {
GLenum status = GL_NO_ERROR;
GLenum lastError = GL_NO_ERROR;
const char* lastErrorName = nullptr;
while ((status = mBase.glGetError_()) != GL_NO_ERROR) {
lastError = status;
switch (status) {
case GL_INVALID_ENUM:
ALOGE("GL error: GL_INVALID_ENUM");
lastErrorName = "GL_INVALID_ENUM";
break;
case GL_INVALID_VALUE:
ALOGE("GL error: GL_INVALID_VALUE");
lastErrorName = "GL_INVALID_VALUE";
break;
case GL_INVALID_OPERATION:
ALOGE("GL error: GL_INVALID_OPERATION");
lastErrorName = "GL_INVALID_OPERATION";
break;
case GL_OUT_OF_MEMORY:
ALOGE("GL error: Out of memory!");
lastErrorName = "GL_OUT_OF_MEMORY";
break;
default:
ALOGE("GL error: 0x%x", status);
lastErrorName = "UNKNOWN";
}
}
LOG_ALWAYS_FATAL_IF(lastError != GL_NO_ERROR,
"%s error! %s (0x%x)", apicall, lastErrorName, lastError);
}
#define API_ENTRY(x) GlesErrorCheckWrapper::x##_
#define CALL_GL_API(x, ...) \
mBase.x##_(__VA_ARGS__); assertNoErrors(#x)
#define CALL_GL_API_RETURN(x, ...) \
auto ret = mBase.x##_(__VA_ARGS__); \
assertNoErrors(#x); \
return ret
#include "gles_stubs.in"
#undef API_ENTRY
#undef CALL_GL_API
#undef CALL_GL_API_RETURN
} // namespace debug
} // namespace uirenderer
} // namespace android

View File

@@ -0,0 +1,41 @@
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include "GlesDriver.h"
namespace android {
namespace uirenderer {
namespace debug {
class GlesErrorCheckWrapper : public GlesDriver {
public:
GlesErrorCheckWrapper(GlesDriver& base) : mBase(base) {}
#define GL_ENTRY(ret, api, ...) virtual ret api##_(__VA_ARGS__) override;
#include "gles_decls.in"
#undef GL_ENTRY
private:
void assertNoErrors(const char* apicall);
GlesDriver& mBase;
};
} // namespace debug
} // namespace uirenderer
} // namespace android

View File

@@ -0,0 +1,36 @@
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include "FatalBaseDriver.h"
#include <gmock/gmock.h>
namespace android {
namespace uirenderer {
namespace debug {
class MockGlesDriver : public FatalBaseDriver {
public:
MOCK_METHOD2(glBindBuffer_, void(GLenum target, GLuint buffer));
MOCK_METHOD4(glBufferData_, void(GLenum target, GLsizeiptr size, const void *data, GLenum usage));
MOCK_METHOD2(glGenBuffers_, void(GLsizei n, GLuint *buffers));
};
} // namespace debug
} // namespace uirenderer
} // namespace android

View File

@@ -0,0 +1,165 @@
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <debug/NullGlesDriver.h>
namespace android {
namespace uirenderer {
namespace debug {
struct {
GLboolean scissorEnabled;
} gState;
static void nullglGenCommon(GLsizei n, GLuint *buffers) {
static GLuint nextId = 0;
int i;
for(i = 0; i < n; i++) {
buffers[i] = ++nextId;
}
}
void NullGlesDriver::glGenBuffers_(GLsizei n, GLuint *buffers) {
nullglGenCommon(n, buffers);
}
void NullGlesDriver::glGenFramebuffers_(GLsizei n, GLuint *framebuffers) {
nullglGenCommon(n, framebuffers);
}
void NullGlesDriver::glGenRenderbuffers_(GLsizei n, GLuint *renderbuffers) {
nullglGenCommon(n, renderbuffers);
}
void NullGlesDriver::glGenTextures_(GLsizei n, GLuint *textures) {
nullglGenCommon(n, textures);
}
GLuint NullGlesDriver::glCreateProgram_(void) {
static GLuint nextProgram = 0;
return ++nextProgram;
}
GLuint NullGlesDriver::glCreateShader_(GLenum type) {
static GLuint nextShader = 0;
return ++nextShader;
}
void NullGlesDriver::glGetProgramiv_(GLuint program, GLenum pname, GLint *params) {
switch (pname) {
case GL_DELETE_STATUS:
case GL_LINK_STATUS:
case GL_VALIDATE_STATUS:
*params = GL_TRUE;
break;
case GL_INFO_LOG_LENGTH:
*params = 16;
break;
}
}
void NullGlesDriver::glGetProgramInfoLog_(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog) {
*length = snprintf(infoLog, bufSize, "success");
if (*length >= bufSize) {
*length = bufSize - 1;
}
}
void NullGlesDriver::glGetShaderiv_(GLuint shader, GLenum pname, GLint *params) {
switch (pname) {
case GL_COMPILE_STATUS:
case GL_DELETE_STATUS:
*params = GL_TRUE;
}
}
void NullGlesDriver::glGetShaderInfoLog_(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog) {
*length = snprintf(infoLog, bufSize, "success");
if (*length >= bufSize) {
*length = bufSize - 1;
}
}
void setBooleanState(GLenum cap, GLboolean value) {
switch (cap) {
case GL_SCISSOR_TEST:
gState.scissorEnabled = value;
break;
}
}
void NullGlesDriver::glEnable_(GLenum cap) {
setBooleanState(cap, GL_TRUE);
}
void NullGlesDriver::glDisable_(GLenum cap) {
setBooleanState(cap, GL_FALSE);
}
GLboolean NullGlesDriver::glIsEnabled_(GLenum cap) {
switch (cap) {
case GL_SCISSOR_TEST:
return gState.scissorEnabled;
default:
return GL_FALSE;
}
}
void NullGlesDriver::glGetIntegerv_(GLenum pname, GLint *data) {
switch (pname) {
case GL_MAX_TEXTURE_SIZE:
*data = 2048;
break;
case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS:
*data = 4;
break;
default:
*data = 0;
}
}
GLenum NullGlesDriver::glCheckFramebufferStatus_(GLenum target) {
switch (target) {
case GL_FRAMEBUFFER:
return GL_FRAMEBUFFER_COMPLETE;
default:
return 0; // error case
}
}
static const char* getString(GLenum name) {
switch (name) {
case GL_VENDOR:
return "android";
case GL_RENDERER:
return "null";
case GL_VERSION:
return "OpenGL ES 2.0 rev1";
case GL_SHADING_LANGUAGE_VERSION:
return "OpenGL ES GLSL ES 2.0 rev1";
case GL_EXTENSIONS:
default:
return "";
}
}
const GLubyte* NullGlesDriver::glGetString_(GLenum name) {
return (GLubyte*) getString(name);
}
} // namespace debug
} // namespace uirenderer
} // namespace android

View File

@@ -0,0 +1,167 @@
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include "FatalBaseDriver.h"
namespace android {
namespace uirenderer {
namespace debug {
class NullGlesDriver : public FatalBaseDriver {
public:
virtual void glGenBuffers_(GLsizei n, GLuint *buffers) override;
virtual void glGenFramebuffers_(GLsizei n, GLuint *framebuffers) override;
virtual void glGenRenderbuffers_(GLsizei n, GLuint *renderbuffers) override;
virtual void glGenTextures_(GLsizei n, GLuint *textures) override;
virtual GLuint glCreateProgram_(void) override;
virtual GLuint glCreateShader_(GLenum type) override;
virtual void glGetProgramiv_(GLuint program, GLenum pname, GLint *params) override;
virtual void glGetProgramInfoLog_(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog) override;
virtual void glGetShaderiv_(GLuint shader, GLenum pname, GLint *params) override;
virtual void glGetShaderInfoLog_(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog) override;
virtual void glEnable_(GLenum cap) override;
virtual void glDisable_(GLenum cap) override;
virtual GLboolean glIsEnabled_(GLenum cap) override;
virtual void glGetIntegerv_(GLenum pname, GLint *data) override;
virtual const GLubyte* glGetString_(GLenum name) override;
virtual GLenum glCheckFramebufferStatus_(GLenum target) override;
virtual void glActiveTexture_(GLenum texture) override {}
virtual void glAttachShader_(GLuint program, GLuint shader) override {}
virtual void glBindAttribLocation_(GLuint program, GLuint index, const GLchar *name) override {}
virtual void glBindBuffer_(GLenum target, GLuint buffer) override {}
virtual void glBindFramebuffer_(GLenum target, GLuint framebuffer) override {}
virtual void glBindRenderbuffer_(GLenum target, GLuint renderbuffer) override {}
virtual void glBindTexture_(GLenum target, GLuint texture) override {}
virtual void glBlendColor_(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) override {}
virtual void glBlendEquation_(GLenum mode) override {}
virtual void glBlendEquationSeparate_(GLenum modeRGB, GLenum modeAlpha) override {}
virtual void glBlendFunc_(GLenum sfactor, GLenum dfactor) override {}
virtual void glBlendFuncSeparate_(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) override {}
virtual void glBufferData_(GLenum target, GLsizeiptr size, const void *data, GLenum usage) override {}
virtual void glBufferSubData_(GLenum target, GLintptr offset, GLsizeiptr size, const void *data) override {}
virtual void glClear_(GLbitfield mask) override {}
virtual void glClearColor_(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) override {}
virtual void glClearDepthf_(GLfloat d) override {}
virtual void glClearStencil_(GLint s) override {}
virtual void glColorMask_(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) override {}
virtual void glCompileShader_(GLuint shader) override {}
virtual void glCompressedTexImage2D_(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data) override {}
virtual void glCompressedTexSubImage2D_(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data) override {}
virtual void glCopyTexImage2D_(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) override {}
virtual void glCopyTexSubImage2D_(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) override {}
virtual void glCullFace_(GLenum mode) override {}
virtual void glDeleteBuffers_(GLsizei n, const GLuint *buffers) override {}
virtual void glDeleteFramebuffers_(GLsizei n, const GLuint *framebuffers) override {}
virtual void glDeleteProgram_(GLuint program) override {}
virtual void glDeleteRenderbuffers_(GLsizei n, const GLuint *renderbuffers) override {}
virtual void glDeleteShader_(GLuint shader) override {}
virtual void glDeleteTextures_(GLsizei n, const GLuint *textures) override {}
virtual void glDepthFunc_(GLenum func) override {}
virtual void glDepthMask_(GLboolean flag) override {}
virtual void glDepthRangef_(GLfloat n, GLfloat f) override {}
virtual void glDetachShader_(GLuint program, GLuint shader) override {}
virtual void glDisableVertexAttribArray_(GLuint index) override {}
virtual void glDrawArrays_(GLenum mode, GLint first, GLsizei count) override {}
virtual void glDrawElements_(GLenum mode, GLsizei count, GLenum type, const void *indices) override {}
virtual void glEnableVertexAttribArray_(GLuint index) override {}
virtual void glFinish_(void) override {}
virtual void glFlush_(void) override {}
virtual void glFramebufferRenderbuffer_(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) override {}
virtual void glFramebufferTexture2D_(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) override {}
virtual void glFrontFace_(GLenum mode) override {}
virtual void glGenerateMipmap_(GLenum target) override {}
virtual GLint glGetAttribLocation_(GLuint program, const GLchar *name) override { return 1; }
virtual GLenum glGetError_(void) override { return GL_NO_ERROR; }
virtual GLint glGetUniformLocation_(GLuint program, const GLchar *name) override { return 2; }
virtual void glHint_(GLenum target, GLenum mode) override {}
virtual void glLineWidth_(GLfloat width) override {}
virtual void glLinkProgram_(GLuint program) override {}
virtual void glPixelStorei_(GLenum pname, GLint param) override {}
virtual void glPolygonOffset_(GLfloat factor, GLfloat units) override {}
virtual void glReadPixels_(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels) override {}
virtual void glReleaseShaderCompiler_(void) override {}
virtual void glRenderbufferStorage_(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) override {}
virtual void glSampleCoverage_(GLfloat value, GLboolean invert) override {}
virtual void glScissor_(GLint x, GLint y, GLsizei width, GLsizei height) override {}
virtual void glShaderBinary_(GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length) override {}
virtual void glShaderSource_(GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length) override {}
virtual void glStencilFunc_(GLenum func, GLint ref, GLuint mask) override {}
virtual void glStencilFuncSeparate_(GLenum face, GLenum func, GLint ref, GLuint mask) override {}
virtual void glStencilMask_(GLuint mask) override {}
virtual void glStencilMaskSeparate_(GLenum face, GLuint mask) override {}
virtual void glStencilOp_(GLenum fail, GLenum zfail, GLenum zpass) override {}
virtual void glStencilOpSeparate_(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) override {}
virtual void glTexImage2D_(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels) override {}
virtual void glTexParameterf_(GLenum target, GLenum pname, GLfloat param) override {}
virtual void glTexParameterfv_(GLenum target, GLenum pname, const GLfloat *params) override {}
virtual void glTexParameteri_(GLenum target, GLenum pname, GLint param) override {}
virtual void glTexParameteriv_(GLenum target, GLenum pname, const GLint *params) override {}
virtual void glTexSubImage2D_(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels) override {}
virtual void glUniform1f_(GLint location, GLfloat v0) override {}
virtual void glUniform1fv_(GLint location, GLsizei count, const GLfloat *value) override {}
virtual void glUniform1i_(GLint location, GLint v0) override {}
virtual void glUniform1iv_(GLint location, GLsizei count, const GLint *value) override {}
virtual void glUniform2f_(GLint location, GLfloat v0, GLfloat v1) override {}
virtual void glUniform2fv_(GLint location, GLsizei count, const GLfloat *value) override {}
virtual void glUniform2i_(GLint location, GLint v0, GLint v1) override {}
virtual void glUniform2iv_(GLint location, GLsizei count, const GLint *value) override {}
virtual void glUniform3f_(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) override {}
virtual void glUniform3fv_(GLint location, GLsizei count, const GLfloat *value) override {}
virtual void glUniform3i_(GLint location, GLint v0, GLint v1, GLint v2) override {}
virtual void glUniform3iv_(GLint location, GLsizei count, const GLint *value) override {}
virtual void glUniform4f_(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) override {}
virtual void glUniform4fv_(GLint location, GLsizei count, const GLfloat *value) override {}
virtual void glUniform4i_(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) override {}
virtual void glUniform4iv_(GLint location, GLsizei count, const GLint *value) override {}
virtual void glUniformMatrix2fv_(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) override {}
virtual void glUniformMatrix3fv_(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) override {}
virtual void glUniformMatrix4fv_(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) override {}
virtual void glUseProgram_(GLuint program) override {}
virtual void glValidateProgram_(GLuint program) override {}
virtual void glVertexAttrib1f_(GLuint index, GLfloat x) override {}
virtual void glVertexAttrib1fv_(GLuint index, const GLfloat *v) override {}
virtual void glVertexAttrib2f_(GLuint index, GLfloat x, GLfloat y) override {}
virtual void glVertexAttrib2fv_(GLuint index, const GLfloat *v) override {}
virtual void glVertexAttrib3f_(GLuint index, GLfloat x, GLfloat y, GLfloat z) override {}
virtual void glVertexAttrib3fv_(GLuint index, const GLfloat *v) override {}
virtual void glVertexAttrib4f_(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) override {}
virtual void glVertexAttrib4fv_(GLuint index, const GLfloat *v) override {}
virtual void glVertexAttribPointer_(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer) override {}
virtual void glViewport_(GLint x, GLint y, GLsizei width, GLsizei height) override {}
// gles2 ext
virtual void glInsertEventMarkerEXT_(GLsizei length, const GLchar *marker) override {}
virtual void glPushGroupMarkerEXT_(GLsizei length, const GLchar *marker) override {}
virtual void glPopGroupMarkerEXT_(void) override {}
virtual void glDiscardFramebufferEXT_(GLenum target, GLsizei numAttachments, const GLenum *attachments) override {}
virtual void glEGLImageTargetTexture2DOES_(GLenum target, GLeglImageOES image) override {}
// GLES3
virtual void* glMapBufferRange_(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) override {
return 0;
}
virtual GLboolean glUnmapBuffer_(GLenum target) override {
return GL_FALSE;
}
};
} // namespace debug
} // namespace uirenderer
} // namespace android

View File

@@ -0,0 +1,46 @@
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include "GlesDriver.h"
namespace android {
namespace uirenderer {
namespace debug {
template <typename Driver>
class ScopedReplaceDriver {
public:
ScopedReplaceDriver() {
std::unique_ptr<Driver> glDriver = std::make_unique<Driver>();
mCurrentDriver = glDriver.get();
mOldDriver = GlesDriver::replace(std::move(glDriver));
}
Driver& get() { return *mCurrentDriver; }
~ScopedReplaceDriver() {
GlesDriver::replace(std::move(mOldDriver));
}
private:
std::unique_ptr<GlesDriver> mOldDriver;
Driver* mCurrentDriver;
};
} // namespace debug
} // namespace uirenderer
} // namespace android

View File

@@ -0,0 +1,544 @@
GL_ENTRY(void, glActiveTexture, GLenum texture)
GL_ENTRY(void, glAttachShader, GLuint program, GLuint shader)
GL_ENTRY(void, glBindAttribLocation, GLuint program, GLuint index, const GLchar *name)
GL_ENTRY(void, glBindBuffer, GLenum target, GLuint buffer)
GL_ENTRY(void, glBindFramebuffer, GLenum target, GLuint framebuffer)
GL_ENTRY(void, glBindRenderbuffer, GLenum target, GLuint renderbuffer)
GL_ENTRY(void, glBindTexture, GLenum target, GLuint texture)
GL_ENTRY(void, glBlendColor, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
GL_ENTRY(void, glBlendEquation, GLenum mode)
GL_ENTRY(void, glBlendEquationSeparate, GLenum modeRGB, GLenum modeAlpha)
GL_ENTRY(void, glBlendFunc, GLenum sfactor, GLenum dfactor)
GL_ENTRY(void, glBlendFuncSeparate, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
GL_ENTRY(void, glBufferData, GLenum target, GLsizeiptr size, const void *data, GLenum usage)
GL_ENTRY(void, glBufferSubData, GLenum target, GLintptr offset, GLsizeiptr size, const void *data)
GL_ENTRY(GLenum, glCheckFramebufferStatus, GLenum target)
GL_ENTRY(void, glClear, GLbitfield mask)
GL_ENTRY(void, glClearColor, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
GL_ENTRY(void, glClearDepthf, GLfloat d)
GL_ENTRY(void, glClearStencil, GLint s)
GL_ENTRY(void, glColorMask, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
GL_ENTRY(void, glCompileShader, GLuint shader)
GL_ENTRY(void, glCompressedTexImage2D, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data)
GL_ENTRY(void, glCompressedTexSubImage2D, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data)
GL_ENTRY(void, glCopyTexImage2D, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
GL_ENTRY(void, glCopyTexSubImage2D, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
GL_ENTRY(GLuint, glCreateProgram, void)
GL_ENTRY(GLuint, glCreateShader, GLenum type)
GL_ENTRY(void, glCullFace, GLenum mode)
GL_ENTRY(void, glDeleteBuffers, GLsizei n, const GLuint *buffers)
GL_ENTRY(void, glDeleteFramebuffers, GLsizei n, const GLuint *framebuffers)
GL_ENTRY(void, glDeleteProgram, GLuint program)
GL_ENTRY(void, glDeleteRenderbuffers, GLsizei n, const GLuint *renderbuffers)
GL_ENTRY(void, glDeleteShader, GLuint shader)
GL_ENTRY(void, glDeleteTextures, GLsizei n, const GLuint *textures)
GL_ENTRY(void, glDepthFunc, GLenum func)
GL_ENTRY(void, glDepthMask, GLboolean flag)
GL_ENTRY(void, glDepthRangef, GLfloat n, GLfloat f)
GL_ENTRY(void, glDetachShader, GLuint program, GLuint shader)
GL_ENTRY(void, glDisable, GLenum cap)
GL_ENTRY(void, glDisableVertexAttribArray, GLuint index)
GL_ENTRY(void, glDrawArrays, GLenum mode, GLint first, GLsizei count)
GL_ENTRY(void, glDrawElements, GLenum mode, GLsizei count, GLenum type, const void *indices)
GL_ENTRY(void, glEnable, GLenum cap)
GL_ENTRY(void, glEnableVertexAttribArray, GLuint index)
GL_ENTRY(void, glFinish, void)
GL_ENTRY(void, glFlush, void)
GL_ENTRY(void, glFramebufferRenderbuffer, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
GL_ENTRY(void, glFramebufferTexture2D, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
GL_ENTRY(void, glFrontFace, GLenum mode)
GL_ENTRY(void, glGenBuffers, GLsizei n, GLuint *buffers)
GL_ENTRY(void, glGenerateMipmap, GLenum target)
GL_ENTRY(void, glGenFramebuffers, GLsizei n, GLuint *framebuffers)
GL_ENTRY(void, glGenRenderbuffers, GLsizei n, GLuint *renderbuffers)
GL_ENTRY(void, glGenTextures, GLsizei n, GLuint *textures)
GL_ENTRY(void, glGetActiveAttrib, GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)
GL_ENTRY(void, glGetActiveUniform, GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)
GL_ENTRY(void, glGetAttachedShaders, GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders)
GL_ENTRY(GLint, glGetAttribLocation, GLuint program, const GLchar *name)
GL_ENTRY(void, glGetBooleanv, GLenum pname, GLboolean *data)
GL_ENTRY(void, glGetBufferParameteriv, GLenum target, GLenum pname, GLint *params)
GL_ENTRY(GLenum, glGetError, void)
GL_ENTRY(void, glGetFloatv, GLenum pname, GLfloat *data)
GL_ENTRY(void, glGetFramebufferAttachmentParameteriv, GLenum target, GLenum attachment, GLenum pname, GLint *params)
GL_ENTRY(void, glGetIntegerv, GLenum pname, GLint *data)
GL_ENTRY(void, glGetProgramiv, GLuint program, GLenum pname, GLint *params)
GL_ENTRY(void, glGetProgramInfoLog, GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog)
GL_ENTRY(void, glGetRenderbufferParameteriv, GLenum target, GLenum pname, GLint *params)
GL_ENTRY(void, glGetShaderiv, GLuint shader, GLenum pname, GLint *params)
GL_ENTRY(void, glGetShaderInfoLog, GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog)
GL_ENTRY(void, glGetShaderPrecisionFormat, GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision)
GL_ENTRY(void, glGetShaderSource, GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source)
GL_ENTRY(const GLubyte *, glGetString, GLenum name)
GL_ENTRY(void, glGetTexParameterfv, GLenum target, GLenum pname, GLfloat *params)
GL_ENTRY(void, glGetTexParameteriv, GLenum target, GLenum pname, GLint *params)
GL_ENTRY(void, glGetUniformfv, GLuint program, GLint location, GLfloat *params)
GL_ENTRY(void, glGetUniformiv, GLuint program, GLint location, GLint *params)
GL_ENTRY(GLint, glGetUniformLocation, GLuint program, const GLchar *name)
GL_ENTRY(void, glGetVertexAttribfv, GLuint index, GLenum pname, GLfloat *params)
GL_ENTRY(void, glGetVertexAttribiv, GLuint index, GLenum pname, GLint *params)
GL_ENTRY(void, glGetVertexAttribPointerv, GLuint index, GLenum pname, void **pointer)
GL_ENTRY(void, glHint, GLenum target, GLenum mode)
GL_ENTRY(GLboolean, glIsBuffer, GLuint buffer)
GL_ENTRY(GLboolean, glIsEnabled, GLenum cap)
GL_ENTRY(GLboolean, glIsFramebuffer, GLuint framebuffer)
GL_ENTRY(GLboolean, glIsProgram, GLuint program)
GL_ENTRY(GLboolean, glIsRenderbuffer, GLuint renderbuffer)
GL_ENTRY(GLboolean, glIsShader, GLuint shader)
GL_ENTRY(GLboolean, glIsTexture, GLuint texture)
GL_ENTRY(void, glLineWidth, GLfloat width)
GL_ENTRY(void, glLinkProgram, GLuint program)
GL_ENTRY(void, glPixelStorei, GLenum pname, GLint param)
GL_ENTRY(void, glPolygonOffset, GLfloat factor, GLfloat units)
GL_ENTRY(void, glReadPixels, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels)
GL_ENTRY(void, glReleaseShaderCompiler, void)
GL_ENTRY(void, glRenderbufferStorage, GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
GL_ENTRY(void, glSampleCoverage, GLfloat value, GLboolean invert)
GL_ENTRY(void, glScissor, GLint x, GLint y, GLsizei width, GLsizei height)
GL_ENTRY(void, glShaderBinary, GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length)
GL_ENTRY(void, glShaderSource, GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length)
GL_ENTRY(void, glStencilFunc, GLenum func, GLint ref, GLuint mask)
GL_ENTRY(void, glStencilFuncSeparate, GLenum face, GLenum func, GLint ref, GLuint mask)
GL_ENTRY(void, glStencilMask, GLuint mask)
GL_ENTRY(void, glStencilMaskSeparate, GLenum face, GLuint mask)
GL_ENTRY(void, glStencilOp, GLenum fail, GLenum zfail, GLenum zpass)
GL_ENTRY(void, glStencilOpSeparate, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
GL_ENTRY(void, glTexImage2D, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)
GL_ENTRY(void, glTexParameterf, GLenum target, GLenum pname, GLfloat param)
GL_ENTRY(void, glTexParameterfv, GLenum target, GLenum pname, const GLfloat *params)
GL_ENTRY(void, glTexParameteri, GLenum target, GLenum pname, GLint param)
GL_ENTRY(void, glTexParameteriv, GLenum target, GLenum pname, const GLint *params)
GL_ENTRY(void, glTexSubImage2D, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)
GL_ENTRY(void, glUniform1f, GLint location, GLfloat v0)
GL_ENTRY(void, glUniform1fv, GLint location, GLsizei count, const GLfloat *value)
GL_ENTRY(void, glUniform1i, GLint location, GLint v0)
GL_ENTRY(void, glUniform1iv, GLint location, GLsizei count, const GLint *value)
GL_ENTRY(void, glUniform2f, GLint location, GLfloat v0, GLfloat v1)
GL_ENTRY(void, glUniform2fv, GLint location, GLsizei count, const GLfloat *value)
GL_ENTRY(void, glUniform2i, GLint location, GLint v0, GLint v1)
GL_ENTRY(void, glUniform2iv, GLint location, GLsizei count, const GLint *value)
GL_ENTRY(void, glUniform3f, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
GL_ENTRY(void, glUniform3fv, GLint location, GLsizei count, const GLfloat *value)
GL_ENTRY(void, glUniform3i, GLint location, GLint v0, GLint v1, GLint v2)
GL_ENTRY(void, glUniform3iv, GLint location, GLsizei count, const GLint *value)
GL_ENTRY(void, glUniform4f, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
GL_ENTRY(void, glUniform4fv, GLint location, GLsizei count, const GLfloat *value)
GL_ENTRY(void, glUniform4i, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
GL_ENTRY(void, glUniform4iv, GLint location, GLsizei count, const GLint *value)
GL_ENTRY(void, glUniformMatrix2fv, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glUniformMatrix3fv, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glUniformMatrix4fv, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glUseProgram, GLuint program)
GL_ENTRY(void, glValidateProgram, GLuint program)
GL_ENTRY(void, glVertexAttrib1f, GLuint index, GLfloat x)
GL_ENTRY(void, glVertexAttrib1fv, GLuint index, const GLfloat *v)
GL_ENTRY(void, glVertexAttrib2f, GLuint index, GLfloat x, GLfloat y)
GL_ENTRY(void, glVertexAttrib2fv, GLuint index, const GLfloat *v)
GL_ENTRY(void, glVertexAttrib3f, GLuint index, GLfloat x, GLfloat y, GLfloat z)
GL_ENTRY(void, glVertexAttrib3fv, GLuint index, const GLfloat *v)
GL_ENTRY(void, glVertexAttrib4f, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
GL_ENTRY(void, glVertexAttrib4fv, GLuint index, const GLfloat *v)
GL_ENTRY(void, glVertexAttribPointer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer)
GL_ENTRY(void, glViewport, GLint x, GLint y, GLsizei width, GLsizei height)
GL_ENTRY(void, glReadBuffer, GLenum src)
GL_ENTRY(void, glDrawRangeElements, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices)
GL_ENTRY(void, glTexImage3D, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)
GL_ENTRY(void, glTexSubImage3D, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)
GL_ENTRY(void, glCopyTexSubImage3D, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
GL_ENTRY(void, glCompressedTexImage3D, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)
GL_ENTRY(void, glCompressedTexSubImage3D, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)
GL_ENTRY(void, glGenQueries, GLsizei n, GLuint *ids)
GL_ENTRY(void, glDeleteQueries, GLsizei n, const GLuint *ids)
GL_ENTRY(GLboolean, glIsQuery, GLuint id)
GL_ENTRY(void, glBeginQuery, GLenum target, GLuint id)
GL_ENTRY(void, glEndQuery, GLenum target)
GL_ENTRY(void, glGetQueryiv, GLenum target, GLenum pname, GLint *params)
GL_ENTRY(void, glGetQueryObjectuiv, GLuint id, GLenum pname, GLuint *params)
GL_ENTRY(GLboolean, glUnmapBuffer, GLenum target)
GL_ENTRY(void, glGetBufferPointerv, GLenum target, GLenum pname, void **params)
GL_ENTRY(void, glDrawBuffers, GLsizei n, const GLenum *bufs)
GL_ENTRY(void, glUniformMatrix2x3fv, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glUniformMatrix3x2fv, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glUniformMatrix2x4fv, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glUniformMatrix4x2fv, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glUniformMatrix3x4fv, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glUniformMatrix4x3fv, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glBlitFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
GL_ENTRY(void, glRenderbufferStorageMultisample, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
GL_ENTRY(void, glFramebufferTextureLayer, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
GL_ENTRY(void *, glMapBufferRange, GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)
GL_ENTRY(void, glFlushMappedBufferRange, GLenum target, GLintptr offset, GLsizeiptr length)
GL_ENTRY(void, glBindVertexArray, GLuint array)
GL_ENTRY(void, glDeleteVertexArrays, GLsizei n, const GLuint *arrays)
GL_ENTRY(void, glGenVertexArrays, GLsizei n, GLuint *arrays)
GL_ENTRY(GLboolean, glIsVertexArray, GLuint array)
GL_ENTRY(void, glGetIntegeri_v, GLenum target, GLuint index, GLint *data)
GL_ENTRY(void, glBeginTransformFeedback, GLenum primitiveMode)
GL_ENTRY(void, glEndTransformFeedback, void)
GL_ENTRY(void, glBindBufferRange, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
GL_ENTRY(void, glBindBufferBase, GLenum target, GLuint index, GLuint buffer)
GL_ENTRY(void, glTransformFeedbackVaryings, GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode)
GL_ENTRY(void, glGetTransformFeedbackVarying, GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name)
GL_ENTRY(void, glVertexAttribIPointer, GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)
GL_ENTRY(void, glGetVertexAttribIiv, GLuint index, GLenum pname, GLint *params)
GL_ENTRY(void, glGetVertexAttribIuiv, GLuint index, GLenum pname, GLuint *params)
GL_ENTRY(void, glVertexAttribI4i, GLuint index, GLint x, GLint y, GLint z, GLint w)
GL_ENTRY(void, glVertexAttribI4ui, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
GL_ENTRY(void, glVertexAttribI4iv, GLuint index, const GLint *v)
GL_ENTRY(void, glVertexAttribI4uiv, GLuint index, const GLuint *v)
GL_ENTRY(void, glGetUniformuiv, GLuint program, GLint location, GLuint *params)
GL_ENTRY(GLint, glGetFragDataLocation, GLuint program, const GLchar *name)
GL_ENTRY(void, glUniform1ui, GLint location, GLuint v0)
GL_ENTRY(void, glUniform2ui, GLint location, GLuint v0, GLuint v1)
GL_ENTRY(void, glUniform3ui, GLint location, GLuint v0, GLuint v1, GLuint v2)
GL_ENTRY(void, glUniform4ui, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
GL_ENTRY(void, glUniform1uiv, GLint location, GLsizei count, const GLuint *value)
GL_ENTRY(void, glUniform2uiv, GLint location, GLsizei count, const GLuint *value)
GL_ENTRY(void, glUniform3uiv, GLint location, GLsizei count, const GLuint *value)
GL_ENTRY(void, glUniform4uiv, GLint location, GLsizei count, const GLuint *value)
GL_ENTRY(void, glClearBufferiv, GLenum buffer, GLint drawbuffer, const GLint *value)
GL_ENTRY(void, glClearBufferuiv, GLenum buffer, GLint drawbuffer, const GLuint *value)
GL_ENTRY(void, glClearBufferfv, GLenum buffer, GLint drawbuffer, const GLfloat *value)
GL_ENTRY(void, glClearBufferfi, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
GL_ENTRY(const GLubyte *, glGetStringi, GLenum name, GLuint index)
GL_ENTRY(void, glCopyBufferSubData, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
GL_ENTRY(void, glGetUniformIndices, GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices)
GL_ENTRY(void, glGetActiveUniformsiv, GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params)
GL_ENTRY(GLuint, glGetUniformBlockIndex, GLuint program, const GLchar *uniformBlockName)
GL_ENTRY(void, glGetActiveUniformBlockiv, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params)
GL_ENTRY(void, glGetActiveUniformBlockName, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName)
GL_ENTRY(void, glUniformBlockBinding, GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding)
GL_ENTRY(void, glDrawArraysInstanced, GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
GL_ENTRY(void, glDrawElementsInstanced, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount)
GL_ENTRY(GLsync, glFenceSync, GLenum condition, GLbitfield flags)
GL_ENTRY(GLboolean, glIsSync, GLsync sync)
GL_ENTRY(void, glDeleteSync, GLsync sync)
GL_ENTRY(GLenum, glClientWaitSync, GLsync sync, GLbitfield flags, GLuint64 timeout)
GL_ENTRY(void, glWaitSync, GLsync sync, GLbitfield flags, GLuint64 timeout)
GL_ENTRY(void, glGetInteger64v, GLenum pname, GLint64 *data)
GL_ENTRY(void, glGetSynciv, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values)
GL_ENTRY(void, glGetInteger64i_v, GLenum target, GLuint index, GLint64 *data)
GL_ENTRY(void, glGetBufferParameteri64v, GLenum target, GLenum pname, GLint64 *params)
GL_ENTRY(void, glGenSamplers, GLsizei count, GLuint *samplers)
GL_ENTRY(void, glDeleteSamplers, GLsizei count, const GLuint *samplers)
GL_ENTRY(GLboolean, glIsSampler, GLuint sampler)
GL_ENTRY(void, glBindSampler, GLuint unit, GLuint sampler)
GL_ENTRY(void, glSamplerParameteri, GLuint sampler, GLenum pname, GLint param)
GL_ENTRY(void, glSamplerParameteriv, GLuint sampler, GLenum pname, const GLint *param)
GL_ENTRY(void, glSamplerParameterf, GLuint sampler, GLenum pname, GLfloat param)
GL_ENTRY(void, glSamplerParameterfv, GLuint sampler, GLenum pname, const GLfloat *param)
GL_ENTRY(void, glGetSamplerParameteriv, GLuint sampler, GLenum pname, GLint *params)
GL_ENTRY(void, glGetSamplerParameterfv, GLuint sampler, GLenum pname, GLfloat *params)
GL_ENTRY(void, glVertexAttribDivisor, GLuint index, GLuint divisor)
GL_ENTRY(void, glBindTransformFeedback, GLenum target, GLuint id)
GL_ENTRY(void, glDeleteTransformFeedbacks, GLsizei n, const GLuint *ids)
GL_ENTRY(void, glGenTransformFeedbacks, GLsizei n, GLuint *ids)
GL_ENTRY(GLboolean, glIsTransformFeedback, GLuint id)
GL_ENTRY(void, glPauseTransformFeedback, void)
GL_ENTRY(void, glResumeTransformFeedback, void)
GL_ENTRY(void, glGetProgramBinary, GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary)
GL_ENTRY(void, glProgramBinary, GLuint program, GLenum binaryFormat, const void *binary, GLsizei length)
GL_ENTRY(void, glProgramParameteri, GLuint program, GLenum pname, GLint value)
GL_ENTRY(void, glInvalidateFramebuffer, GLenum target, GLsizei numAttachments, const GLenum *attachments)
GL_ENTRY(void, glInvalidateSubFramebuffer, GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height)
GL_ENTRY(void, glTexStorage2D, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
GL_ENTRY(void, glTexStorage3D, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
GL_ENTRY(void, glGetInternalformativ, GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params)
GL_ENTRY(void, glDispatchCompute, GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)
GL_ENTRY(void, glDispatchComputeIndirect, GLintptr indirect)
GL_ENTRY(void, glDrawArraysIndirect, GLenum mode, const void *indirect)
GL_ENTRY(void, glDrawElementsIndirect, GLenum mode, GLenum type, const void *indirect)
GL_ENTRY(void, glFramebufferParameteri, GLenum target, GLenum pname, GLint param)
GL_ENTRY(void, glGetFramebufferParameteriv, GLenum target, GLenum pname, GLint *params)
GL_ENTRY(void, glGetProgramInterfaceiv, GLuint program, GLenum programInterface, GLenum pname, GLint *params)
GL_ENTRY(GLuint, glGetProgramResourceIndex, GLuint program, GLenum programInterface, const GLchar *name)
GL_ENTRY(void, glGetProgramResourceName, GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name)
GL_ENTRY(void, glGetProgramResourceiv, GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params)
GL_ENTRY(GLint, glGetProgramResourceLocation, GLuint program, GLenum programInterface, const GLchar *name)
GL_ENTRY(void, glUseProgramStages, GLuint pipeline, GLbitfield stages, GLuint program)
GL_ENTRY(void, glActiveShaderProgram, GLuint pipeline, GLuint program)
GL_ENTRY(GLuint, glCreateShaderProgramv, GLenum type, GLsizei count, const GLchar *const*strings)
GL_ENTRY(void, glBindProgramPipeline, GLuint pipeline)
GL_ENTRY(void, glDeleteProgramPipelines, GLsizei n, const GLuint *pipelines)
GL_ENTRY(void, glGenProgramPipelines, GLsizei n, GLuint *pipelines)
GL_ENTRY(GLboolean, glIsProgramPipeline, GLuint pipeline)
GL_ENTRY(void, glGetProgramPipelineiv, GLuint pipeline, GLenum pname, GLint *params)
GL_ENTRY(void, glProgramUniform1i, GLuint program, GLint location, GLint v0)
GL_ENTRY(void, glProgramUniform2i, GLuint program, GLint location, GLint v0, GLint v1)
GL_ENTRY(void, glProgramUniform3i, GLuint program, GLint location, GLint v0, GLint v1, GLint v2)
GL_ENTRY(void, glProgramUniform4i, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
GL_ENTRY(void, glProgramUniform1ui, GLuint program, GLint location, GLuint v0)
GL_ENTRY(void, glProgramUniform2ui, GLuint program, GLint location, GLuint v0, GLuint v1)
GL_ENTRY(void, glProgramUniform3ui, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)
GL_ENTRY(void, glProgramUniform4ui, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
GL_ENTRY(void, glProgramUniform1f, GLuint program, GLint location, GLfloat v0)
GL_ENTRY(void, glProgramUniform2f, GLuint program, GLint location, GLfloat v0, GLfloat v1)
GL_ENTRY(void, glProgramUniform3f, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
GL_ENTRY(void, glProgramUniform4f, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
GL_ENTRY(void, glProgramUniform1iv, GLuint program, GLint location, GLsizei count, const GLint *value)
GL_ENTRY(void, glProgramUniform2iv, GLuint program, GLint location, GLsizei count, const GLint *value)
GL_ENTRY(void, glProgramUniform3iv, GLuint program, GLint location, GLsizei count, const GLint *value)
GL_ENTRY(void, glProgramUniform4iv, GLuint program, GLint location, GLsizei count, const GLint *value)
GL_ENTRY(void, glProgramUniform1uiv, GLuint program, GLint location, GLsizei count, const GLuint *value)
GL_ENTRY(void, glProgramUniform2uiv, GLuint program, GLint location, GLsizei count, const GLuint *value)
GL_ENTRY(void, glProgramUniform3uiv, GLuint program, GLint location, GLsizei count, const GLuint *value)
GL_ENTRY(void, glProgramUniform4uiv, GLuint program, GLint location, GLsizei count, const GLuint *value)
GL_ENTRY(void, glProgramUniform1fv, GLuint program, GLint location, GLsizei count, const GLfloat *value)
GL_ENTRY(void, glProgramUniform2fv, GLuint program, GLint location, GLsizei count, const GLfloat *value)
GL_ENTRY(void, glProgramUniform3fv, GLuint program, GLint location, GLsizei count, const GLfloat *value)
GL_ENTRY(void, glProgramUniform4fv, GLuint program, GLint location, GLsizei count, const GLfloat *value)
GL_ENTRY(void, glProgramUniformMatrix2fv, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glProgramUniformMatrix3fv, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glProgramUniformMatrix4fv, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glProgramUniformMatrix2x3fv, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glProgramUniformMatrix3x2fv, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glProgramUniformMatrix2x4fv, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glProgramUniformMatrix4x2fv, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glProgramUniformMatrix3x4fv, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glProgramUniformMatrix4x3fv, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glValidateProgramPipeline, GLuint pipeline)
GL_ENTRY(void, glGetProgramPipelineInfoLog, GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog)
GL_ENTRY(void, glBindImageTexture, GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)
GL_ENTRY(void, glGetBooleani_v, GLenum target, GLuint index, GLboolean *data)
GL_ENTRY(void, glMemoryBarrier, GLbitfield barriers)
GL_ENTRY(void, glMemoryBarrierByRegion, GLbitfield barriers)
GL_ENTRY(void, glTexStorage2DMultisample, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
GL_ENTRY(void, glGetMultisamplefv, GLenum pname, GLuint index, GLfloat *val)
GL_ENTRY(void, glSampleMaski, GLuint maskNumber, GLbitfield mask)
GL_ENTRY(void, glGetTexLevelParameteriv, GLenum target, GLint level, GLenum pname, GLint *params)
GL_ENTRY(void, glGetTexLevelParameterfv, GLenum target, GLint level, GLenum pname, GLfloat *params)
GL_ENTRY(void, glBindVertexBuffer, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)
GL_ENTRY(void, glVertexAttribFormat, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)
GL_ENTRY(void, glVertexAttribIFormat, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
GL_ENTRY(void, glVertexAttribBinding, GLuint attribindex, GLuint bindingindex)
GL_ENTRY(void, glVertexBindingDivisor, GLuint bindingindex, GLuint divisor)
GL_ENTRY(void, glBlendBarrier, void)
GL_ENTRY(void, glCopyImageSubData, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)
GL_ENTRY(void, glDebugMessageControl, GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled)
GL_ENTRY(void, glDebugMessageInsert, GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf)
GL_ENTRY(void, glDebugMessageCallback, GLDEBUGPROC callback, const void *userParam)
GL_ENTRY(GLuint, glGetDebugMessageLog, GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog)
GL_ENTRY(void, glPushDebugGroup, GLenum source, GLuint id, GLsizei length, const GLchar *message)
GL_ENTRY(void, glPopDebugGroup, void)
GL_ENTRY(void, glObjectLabel, GLenum identifier, GLuint name, GLsizei length, const GLchar *label)
GL_ENTRY(void, glGetObjectLabel, GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)
GL_ENTRY(void, glObjectPtrLabel, const void *ptr, GLsizei length, const GLchar *label)
GL_ENTRY(void, glGetObjectPtrLabel, const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label)
GL_ENTRY(void, glGetPointerv, GLenum pname, void **params)
GL_ENTRY(void, glEnablei, GLenum target, GLuint index)
GL_ENTRY(void, glDisablei, GLenum target, GLuint index)
GL_ENTRY(void, glBlendEquationi, GLuint buf, GLenum mode)
GL_ENTRY(void, glBlendEquationSeparatei, GLuint buf, GLenum modeRGB, GLenum modeAlpha)
GL_ENTRY(void, glBlendFunci, GLuint buf, GLenum src, GLenum dst)
GL_ENTRY(void, glBlendFuncSeparatei, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
GL_ENTRY(void, glColorMaski, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
GL_ENTRY(GLboolean, glIsEnabledi, GLenum target, GLuint index)
GL_ENTRY(void, glDrawElementsBaseVertex, GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex)
GL_ENTRY(void, glDrawRangeElementsBaseVertex, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex)
GL_ENTRY(void, glDrawElementsInstancedBaseVertex, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex)
GL_ENTRY(void, glFramebufferTexture, GLenum target, GLenum attachment, GLuint texture, GLint level)
GL_ENTRY(void, glPrimitiveBoundingBox, GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW)
GL_ENTRY(GLenum, glGetGraphicsResetStatus, void)
GL_ENTRY(void, glReadnPixels, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data)
GL_ENTRY(void, glGetnUniformfv, GLuint program, GLint location, GLsizei bufSize, GLfloat *params)
GL_ENTRY(void, glGetnUniformiv, GLuint program, GLint location, GLsizei bufSize, GLint *params)
GL_ENTRY(void, glGetnUniformuiv, GLuint program, GLint location, GLsizei bufSize, GLuint *params)
GL_ENTRY(void, glMinSampleShading, GLfloat value)
GL_ENTRY(void, glPatchParameteri, GLenum pname, GLint value)
GL_ENTRY(void, glTexParameterIiv, GLenum target, GLenum pname, const GLint *params)
GL_ENTRY(void, glTexParameterIuiv, GLenum target, GLenum pname, const GLuint *params)
GL_ENTRY(void, glGetTexParameterIiv, GLenum target, GLenum pname, GLint *params)
GL_ENTRY(void, glGetTexParameterIuiv, GLenum target, GLenum pname, GLuint *params)
GL_ENTRY(void, glSamplerParameterIiv, GLuint sampler, GLenum pname, const GLint *param)
GL_ENTRY(void, glSamplerParameterIuiv, GLuint sampler, GLenum pname, const GLuint *param)
GL_ENTRY(void, glGetSamplerParameterIiv, GLuint sampler, GLenum pname, GLint *params)
GL_ENTRY(void, glGetSamplerParameterIuiv, GLuint sampler, GLenum pname, GLuint *params)
GL_ENTRY(void, glTexBuffer, GLenum target, GLenum internalformat, GLuint buffer)
GL_ENTRY(void, glTexBufferRange, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)
GL_ENTRY(void, glTexStorage3DMultisample, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
GL_ENTRY(void, glBlendBarrierKHR, void)
GL_ENTRY(void, glDebugMessageControlKHR, GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled)
GL_ENTRY(void, glDebugMessageInsertKHR, GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf)
GL_ENTRY(void, glDebugMessageCallbackKHR, GLDEBUGPROCKHR callback, const void *userParam)
GL_ENTRY(GLuint, glGetDebugMessageLogKHR, GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog)
GL_ENTRY(void, glPushDebugGroupKHR, GLenum source, GLuint id, GLsizei length, const GLchar *message)
GL_ENTRY(void, glPopDebugGroupKHR, void)
GL_ENTRY(void, glObjectLabelKHR, GLenum identifier, GLuint name, GLsizei length, const GLchar *label)
GL_ENTRY(void, glGetObjectLabelKHR, GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)
GL_ENTRY(void, glObjectPtrLabelKHR, const void *ptr, GLsizei length, const GLchar *label)
GL_ENTRY(void, glGetObjectPtrLabelKHR, const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label)
GL_ENTRY(void, glGetPointervKHR, GLenum pname, void **params)
GL_ENTRY(GLenum, glGetGraphicsResetStatusKHR, void)
GL_ENTRY(void, glReadnPixelsKHR, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data)
GL_ENTRY(void, glGetnUniformfvKHR, GLuint program, GLint location, GLsizei bufSize, GLfloat *params)
GL_ENTRY(void, glGetnUniformivKHR, GLuint program, GLint location, GLsizei bufSize, GLint *params)
GL_ENTRY(void, glGetnUniformuivKHR, GLuint program, GLint location, GLsizei bufSize, GLuint *params)
GL_ENTRY(void, glEGLImageTargetTexture2DOES, GLenum target, GLeglImageOES image)
GL_ENTRY(void, glEGLImageTargetRenderbufferStorageOES, GLenum target, GLeglImageOES image)
GL_ENTRY(void, glCopyImageSubDataOES, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)
GL_ENTRY(void, glEnableiOES, GLenum target, GLuint index)
GL_ENTRY(void, glDisableiOES, GLenum target, GLuint index)
GL_ENTRY(void, glBlendEquationiOES, GLuint buf, GLenum mode)
GL_ENTRY(void, glBlendEquationSeparateiOES, GLuint buf, GLenum modeRGB, GLenum modeAlpha)
GL_ENTRY(void, glBlendFunciOES, GLuint buf, GLenum src, GLenum dst)
GL_ENTRY(void, glBlendFuncSeparateiOES, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
GL_ENTRY(void, glColorMaskiOES, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
GL_ENTRY(GLboolean, glIsEnablediOES, GLenum target, GLuint index)
GL_ENTRY(void, glDrawElementsBaseVertexOES, GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex)
GL_ENTRY(void, glDrawRangeElementsBaseVertexOES, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex)
GL_ENTRY(void, glDrawElementsInstancedBaseVertexOES, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex)
GL_ENTRY(void, glMultiDrawElementsBaseVertexOES, GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, const GLint *basevertex)
GL_ENTRY(void, glFramebufferTextureOES, GLenum target, GLenum attachment, GLuint texture, GLint level)
GL_ENTRY(void, glGetProgramBinaryOES, GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary)
GL_ENTRY(void, glProgramBinaryOES, GLuint program, GLenum binaryFormat, const void *binary, GLint length)
GL_ENTRY(void *, glMapBufferOES, GLenum target, GLenum access)
GL_ENTRY(GLboolean, glUnmapBufferOES, GLenum target)
GL_ENTRY(void, glGetBufferPointervOES, GLenum target, GLenum pname, void **params)
GL_ENTRY(void, glPrimitiveBoundingBoxOES, GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW)
GL_ENTRY(void, glMinSampleShadingOES, GLfloat value)
GL_ENTRY(void, glPatchParameteriOES, GLenum pname, GLint value)
GL_ENTRY(void, glTexImage3DOES, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)
GL_ENTRY(void, glTexSubImage3DOES, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)
GL_ENTRY(void, glCopyTexSubImage3DOES, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
GL_ENTRY(void, glCompressedTexImage3DOES, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)
GL_ENTRY(void, glCompressedTexSubImage3DOES, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)
GL_ENTRY(void, glFramebufferTexture3DOES, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
GL_ENTRY(void, glTexParameterIivOES, GLenum target, GLenum pname, const GLint *params)
GL_ENTRY(void, glTexParameterIuivOES, GLenum target, GLenum pname, const GLuint *params)
GL_ENTRY(void, glGetTexParameterIivOES, GLenum target, GLenum pname, GLint *params)
GL_ENTRY(void, glGetTexParameterIuivOES, GLenum target, GLenum pname, GLuint *params)
GL_ENTRY(void, glSamplerParameterIivOES, GLuint sampler, GLenum pname, const GLint *param)
GL_ENTRY(void, glSamplerParameterIuivOES, GLuint sampler, GLenum pname, const GLuint *param)
GL_ENTRY(void, glGetSamplerParameterIivOES, GLuint sampler, GLenum pname, GLint *params)
GL_ENTRY(void, glGetSamplerParameterIuivOES, GLuint sampler, GLenum pname, GLuint *params)
GL_ENTRY(void, glTexBufferOES, GLenum target, GLenum internalformat, GLuint buffer)
GL_ENTRY(void, glTexBufferRangeOES, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)
GL_ENTRY(void, glTexStorage3DMultisampleOES, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
GL_ENTRY(void, glTextureViewOES, GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers)
GL_ENTRY(void, glBindVertexArrayOES, GLuint array)
GL_ENTRY(void, glDeleteVertexArraysOES, GLsizei n, const GLuint *arrays)
GL_ENTRY(void, glGenVertexArraysOES, GLsizei n, GLuint *arrays)
GL_ENTRY(GLboolean, glIsVertexArrayOES, GLuint array)
GL_ENTRY(void, glDrawArraysInstancedBaseInstanceEXT, GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance)
GL_ENTRY(void, glDrawElementsInstancedBaseInstanceEXT, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance)
GL_ENTRY(void, glDrawElementsInstancedBaseVertexBaseInstanceEXT, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance)
GL_ENTRY(void, glBindFragDataLocationIndexedEXT, GLuint program, GLuint colorNumber, GLuint index, const GLchar *name)
GL_ENTRY(void, glBindFragDataLocationEXT, GLuint program, GLuint color, const GLchar *name)
GL_ENTRY(GLint, glGetProgramResourceLocationIndexEXT, GLuint program, GLenum programInterface, const GLchar *name)
GL_ENTRY(GLint, glGetFragDataIndexEXT, GLuint program, const GLchar *name)
GL_ENTRY(void, glBufferStorageEXT, GLenum target, GLsizeiptr size, const void *data, GLbitfield flags)
GL_ENTRY(void, glCopyImageSubDataEXT, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)
GL_ENTRY(void, glLabelObjectEXT, GLenum type, GLuint object, GLsizei length, const GLchar *label)
GL_ENTRY(void, glGetObjectLabelEXT, GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label)
GL_ENTRY(void, glInsertEventMarkerEXT, GLsizei length, const GLchar *marker)
GL_ENTRY(void, glPushGroupMarkerEXT, GLsizei length, const GLchar *marker)
GL_ENTRY(void, glPopGroupMarkerEXT, void)
GL_ENTRY(void, glDiscardFramebufferEXT, GLenum target, GLsizei numAttachments, const GLenum *attachments)
GL_ENTRY(void, glGenQueriesEXT, GLsizei n, GLuint *ids)
GL_ENTRY(void, glDeleteQueriesEXT, GLsizei n, const GLuint *ids)
GL_ENTRY(GLboolean, glIsQueryEXT, GLuint id)
GL_ENTRY(void, glBeginQueryEXT, GLenum target, GLuint id)
GL_ENTRY(void, glEndQueryEXT, GLenum target)
GL_ENTRY(void, glQueryCounterEXT, GLuint id, GLenum target)
GL_ENTRY(void, glGetQueryivEXT, GLenum target, GLenum pname, GLint *params)
GL_ENTRY(void, glGetQueryObjectivEXT, GLuint id, GLenum pname, GLint *params)
GL_ENTRY(void, glGetQueryObjectuivEXT, GLuint id, GLenum pname, GLuint *params)
GL_ENTRY(void, glGetQueryObjecti64vEXT, GLuint id, GLenum pname, GLint64 *params)
GL_ENTRY(void, glGetQueryObjectui64vEXT, GLuint id, GLenum pname, GLuint64 *params)
GL_ENTRY(void, glDrawBuffersEXT, GLsizei n, const GLenum *bufs)
GL_ENTRY(void, glEnableiEXT, GLenum target, GLuint index)
GL_ENTRY(void, glDisableiEXT, GLenum target, GLuint index)
GL_ENTRY(void, glBlendEquationiEXT, GLuint buf, GLenum mode)
GL_ENTRY(void, glBlendEquationSeparateiEXT, GLuint buf, GLenum modeRGB, GLenum modeAlpha)
GL_ENTRY(void, glBlendFunciEXT, GLuint buf, GLenum src, GLenum dst)
GL_ENTRY(void, glBlendFuncSeparateiEXT, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
GL_ENTRY(void, glColorMaskiEXT, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
GL_ENTRY(GLboolean, glIsEnablediEXT, GLenum target, GLuint index)
GL_ENTRY(void, glDrawElementsBaseVertexEXT, GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex)
GL_ENTRY(void, glDrawRangeElementsBaseVertexEXT, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex)
GL_ENTRY(void, glDrawElementsInstancedBaseVertexEXT, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex)
GL_ENTRY(void, glMultiDrawElementsBaseVertexEXT, GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, const GLint *basevertex)
GL_ENTRY(void, glDrawArraysInstancedEXT, GLenum mode, GLint start, GLsizei count, GLsizei primcount)
GL_ENTRY(void, glDrawElementsInstancedEXT, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount)
GL_ENTRY(void, glFramebufferTextureEXT, GLenum target, GLenum attachment, GLuint texture, GLint level)
GL_ENTRY(void, glVertexAttribDivisorEXT, GLuint index, GLuint divisor)
GL_ENTRY(void *, glMapBufferRangeEXT, GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)
GL_ENTRY(void, glFlushMappedBufferRangeEXT, GLenum target, GLintptr offset, GLsizeiptr length)
GL_ENTRY(void, glMultiDrawArraysEXT, GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount)
GL_ENTRY(void, glMultiDrawElementsEXT, GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount)
GL_ENTRY(void, glMultiDrawArraysIndirectEXT, GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride)
GL_ENTRY(void, glMultiDrawElementsIndirectEXT, GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride)
GL_ENTRY(void, glRenderbufferStorageMultisampleEXT, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
GL_ENTRY(void, glFramebufferTexture2DMultisampleEXT, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
GL_ENTRY(void, glReadBufferIndexedEXT, GLenum src, GLint index)
GL_ENTRY(void, glDrawBuffersIndexedEXT, GLint n, const GLenum *location, const GLint *indices)
GL_ENTRY(void, glGetIntegeri_vEXT, GLenum target, GLuint index, GLint *data)
GL_ENTRY(void, glPrimitiveBoundingBoxEXT, GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW)
GL_ENTRY(void, glRasterSamplesEXT, GLuint samples, GLboolean fixedsamplelocations)
GL_ENTRY(GLenum, glGetGraphicsResetStatusEXT, void)
GL_ENTRY(void, glReadnPixelsEXT, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data)
GL_ENTRY(void, glGetnUniformfvEXT, GLuint program, GLint location, GLsizei bufSize, GLfloat *params)
GL_ENTRY(void, glGetnUniformivEXT, GLuint program, GLint location, GLsizei bufSize, GLint *params)
GL_ENTRY(void, glActiveShaderProgramEXT, GLuint pipeline, GLuint program)
GL_ENTRY(void, glBindProgramPipelineEXT, GLuint pipeline)
GL_ENTRY(GLuint, glCreateShaderProgramvEXT, GLenum type, GLsizei count, const GLchar **strings)
GL_ENTRY(void, glDeleteProgramPipelinesEXT, GLsizei n, const GLuint *pipelines)
GL_ENTRY(void, glGenProgramPipelinesEXT, GLsizei n, GLuint *pipelines)
GL_ENTRY(void, glGetProgramPipelineInfoLogEXT, GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog)
GL_ENTRY(void, glGetProgramPipelineivEXT, GLuint pipeline, GLenum pname, GLint *params)
GL_ENTRY(GLboolean, glIsProgramPipelineEXT, GLuint pipeline)
GL_ENTRY(void, glProgramParameteriEXT, GLuint program, GLenum pname, GLint value)
GL_ENTRY(void, glProgramUniform1fEXT, GLuint program, GLint location, GLfloat v0)
GL_ENTRY(void, glProgramUniform1fvEXT, GLuint program, GLint location, GLsizei count, const GLfloat *value)
GL_ENTRY(void, glProgramUniform1iEXT, GLuint program, GLint location, GLint v0)
GL_ENTRY(void, glProgramUniform1ivEXT, GLuint program, GLint location, GLsizei count, const GLint *value)
GL_ENTRY(void, glProgramUniform2fEXT, GLuint program, GLint location, GLfloat v0, GLfloat v1)
GL_ENTRY(void, glProgramUniform2fvEXT, GLuint program, GLint location, GLsizei count, const GLfloat *value)
GL_ENTRY(void, glProgramUniform2iEXT, GLuint program, GLint location, GLint v0, GLint v1)
GL_ENTRY(void, glProgramUniform2ivEXT, GLuint program, GLint location, GLsizei count, const GLint *value)
GL_ENTRY(void, glProgramUniform3fEXT, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
GL_ENTRY(void, glProgramUniform3fvEXT, GLuint program, GLint location, GLsizei count, const GLfloat *value)
GL_ENTRY(void, glProgramUniform3iEXT, GLuint program, GLint location, GLint v0, GLint v1, GLint v2)
GL_ENTRY(void, glProgramUniform3ivEXT, GLuint program, GLint location, GLsizei count, const GLint *value)
GL_ENTRY(void, glProgramUniform4fEXT, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
GL_ENTRY(void, glProgramUniform4fvEXT, GLuint program, GLint location, GLsizei count, const GLfloat *value)
GL_ENTRY(void, glProgramUniform4iEXT, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
GL_ENTRY(void, glProgramUniform4ivEXT, GLuint program, GLint location, GLsizei count, const GLint *value)
GL_ENTRY(void, glProgramUniformMatrix2fvEXT, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glProgramUniformMatrix3fvEXT, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glProgramUniformMatrix4fvEXT, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glUseProgramStagesEXT, GLuint pipeline, GLbitfield stages, GLuint program)
GL_ENTRY(void, glValidateProgramPipelineEXT, GLuint pipeline)
GL_ENTRY(void, glProgramUniform1uiEXT, GLuint program, GLint location, GLuint v0)
GL_ENTRY(void, glProgramUniform2uiEXT, GLuint program, GLint location, GLuint v0, GLuint v1)
GL_ENTRY(void, glProgramUniform3uiEXT, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)
GL_ENTRY(void, glProgramUniform4uiEXT, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
GL_ENTRY(void, glProgramUniform1uivEXT, GLuint program, GLint location, GLsizei count, const GLuint *value)
GL_ENTRY(void, glProgramUniform2uivEXT, GLuint program, GLint location, GLsizei count, const GLuint *value)
GL_ENTRY(void, glProgramUniform3uivEXT, GLuint program, GLint location, GLsizei count, const GLuint *value)
GL_ENTRY(void, glProgramUniform4uivEXT, GLuint program, GLint location, GLsizei count, const GLuint *value)
GL_ENTRY(void, glProgramUniformMatrix2x3fvEXT, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glProgramUniformMatrix3x2fvEXT, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glProgramUniformMatrix2x4fvEXT, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glProgramUniformMatrix4x2fvEXT, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glProgramUniformMatrix3x4fvEXT, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glProgramUniformMatrix4x3fvEXT, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
GL_ENTRY(void, glTexPageCommitmentEXT, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit)
GL_ENTRY(void, glPatchParameteriEXT, GLenum pname, GLint value)
GL_ENTRY(void, glTexParameterIivEXT, GLenum target, GLenum pname, const GLint *params)
GL_ENTRY(void, glTexParameterIuivEXT, GLenum target, GLenum pname, const GLuint *params)
GL_ENTRY(void, glGetTexParameterIivEXT, GLenum target, GLenum pname, GLint *params)
GL_ENTRY(void, glGetTexParameterIuivEXT, GLenum target, GLenum pname, GLuint *params)
GL_ENTRY(void, glSamplerParameterIivEXT, GLuint sampler, GLenum pname, const GLint *param)
GL_ENTRY(void, glSamplerParameterIuivEXT, GLuint sampler, GLenum pname, const GLuint *param)
GL_ENTRY(void, glGetSamplerParameterIivEXT, GLuint sampler, GLenum pname, GLint *params)
GL_ENTRY(void, glGetSamplerParameterIuivEXT, GLuint sampler, GLenum pname, GLuint *params)
GL_ENTRY(void, glTexBufferEXT, GLenum target, GLenum internalformat, GLuint buffer)
GL_ENTRY(void, glTexBufferRangeEXT, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)
GL_ENTRY(void, glTexStorage1DEXT, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)
GL_ENTRY(void, glTexStorage2DEXT, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
GL_ENTRY(void, glTexStorage3DEXT, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
GL_ENTRY(void, glTextureStorage1DEXT, GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)
GL_ENTRY(void, glTextureStorage2DEXT, GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
GL_ENTRY(void, glTextureStorage3DEXT, GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
GL_ENTRY(void, glTextureViewEXT, GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers)

File diff suppressed because it is too large Load Diff

View File

@@ -14,9 +14,6 @@
* limitations under the License.
*/
#ifdef HWUI_GLES_WRAP_ENABLED
#undef HWUI_GLES_WRAP_ENABLED
#undef glActiveShaderProgram
#undef glActiveShaderProgramEXT
#undef glActiveTexture
@@ -914,5 +911,3 @@
#undef glWaitSyncAPPLE
#undef glWeightPathsNV
#undef glWeightPointerOES
#endif // HWUI_GLES_WRAP_ENABLED

View File

@@ -1,284 +0,0 @@
/*
* Copyright(C) 2015 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0(the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "unwrap_gles.h"
#include <GLES3/gl3.h>
#include <GLES2/gl2ext.h>
#include <stdlib.h>
#include <string.h>
struct {
GLboolean scissorEnabled;
} gState;
void glGenCommon(GLsizei n, GLuint *buffers) {
static GLuint nextId = 0;
int i;
for(i = 0; i < n; i++) {
buffers[i] = ++nextId;
}
}
void glGenBuffers(GLsizei n, GLuint *buffers) {
glGenCommon(n, buffers);
}
void glGenFramebuffers(GLsizei n, GLuint *framebuffers) {
glGenCommon(n, framebuffers);
}
void glGenRenderbuffers(GLsizei n, GLuint *renderbuffers) {
glGenCommon(n, renderbuffers);
}
void glGenTextures(GLsizei n, GLuint *textures) {
glGenCommon(n, textures);
}
GLuint glCreateProgram(void) {
static GLuint nextProgram = 0;
return ++nextProgram;
}
GLuint glCreateShader(GLenum type) {
static GLuint nextShader = 0;
return ++nextShader;
}
void glGetProgramiv(GLuint program, GLenum pname, GLint *params) {
switch (pname) {
case GL_DELETE_STATUS:
case GL_LINK_STATUS:
case GL_VALIDATE_STATUS:
*params = GL_TRUE;
break;
case GL_INFO_LOG_LENGTH:
*params = 16;
break;
}
}
void glGetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog) {
*length = snprintf(infoLog, bufSize, "success");
if (*length >= bufSize) {
*length = bufSize - 1;
}
}
void glGetShaderiv(GLuint shader, GLenum pname, GLint *params) {
switch (pname) {
case GL_COMPILE_STATUS:
case GL_DELETE_STATUS:
*params = GL_TRUE;
}
}
void glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog) {
*length = snprintf(infoLog, bufSize, "success");
if (*length >= bufSize) {
*length = bufSize - 1;
}
}
void setBooleanState(GLenum cap, GLboolean value) {
switch (cap) {
case GL_SCISSOR_TEST:
gState.scissorEnabled = value;
break;
}
}
void glEnable(GLenum cap) {
setBooleanState(cap, GL_TRUE);
}
void glDisable(GLenum cap) {
setBooleanState(cap, GL_FALSE);
}
GLboolean glIsEnabled(GLenum cap) {
switch (cap) {
case GL_SCISSOR_TEST:
return gState.scissorEnabled;
default:
return GL_FALSE;
}
}
void glGetIntegerv(GLenum pname, GLint *data) {
switch (pname) {
case GL_MAX_TEXTURE_SIZE:
*data = 2048;
break;
case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS:
*data = 4;
break;
default:
*data = 0;
}
}
GLenum glCheckFramebufferStatus(GLenum target) {
switch (target) {
case GL_FRAMEBUFFER:
return GL_FRAMEBUFFER_COMPLETE;
default:
return 0; // error case
}
}
const char* getString(GLenum name) {
switch (name) {
case GL_VENDOR:
return "android";
case GL_RENDERER:
return "null";
case GL_VERSION:
return "OpenGL ES 2.0 rev1";
case GL_SHADING_LANGUAGE_VERSION:
return "OpenGL ES GLSL ES 2.0 rev1";
case GL_EXTENSIONS:
default:
return "";
}
}
const GLubyte* glGetString(GLenum name) {
return (GLubyte*) getString(name);
}
void glActiveTexture(GLenum texture) {}
void glAttachShader(GLuint program, GLuint shader) {}
void glBindAttribLocation(GLuint program, GLuint index, const GLchar *name) {}
void glBindBuffer(GLenum target, GLuint buffer) {}
void glBindFramebuffer(GLenum target, GLuint framebuffer) {}
void glBindRenderbuffer(GLenum target, GLuint renderbuffer) {}
void glBindTexture(GLenum target, GLuint texture) {}
void glBlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {}
void glBlendEquation(GLenum mode) {}
void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) {}
void glBlendFunc(GLenum sfactor, GLenum dfactor) {}
void glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) {}
void glBufferData(GLenum target, GLsizeiptr size, const void *data, GLenum usage) {}
void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const void *data) {}
void glClear(GLbitfield mask) {}
void glClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {}
void glClearDepthf(GLfloat d) {}
void glClearStencil(GLint s) {}
void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) {}
void glCompileShader(GLuint shader) {}
void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data) {}
void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data) {}
void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {}
void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {}
void glCullFace(GLenum mode) {}
void glDeleteBuffers(GLsizei n, const GLuint *buffers) {}
void glDeleteFramebuffers(GLsizei n, const GLuint *framebuffers) {}
void glDeleteProgram(GLuint program) {}
void glDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers) {}
void glDeleteShader(GLuint shader) {}
void glDeleteTextures(GLsizei n, const GLuint *textures) {}
void glDepthFunc(GLenum func) {}
void glDepthMask(GLboolean flag) {}
void glDepthRangef(GLfloat n, GLfloat f) {}
void glDetachShader(GLuint program, GLuint shader) {}
void glDisableVertexAttribArray(GLuint index) {}
void glDrawArrays(GLenum mode, GLint first, GLsizei count) {}
void glDrawElements(GLenum mode, GLsizei count, GLenum type, const void *indices) {}
void glEnableVertexAttribArray(GLuint index) {}
void glFinish(void) {}
void glFlush(void) {}
void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) {}
void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) {}
void glFrontFace(GLenum mode) {}
void glGenerateMipmap(GLenum target) {}
GLint glGetAttribLocation(GLuint program, const GLchar *name) { return 1; }
GLenum glGetError(void) { return GL_NO_ERROR; }
GLint glGetUniformLocation(GLuint program, const GLchar *name) { return 2; }
void glHint(GLenum target, GLenum mode) {}
void glLineWidth(GLfloat width) {}
void glLinkProgram(GLuint program) {}
void glPixelStorei(GLenum pname, GLint param) {}
void glPolygonOffset(GLfloat factor, GLfloat units) {}
void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels) {}
void glReleaseShaderCompiler(void) {}
void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) {}
void glSampleCoverage(GLfloat value, GLboolean invert) {}
void glScissor(GLint x, GLint y, GLsizei width, GLsizei height) {}
void glShaderBinary(GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length) {}
void glShaderSource(GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length) {}
void glStencilFunc(GLenum func, GLint ref, GLuint mask) {}
void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) {}
void glStencilMask(GLuint mask) {}
void glStencilMaskSeparate(GLenum face, GLuint mask) {}
void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass) {}
void glStencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) {}
void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels) {}
void glTexParameterf(GLenum target, GLenum pname, GLfloat param) {}
void glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params) {}
void glTexParameteri(GLenum target, GLenum pname, GLint param) {}
void glTexParameteriv(GLenum target, GLenum pname, const GLint *params) {}
void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels) {}
void glUniform1f(GLint location, GLfloat v0) {}
void glUniform1fv(GLint location, GLsizei count, const GLfloat *value) {}
void glUniform1i(GLint location, GLint v0) {}
void glUniform1iv(GLint location, GLsizei count, const GLint *value) {}
void glUniform2f(GLint location, GLfloat v0, GLfloat v1) {}
void glUniform2fv(GLint location, GLsizei count, const GLfloat *value) {}
void glUniform2i(GLint location, GLint v0, GLint v1) {}
void glUniform2iv(GLint location, GLsizei count, const GLint *value) {}
void glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) {}
void glUniform3fv(GLint location, GLsizei count, const GLfloat *value) {}
void glUniform3i(GLint location, GLint v0, GLint v1, GLint v2) {}
void glUniform3iv(GLint location, GLsizei count, const GLint *value) {}
void glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) {}
void glUniform4fv(GLint location, GLsizei count, const GLfloat *value) {}
void glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) {}
void glUniform4iv(GLint location, GLsizei count, const GLint *value) {}
void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) {}
void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) {}
void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) {}
void glUseProgram(GLuint program) {}
void glValidateProgram(GLuint program) {}
void glVertexAttrib1f(GLuint index, GLfloat x) {}
void glVertexAttrib1fv(GLuint index, const GLfloat *v) {}
void glVertexAttrib2f(GLuint index, GLfloat x, GLfloat y) {}
void glVertexAttrib2fv(GLuint index, const GLfloat *v) {}
void glVertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z) {}
void glVertexAttrib3fv(GLuint index, const GLfloat *v) {}
void glVertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {}
void glVertexAttrib4fv(GLuint index, const GLfloat *v) {}
void glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer) {}
void glViewport(GLint x, GLint y, GLsizei width, GLsizei height) {}
// gles2 ext
void glInsertEventMarkerEXT(GLsizei length, const GLchar *marker) {}
void glPushGroupMarkerEXT(GLsizei length, const GLchar *marker) {}
void glPopGroupMarkerEXT(void) {}
void glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum *attachments) {}
void glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image) {}
// GLES3
void* glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) {
return 0;
}
GLboolean glUnmapBuffer(GLenum target) {
return GL_FALSE;
}

View File

@@ -14,80 +14,20 @@
* limitations under the License.
*/
#include "unwrap_gles.h"
#include "GlesDriver.h"
#include <EGL/egl.h>
#include <EGL/eglext.h>
#include <GLES/gl.h>
#include <GLES/glext.h>
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#include <GLES3/gl3.h>
#include <GLES3/gl31.h>
#include <GLES3/gl32.h>
using namespace android::uirenderer::debug;
#include <cutils/log.h>
#undef API_ENTRY
#undef CALL_GL_API
#undef CALL_GL_API_RETURN
void assertNoGlErrors(const char* apicall) {
GLenum status = GL_NO_ERROR;
GLenum lastError = GL_NO_ERROR;
const char* lastErrorName = nullptr;
while ((status = glGetError()) != GL_NO_ERROR) {
lastError = status;
switch (status) {
case GL_INVALID_ENUM:
ALOGE("GL error: GL_INVALID_ENUM");
lastErrorName = "GL_INVALID_ENUM";
break;
case GL_INVALID_VALUE:
ALOGE("GL error: GL_INVALID_VALUE");
lastErrorName = "GL_INVALID_VALUE";
break;
case GL_INVALID_OPERATION:
ALOGE("GL error: GL_INVALID_OPERATION");
lastErrorName = "GL_INVALID_OPERATION";
break;
case GL_OUT_OF_MEMORY:
ALOGE("GL error: Out of memory!");
lastErrorName = "GL_OUT_OF_MEMORY";
break;
default:
ALOGE("GL error: 0x%x", status);
lastErrorName = "UNKNOWN";
}
}
LOG_ALWAYS_FATAL_IF(lastError != GL_NO_ERROR,
"%s error! %s (0x%x)", apicall, lastErrorName, lastError);
}
#define API_ENTRY(x) x
#define CALL_GL_API(api, ...) GlesDriver::get()->api##_(__VA_ARGS__)
#define CALL_GL_API_RETURN(api, ...) return GlesDriver::get()->api##_(__VA_ARGS__)
#define API_ENTRY(x) wrap_##x
#define CALL_GL_API(x, ...) x(__VA_ARGS__); assertNoGlErrors(#x)
#define CALL_GL_API_RETURN(x, ...) auto ret = x(__VA_ARGS__);\
assertNoGlErrors(#x);\
return ret
#include "gles_stubs.in"
extern "C" {
#include <gl2_api.in>
#include <gl2ext_api.in>
// libGLESv2 handles these specially, so they are not in gl2_api.in
void API_ENTRY(glGetBooleanv)(GLenum pname, GLboolean *data) {
CALL_GL_API(glGetBooleanv, pname, data);
}
void API_ENTRY(glGetFloatv)(GLenum pname, GLfloat *data) {
CALL_GL_API(glGetFloatv, pname, data);
}
void API_ENTRY(glGetIntegerv)(GLenum pname, GLint *data) {
CALL_GL_API(glGetIntegerv, pname, data);
}
const GLubyte * API_ENTRY(glGetString)(GLenum name) {
CALL_GL_API_RETURN(glGetString, name);
}
const GLubyte * API_ENTRY(glGetStringi)(GLenum name, GLuint index) {
CALL_GL_API_RETURN(glGetStringi, name, index);
}
void API_ENTRY(glGetInteger64v)(GLenum pname, GLint64 *data) {
CALL_GL_API(glGetInteger64v, pname, data);
}
}
#undef API_ENTRY
#undef CALL_GL_API
#undef CALL_GL_API_RETURN

View File

@@ -14,905 +14,15 @@
* limitations under the License.
*/
#ifndef HWUI_GLES_WRAP_ENABLED
// #include'ing this file is bad, bad things should be compile errors
#ifdef HWUI_GLES_WRAP_ENABLED
#error wrap_gles.h should only be used as an auto-included header, don't directly #include it
#endif
#define HWUI_GLES_WRAP_ENABLED
#define glActiveShaderProgram wrap_glActiveShaderProgram
#define glActiveShaderProgramEXT wrap_glActiveShaderProgramEXT
#define glActiveTexture wrap_glActiveTexture
#define glAlphaFunc wrap_glAlphaFunc
#define glAlphaFuncQCOM wrap_glAlphaFuncQCOM
#define glAlphaFuncx wrap_glAlphaFuncx
#define glAlphaFuncxOES wrap_glAlphaFuncxOES
#define glApplyFramebufferAttachmentCMAAINTEL wrap_glApplyFramebufferAttachmentCMAAINTEL
#define glAttachShader wrap_glAttachShader
#define glBeginConditionalRenderNV wrap_glBeginConditionalRenderNV
#define glBeginPerfMonitorAMD wrap_glBeginPerfMonitorAMD
#define glBeginPerfQueryINTEL wrap_glBeginPerfQueryINTEL
#define glBeginQuery wrap_glBeginQuery
#define glBeginQueryEXT wrap_glBeginQueryEXT
#define glBeginTransformFeedback wrap_glBeginTransformFeedback
#define glBindAttribLocation wrap_glBindAttribLocation
#define glBindBuffer wrap_glBindBuffer
#define glBindBufferBase wrap_glBindBufferBase
#define glBindBufferRange wrap_glBindBufferRange
#define glBindFragDataLocationEXT wrap_glBindFragDataLocationEXT
#define glBindFragDataLocationIndexedEXT wrap_glBindFragDataLocationIndexedEXT
#define glBindFramebuffer wrap_glBindFramebuffer
#define glBindFramebufferOES wrap_glBindFramebufferOES
#define glBindImageTexture wrap_glBindImageTexture
#define glBindProgramPipeline wrap_glBindProgramPipeline
#define glBindProgramPipelineEXT wrap_glBindProgramPipelineEXT
#define glBindRenderbuffer wrap_glBindRenderbuffer
#define glBindRenderbufferOES wrap_glBindRenderbufferOES
#define glBindSampler wrap_glBindSampler
#define glBindTexture wrap_glBindTexture
#define glBindTransformFeedback wrap_glBindTransformFeedback
#define glBindVertexArray wrap_glBindVertexArray
#define glBindVertexArrayOES wrap_glBindVertexArrayOES
#define glBindVertexBuffer wrap_glBindVertexBuffer
#define glBlendBarrier wrap_glBlendBarrier
#define glBlendBarrierKHR wrap_glBlendBarrierKHR
#define glBlendBarrierNV wrap_glBlendBarrierNV
#define glBlendColor wrap_glBlendColor
#define glBlendEquation wrap_glBlendEquation
#define glBlendEquationOES wrap_glBlendEquationOES
#define glBlendEquationSeparate wrap_glBlendEquationSeparate
#define glBlendEquationSeparateOES wrap_glBlendEquationSeparateOES
#define glBlendEquationSeparatei wrap_glBlendEquationSeparatei
#define glBlendEquationSeparateiEXT wrap_glBlendEquationSeparateiEXT
#define glBlendEquationSeparateiOES wrap_glBlendEquationSeparateiOES
#define glBlendEquationi wrap_glBlendEquationi
#define glBlendEquationiEXT wrap_glBlendEquationiEXT
#define glBlendEquationiOES wrap_glBlendEquationiOES
#define glBlendFunc wrap_glBlendFunc
#define glBlendFuncSeparate wrap_glBlendFuncSeparate
#define glBlendFuncSeparateOES wrap_glBlendFuncSeparateOES
#define glBlendFuncSeparatei wrap_glBlendFuncSeparatei
#define glBlendFuncSeparateiEXT wrap_glBlendFuncSeparateiEXT
#define glBlendFuncSeparateiOES wrap_glBlendFuncSeparateiOES
#define glBlendFunci wrap_glBlendFunci
#define glBlendFunciEXT wrap_glBlendFunciEXT
#define glBlendFunciOES wrap_glBlendFunciOES
#define glBlendParameteriNV wrap_glBlendParameteriNV
#define glBlitFramebuffer wrap_glBlitFramebuffer
#define glBlitFramebufferANGLE wrap_glBlitFramebufferANGLE
#define glBlitFramebufferNV wrap_glBlitFramebufferNV
#define glBufferData wrap_glBufferData
#define glBufferStorageEXT wrap_glBufferStorageEXT
#define glBufferSubData wrap_glBufferSubData
#define glCheckFramebufferStatus wrap_glCheckFramebufferStatus
#define glCheckFramebufferStatusOES wrap_glCheckFramebufferStatusOES
#define glClear wrap_glClear
#define glClearBufferfi wrap_glClearBufferfi
#define glClearBufferfv wrap_glClearBufferfv
#define glClearBufferiv wrap_glClearBufferiv
#define glClearBufferuiv wrap_glClearBufferuiv
#define glClearColor wrap_glClearColor
#define glClearColorx wrap_glClearColorx
#define glClearColorxOES wrap_glClearColorxOES
#define glClearDepthf wrap_glClearDepthf
#define glClearDepthfOES wrap_glClearDepthfOES
#define glClearDepthx wrap_glClearDepthx
#define glClearDepthxOES wrap_glClearDepthxOES
#define glClearStencil wrap_glClearStencil
#define glClientActiveTexture wrap_glClientActiveTexture
#define glClientWaitSync wrap_glClientWaitSync
#define glClientWaitSyncAPPLE wrap_glClientWaitSyncAPPLE
#define glClipPlanef wrap_glClipPlanef
#define glClipPlanefIMG wrap_glClipPlanefIMG
#define glClipPlanefOES wrap_glClipPlanefOES
#define glClipPlanex wrap_glClipPlanex
#define glClipPlanexIMG wrap_glClipPlanexIMG
#define glClipPlanexOES wrap_glClipPlanexOES
#define glColor4f wrap_glColor4f
#define glColor4ub wrap_glColor4ub
#define glColor4x wrap_glColor4x
#define glColor4xOES wrap_glColor4xOES
#define glColorMask wrap_glColorMask
#define glColorMaski wrap_glColorMaski
#define glColorMaskiEXT wrap_glColorMaskiEXT
#define glColorMaskiOES wrap_glColorMaskiOES
#define glColorPointer wrap_glColorPointer
#define glCompileShader wrap_glCompileShader
#define glCompressedTexImage2D wrap_glCompressedTexImage2D
#define glCompressedTexImage3D wrap_glCompressedTexImage3D
#define glCompressedTexImage3DOES wrap_glCompressedTexImage3DOES
#define glCompressedTexSubImage2D wrap_glCompressedTexSubImage2D
#define glCompressedTexSubImage3D wrap_glCompressedTexSubImage3D
#define glCompressedTexSubImage3DOES wrap_glCompressedTexSubImage3DOES
#define glCopyBufferSubData wrap_glCopyBufferSubData
#define glCopyBufferSubDataNV wrap_glCopyBufferSubDataNV
#define glCopyImageSubData wrap_glCopyImageSubData
#define glCopyImageSubDataEXT wrap_glCopyImageSubDataEXT
#define glCopyImageSubDataOES wrap_glCopyImageSubDataOES
#define glCopyPathNV wrap_glCopyPathNV
#define glCopyTexImage2D wrap_glCopyTexImage2D
#define glCopyTexSubImage2D wrap_glCopyTexSubImage2D
#define glCopyTexSubImage3D wrap_glCopyTexSubImage3D
#define glCopyTexSubImage3DOES wrap_glCopyTexSubImage3DOES
#define glCopyTextureLevelsAPPLE wrap_glCopyTextureLevelsAPPLE
#define glCoverFillPathInstancedNV wrap_glCoverFillPathInstancedNV
#define glCoverFillPathNV wrap_glCoverFillPathNV
#define glCoverStrokePathInstancedNV wrap_glCoverStrokePathInstancedNV
#define glCoverStrokePathNV wrap_glCoverStrokePathNV
#define glCoverageMaskNV wrap_glCoverageMaskNV
#define glCoverageModulationNV wrap_glCoverageModulationNV
#define glCoverageModulationTableNV wrap_glCoverageModulationTableNV
#define glCoverageOperationNV wrap_glCoverageOperationNV
#define glCreatePerfQueryINTEL wrap_glCreatePerfQueryINTEL
#define glCreateProgram wrap_glCreateProgram
#define glCreateShader wrap_glCreateShader
#define glCreateShaderProgramv wrap_glCreateShaderProgramv
#define glCreateShaderProgramvEXT wrap_glCreateShaderProgramvEXT
#define glCullFace wrap_glCullFace
#define glCurrentPaletteMatrixOES wrap_glCurrentPaletteMatrixOES
#define glDebugMessageCallback wrap_glDebugMessageCallback
#define glDebugMessageCallbackKHR wrap_glDebugMessageCallbackKHR
#define glDebugMessageControl wrap_glDebugMessageControl
#define glDebugMessageControlKHR wrap_glDebugMessageControlKHR
#define glDebugMessageInsert wrap_glDebugMessageInsert
#define glDebugMessageInsertKHR wrap_glDebugMessageInsertKHR
#define glDeleteBuffers wrap_glDeleteBuffers
#define glDeleteFencesNV wrap_glDeleteFencesNV
#define glDeleteFramebuffers wrap_glDeleteFramebuffers
#define glDeleteFramebuffersOES wrap_glDeleteFramebuffersOES
#define glDeletePathsNV wrap_glDeletePathsNV
#define glDeletePerfMonitorsAMD wrap_glDeletePerfMonitorsAMD
#define glDeletePerfQueryINTEL wrap_glDeletePerfQueryINTEL
#define glDeleteProgram wrap_glDeleteProgram
#define glDeleteProgramPipelines wrap_glDeleteProgramPipelines
#define glDeleteProgramPipelinesEXT wrap_glDeleteProgramPipelinesEXT
#define glDeleteQueries wrap_glDeleteQueries
#define glDeleteQueriesEXT wrap_glDeleteQueriesEXT
#define glDeleteRenderbuffers wrap_glDeleteRenderbuffers
#define glDeleteRenderbuffersOES wrap_glDeleteRenderbuffersOES
#define glDeleteSamplers wrap_glDeleteSamplers
#define glDeleteShader wrap_glDeleteShader
#define glDeleteSync wrap_glDeleteSync
#define glDeleteSyncAPPLE wrap_glDeleteSyncAPPLE
#define glDeleteTextures wrap_glDeleteTextures
#define glDeleteTransformFeedbacks wrap_glDeleteTransformFeedbacks
#define glDeleteVertexArrays wrap_glDeleteVertexArrays
#define glDeleteVertexArraysOES wrap_glDeleteVertexArraysOES
#define glDepthFunc wrap_glDepthFunc
#define glDepthMask wrap_glDepthMask
#define glDepthRangeArrayfvNV wrap_glDepthRangeArrayfvNV
#define glDepthRangeIndexedfNV wrap_glDepthRangeIndexedfNV
#define glDepthRangef wrap_glDepthRangef
#define glDepthRangefOES wrap_glDepthRangefOES
#define glDepthRangex wrap_glDepthRangex
#define glDepthRangexOES wrap_glDepthRangexOES
#define glDetachShader wrap_glDetachShader
#define glDisable wrap_glDisable
#define glDisableClientState wrap_glDisableClientState
#define glDisableDriverControlQCOM wrap_glDisableDriverControlQCOM
#define glDisableVertexAttribArray wrap_glDisableVertexAttribArray
#define glDisablei wrap_glDisablei
#define glDisableiEXT wrap_glDisableiEXT
#define glDisableiNV wrap_glDisableiNV
#define glDisableiOES wrap_glDisableiOES
#define glDiscardFramebufferEXT wrap_glDiscardFramebufferEXT
#define glDispatchCompute wrap_glDispatchCompute
#define glDispatchComputeIndirect wrap_glDispatchComputeIndirect
#define glDrawArrays wrap_glDrawArrays
#define glDrawArraysIndirect wrap_glDrawArraysIndirect
#define glDrawArraysInstanced wrap_glDrawArraysInstanced
#define glDrawArraysInstancedANGLE wrap_glDrawArraysInstancedANGLE
#define glDrawArraysInstancedBaseInstanceEXT wrap_glDrawArraysInstancedBaseInstanceEXT
#define glDrawArraysInstancedEXT wrap_glDrawArraysInstancedEXT
#define glDrawArraysInstancedNV wrap_glDrawArraysInstancedNV
#define glDrawBuffers wrap_glDrawBuffers
#define glDrawBuffersEXT wrap_glDrawBuffersEXT
#define glDrawBuffersIndexedEXT wrap_glDrawBuffersIndexedEXT
#define glDrawBuffersNV wrap_glDrawBuffersNV
#define glDrawElements wrap_glDrawElements
#define glDrawElementsBaseVertex wrap_glDrawElementsBaseVertex
#define glDrawElementsBaseVertexEXT wrap_glDrawElementsBaseVertexEXT
#define glDrawElementsBaseVertexOES wrap_glDrawElementsBaseVertexOES
#define glDrawElementsIndirect wrap_glDrawElementsIndirect
#define glDrawElementsInstanced wrap_glDrawElementsInstanced
#define glDrawElementsInstancedANGLE wrap_glDrawElementsInstancedANGLE
#define glDrawElementsInstancedBaseInstanceEXT wrap_glDrawElementsInstancedBaseInstanceEXT
#define glDrawElementsInstancedBaseVertex wrap_glDrawElementsInstancedBaseVertex
#define glDrawElementsInstancedBaseVertexBaseInstanceEXT wrap_glDrawElementsInstancedBaseVertexBaseInstanceEXT
#define glDrawElementsInstancedBaseVertexEXT wrap_glDrawElementsInstancedBaseVertexEXT
#define glDrawElementsInstancedBaseVertexOES wrap_glDrawElementsInstancedBaseVertexOES
#define glDrawElementsInstancedEXT wrap_glDrawElementsInstancedEXT
#define glDrawElementsInstancedNV wrap_glDrawElementsInstancedNV
#define glDrawRangeElements wrap_glDrawRangeElements
#define glDrawRangeElementsBaseVertex wrap_glDrawRangeElementsBaseVertex
#define glDrawRangeElementsBaseVertexEXT wrap_glDrawRangeElementsBaseVertexEXT
#define glDrawRangeElementsBaseVertexOES wrap_glDrawRangeElementsBaseVertexOES
#define glDrawTexfOES wrap_glDrawTexfOES
#define glDrawTexfvOES wrap_glDrawTexfvOES
#define glDrawTexiOES wrap_glDrawTexiOES
#define glDrawTexivOES wrap_glDrawTexivOES
#define glDrawTexsOES wrap_glDrawTexsOES
#define glDrawTexsvOES wrap_glDrawTexsvOES
#define glDrawTexxOES wrap_glDrawTexxOES
#define glDrawTexxvOES wrap_glDrawTexxvOES
#define glEGLImageTargetRenderbufferStorageOES wrap_glEGLImageTargetRenderbufferStorageOES
#define glEGLImageTargetTexture2DOES wrap_glEGLImageTargetTexture2DOES
#define glEnable wrap_glEnable
#define glEnableClientState wrap_glEnableClientState
#define glEnableDriverControlQCOM wrap_glEnableDriverControlQCOM
#define glEnableVertexAttribArray wrap_glEnableVertexAttribArray
#define glEnablei wrap_glEnablei
#define glEnableiEXT wrap_glEnableiEXT
#define glEnableiNV wrap_glEnableiNV
#define glEnableiOES wrap_glEnableiOES
#define glEndConditionalRenderNV wrap_glEndConditionalRenderNV
#define glEndPerfMonitorAMD wrap_glEndPerfMonitorAMD
#define glEndPerfQueryINTEL wrap_glEndPerfQueryINTEL
#define glEndQuery wrap_glEndQuery
#define glEndQueryEXT wrap_glEndQueryEXT
#define glEndTilingQCOM wrap_glEndTilingQCOM
#define glEndTransformFeedback wrap_glEndTransformFeedback
#define glExtGetBufferPointervQCOM wrap_glExtGetBufferPointervQCOM
#define glExtGetBuffersQCOM wrap_glExtGetBuffersQCOM
#define glExtGetFramebuffersQCOM wrap_glExtGetFramebuffersQCOM
#define glExtGetProgramBinarySourceQCOM wrap_glExtGetProgramBinarySourceQCOM
#define glExtGetProgramsQCOM wrap_glExtGetProgramsQCOM
#define glExtGetRenderbuffersQCOM wrap_glExtGetRenderbuffersQCOM
#define glExtGetShadersQCOM wrap_glExtGetShadersQCOM
#define glExtGetTexLevelParameterivQCOM wrap_glExtGetTexLevelParameterivQCOM
#define glExtGetTexSubImageQCOM wrap_glExtGetTexSubImageQCOM
#define glExtGetTexturesQCOM wrap_glExtGetTexturesQCOM
#define glExtIsProgramBinaryQCOM wrap_glExtIsProgramBinaryQCOM
#define glExtTexObjectStateOverrideiQCOM wrap_glExtTexObjectStateOverrideiQCOM
#define glFenceSync wrap_glFenceSync
#define glFenceSyncAPPLE wrap_glFenceSyncAPPLE
#define glFinish wrap_glFinish
#define glFinishFenceNV wrap_glFinishFenceNV
#define glFlush wrap_glFlush
#define glFlushMappedBufferRange wrap_glFlushMappedBufferRange
#define glFlushMappedBufferRangeEXT wrap_glFlushMappedBufferRangeEXT
#define glFogf wrap_glFogf
#define glFogfv wrap_glFogfv
#define glFogx wrap_glFogx
#define glFogxOES wrap_glFogxOES
#define glFogxv wrap_glFogxv
#define glFogxvOES wrap_glFogxvOES
#define glFragmentCoverageColorNV wrap_glFragmentCoverageColorNV
#define glFramebufferParameteri wrap_glFramebufferParameteri
#define glFramebufferRenderbuffer wrap_glFramebufferRenderbuffer
#define glFramebufferRenderbufferOES wrap_glFramebufferRenderbufferOES
#define glFramebufferSampleLocationsfvNV wrap_glFramebufferSampleLocationsfvNV
#define glFramebufferTexture wrap_glFramebufferTexture
#define glFramebufferTexture2D wrap_glFramebufferTexture2D
#define glFramebufferTexture2DMultisampleEXT wrap_glFramebufferTexture2DMultisampleEXT
#define glFramebufferTexture2DMultisampleIMG wrap_glFramebufferTexture2DMultisampleIMG
#define glFramebufferTexture2DOES wrap_glFramebufferTexture2DOES
#define glFramebufferTexture3DOES wrap_glFramebufferTexture3DOES
#define glFramebufferTextureEXT wrap_glFramebufferTextureEXT
#define glFramebufferTextureLayer wrap_glFramebufferTextureLayer
#define glFramebufferTextureMultisampleMultiviewOVR wrap_glFramebufferTextureMultisampleMultiviewOVR
#define glFramebufferTextureMultiviewOVR wrap_glFramebufferTextureMultiviewOVR
#define glFramebufferTextureOES wrap_glFramebufferTextureOES
#define glFrontFace wrap_glFrontFace
#define glFrustumf wrap_glFrustumf
#define glFrustumfOES wrap_glFrustumfOES
#define glFrustumx wrap_glFrustumx
#define glFrustumxOES wrap_glFrustumxOES
#define glGenBuffers wrap_glGenBuffers
#define glGenFencesNV wrap_glGenFencesNV
#define glGenFramebuffers wrap_glGenFramebuffers
#define glGenFramebuffersOES wrap_glGenFramebuffersOES
#define glGenPathsNV wrap_glGenPathsNV
#define glGenPerfMonitorsAMD wrap_glGenPerfMonitorsAMD
#define glGenProgramPipelines wrap_glGenProgramPipelines
#define glGenProgramPipelinesEXT wrap_glGenProgramPipelinesEXT
#define glGenQueries wrap_glGenQueries
#define glGenQueriesEXT wrap_glGenQueriesEXT
#define glGenRenderbuffers wrap_glGenRenderbuffers
#define glGenRenderbuffersOES wrap_glGenRenderbuffersOES
#define glGenSamplers wrap_glGenSamplers
#define glGenTextures wrap_glGenTextures
#define glGenTransformFeedbacks wrap_glGenTransformFeedbacks
#define glGenVertexArrays wrap_glGenVertexArrays
#define glGenVertexArraysOES wrap_glGenVertexArraysOES
#define glGenerateMipmap wrap_glGenerateMipmap
#define glGenerateMipmapOES wrap_glGenerateMipmapOES
#define glGetActiveAttrib wrap_glGetActiveAttrib
#define glGetActiveUniform wrap_glGetActiveUniform
#define glGetActiveUniformBlockName wrap_glGetActiveUniformBlockName
#define glGetActiveUniformBlockiv wrap_glGetActiveUniformBlockiv
#define glGetActiveUniformsiv wrap_glGetActiveUniformsiv
#define glGetAttachedShaders wrap_glGetAttachedShaders
#define glGetAttribLocation wrap_glGetAttribLocation
#define glGetBooleani_v wrap_glGetBooleani_v
#define glGetBooleanv wrap_glGetBooleanv
#define glGetBufferParameteri64v wrap_glGetBufferParameteri64v
#define glGetBufferParameteriv wrap_glGetBufferParameteriv
#define glGetBufferPointerv wrap_glGetBufferPointerv
#define glGetBufferPointervOES wrap_glGetBufferPointervOES
#define glGetClipPlanef wrap_glGetClipPlanef
#define glGetClipPlanefOES wrap_glGetClipPlanefOES
#define glGetClipPlanex wrap_glGetClipPlanex
#define glGetClipPlanexOES wrap_glGetClipPlanexOES
#define glGetCoverageModulationTableNV wrap_glGetCoverageModulationTableNV
#define glGetDebugMessageLog wrap_glGetDebugMessageLog
#define glGetDebugMessageLogKHR wrap_glGetDebugMessageLogKHR
#define glGetDriverControlStringQCOM wrap_glGetDriverControlStringQCOM
#define glGetDriverControlsQCOM wrap_glGetDriverControlsQCOM
#define glGetError wrap_glGetError
#define glGetFenceivNV wrap_glGetFenceivNV
#define glGetFirstPerfQueryIdINTEL wrap_glGetFirstPerfQueryIdINTEL
#define glGetFixedv wrap_glGetFixedv
#define glGetFixedvOES wrap_glGetFixedvOES
#define glGetFloati_vNV wrap_glGetFloati_vNV
#define glGetFloatv wrap_glGetFloatv
#define glGetFragDataIndexEXT wrap_glGetFragDataIndexEXT
#define glGetFragDataLocation wrap_glGetFragDataLocation
#define glGetFramebufferAttachmentParameteriv wrap_glGetFramebufferAttachmentParameteriv
#define glGetFramebufferAttachmentParameterivOES wrap_glGetFramebufferAttachmentParameterivOES
#define glGetFramebufferParameteriv wrap_glGetFramebufferParameteriv
#define glGetGraphicsResetStatus wrap_glGetGraphicsResetStatus
#define glGetGraphicsResetStatusEXT wrap_glGetGraphicsResetStatusEXT
#define glGetGraphicsResetStatusKHR wrap_glGetGraphicsResetStatusKHR
#define glGetImageHandleNV wrap_glGetImageHandleNV
#define glGetInteger64i_v wrap_glGetInteger64i_v
#define glGetInteger64v wrap_glGetInteger64v
#define glGetInteger64vAPPLE wrap_glGetInteger64vAPPLE
#define glGetIntegeri_v wrap_glGetIntegeri_v
#define glGetIntegeri_vEXT wrap_glGetIntegeri_vEXT
#define glGetIntegerv wrap_glGetIntegerv
#define glGetInternalformatSampleivNV wrap_glGetInternalformatSampleivNV
#define glGetInternalformativ wrap_glGetInternalformativ
#define glGetLightfv wrap_glGetLightfv
#define glGetLightxv wrap_glGetLightxv
#define glGetLightxvOES wrap_glGetLightxvOES
#define glGetMaterialfv wrap_glGetMaterialfv
#define glGetMaterialxv wrap_glGetMaterialxv
#define glGetMaterialxvOES wrap_glGetMaterialxvOES
#define glGetMultisamplefv wrap_glGetMultisamplefv
#define glGetNextPerfQueryIdINTEL wrap_glGetNextPerfQueryIdINTEL
#define glGetObjectLabel wrap_glGetObjectLabel
#define glGetObjectLabelEXT wrap_glGetObjectLabelEXT
#define glGetObjectLabelKHR wrap_glGetObjectLabelKHR
#define glGetObjectPtrLabel wrap_glGetObjectPtrLabel
#define glGetObjectPtrLabelKHR wrap_glGetObjectPtrLabelKHR
#define glGetPathCommandsNV wrap_glGetPathCommandsNV
#define glGetPathCoordsNV wrap_glGetPathCoordsNV
#define glGetPathDashArrayNV wrap_glGetPathDashArrayNV
#define glGetPathLengthNV wrap_glGetPathLengthNV
#define glGetPathMetricRangeNV wrap_glGetPathMetricRangeNV
#define glGetPathMetricsNV wrap_glGetPathMetricsNV
#define glGetPathParameterfvNV wrap_glGetPathParameterfvNV
#define glGetPathParameterivNV wrap_glGetPathParameterivNV
#define glGetPathSpacingNV wrap_glGetPathSpacingNV
#define glGetPerfCounterInfoINTEL wrap_glGetPerfCounterInfoINTEL
#define glGetPerfMonitorCounterDataAMD wrap_glGetPerfMonitorCounterDataAMD
#define glGetPerfMonitorCounterInfoAMD wrap_glGetPerfMonitorCounterInfoAMD
#define glGetPerfMonitorCounterStringAMD wrap_glGetPerfMonitorCounterStringAMD
#define glGetPerfMonitorCountersAMD wrap_glGetPerfMonitorCountersAMD
#define glGetPerfMonitorGroupStringAMD wrap_glGetPerfMonitorGroupStringAMD
#define glGetPerfMonitorGroupsAMD wrap_glGetPerfMonitorGroupsAMD
#define glGetPerfQueryDataINTEL wrap_glGetPerfQueryDataINTEL
#define glGetPerfQueryIdByNameINTEL wrap_glGetPerfQueryIdByNameINTEL
#define glGetPerfQueryInfoINTEL wrap_glGetPerfQueryInfoINTEL
#define glGetPointerv wrap_glGetPointerv
#define glGetPointervKHR wrap_glGetPointervKHR
#define glGetProgramBinary wrap_glGetProgramBinary
#define glGetProgramBinaryOES wrap_glGetProgramBinaryOES
#define glGetProgramInfoLog wrap_glGetProgramInfoLog
#define glGetProgramInterfaceiv wrap_glGetProgramInterfaceiv
#define glGetProgramPipelineInfoLog wrap_glGetProgramPipelineInfoLog
#define glGetProgramPipelineInfoLogEXT wrap_glGetProgramPipelineInfoLogEXT
#define glGetProgramPipelineiv wrap_glGetProgramPipelineiv
#define glGetProgramPipelineivEXT wrap_glGetProgramPipelineivEXT
#define glGetProgramResourceIndex wrap_glGetProgramResourceIndex
#define glGetProgramResourceLocation wrap_glGetProgramResourceLocation
#define glGetProgramResourceLocationIndexEXT wrap_glGetProgramResourceLocationIndexEXT
#define glGetProgramResourceName wrap_glGetProgramResourceName
#define glGetProgramResourcefvNV wrap_glGetProgramResourcefvNV
#define glGetProgramResourceiv wrap_glGetProgramResourceiv
#define glGetProgramiv wrap_glGetProgramiv
#define glGetQueryObjecti64vEXT wrap_glGetQueryObjecti64vEXT
#define glGetQueryObjectivEXT wrap_glGetQueryObjectivEXT
#define glGetQueryObjectui64vEXT wrap_glGetQueryObjectui64vEXT
#define glGetQueryObjectuiv wrap_glGetQueryObjectuiv
#define glGetQueryObjectuivEXT wrap_glGetQueryObjectuivEXT
#define glGetQueryiv wrap_glGetQueryiv
#define glGetQueryivEXT wrap_glGetQueryivEXT
#define glGetRenderbufferParameteriv wrap_glGetRenderbufferParameteriv
#define glGetRenderbufferParameterivOES wrap_glGetRenderbufferParameterivOES
#define glGetSamplerParameterIiv wrap_glGetSamplerParameterIiv
#define glGetSamplerParameterIivEXT wrap_glGetSamplerParameterIivEXT
#define glGetSamplerParameterIivOES wrap_glGetSamplerParameterIivOES
#define glGetSamplerParameterIuiv wrap_glGetSamplerParameterIuiv
#define glGetSamplerParameterIuivEXT wrap_glGetSamplerParameterIuivEXT
#define glGetSamplerParameterIuivOES wrap_glGetSamplerParameterIuivOES
#define glGetSamplerParameterfv wrap_glGetSamplerParameterfv
#define glGetSamplerParameteriv wrap_glGetSamplerParameteriv
#define glGetShaderInfoLog wrap_glGetShaderInfoLog
#define glGetShaderPrecisionFormat wrap_glGetShaderPrecisionFormat
#define glGetShaderSource wrap_glGetShaderSource
#define glGetShaderiv wrap_glGetShaderiv
#define glGetString wrap_glGetString
#define glGetStringi wrap_glGetStringi
#define glGetSynciv wrap_glGetSynciv
#define glGetSyncivAPPLE wrap_glGetSyncivAPPLE
#define glGetTexEnvfv wrap_glGetTexEnvfv
#define glGetTexEnviv wrap_glGetTexEnviv
#define glGetTexEnvxv wrap_glGetTexEnvxv
#define glGetTexEnvxvOES wrap_glGetTexEnvxvOES
#define glGetTexGenfvOES wrap_glGetTexGenfvOES
#define glGetTexGenivOES wrap_glGetTexGenivOES
#define glGetTexGenxvOES wrap_glGetTexGenxvOES
#define glGetTexLevelParameterfv wrap_glGetTexLevelParameterfv
#define glGetTexLevelParameteriv wrap_glGetTexLevelParameteriv
#define glGetTexParameterIiv wrap_glGetTexParameterIiv
#define glGetTexParameterIivEXT wrap_glGetTexParameterIivEXT
#define glGetTexParameterIivOES wrap_glGetTexParameterIivOES
#define glGetTexParameterIuiv wrap_glGetTexParameterIuiv
#define glGetTexParameterIuivEXT wrap_glGetTexParameterIuivEXT
#define glGetTexParameterIuivOES wrap_glGetTexParameterIuivOES
#define glGetTexParameterfv wrap_glGetTexParameterfv
#define glGetTexParameteriv wrap_glGetTexParameteriv
#define glGetTexParameterxv wrap_glGetTexParameterxv
#define glGetTexParameterxvOES wrap_glGetTexParameterxvOES
#define glGetTextureHandleNV wrap_glGetTextureHandleNV
#define glGetTextureSamplerHandleNV wrap_glGetTextureSamplerHandleNV
#define glGetTransformFeedbackVarying wrap_glGetTransformFeedbackVarying
#define glGetTranslatedShaderSourceANGLE wrap_glGetTranslatedShaderSourceANGLE
#define glGetUniformBlockIndex wrap_glGetUniformBlockIndex
#define glGetUniformIndices wrap_glGetUniformIndices
#define glGetUniformLocation wrap_glGetUniformLocation
#define glGetUniformfv wrap_glGetUniformfv
#define glGetUniformiv wrap_glGetUniformiv
#define glGetUniformuiv wrap_glGetUniformuiv
#define glGetVertexAttribIiv wrap_glGetVertexAttribIiv
#define glGetVertexAttribIuiv wrap_glGetVertexAttribIuiv
#define glGetVertexAttribPointerv wrap_glGetVertexAttribPointerv
#define glGetVertexAttribfv wrap_glGetVertexAttribfv
#define glGetVertexAttribiv wrap_glGetVertexAttribiv
#define glGetnUniformfv wrap_glGetnUniformfv
#define glGetnUniformfvEXT wrap_glGetnUniformfvEXT
#define glGetnUniformfvKHR wrap_glGetnUniformfvKHR
#define glGetnUniformiv wrap_glGetnUniformiv
#define glGetnUniformivEXT wrap_glGetnUniformivEXT
#define glGetnUniformivKHR wrap_glGetnUniformivKHR
#define glGetnUniformuiv wrap_glGetnUniformuiv
#define glGetnUniformuivKHR wrap_glGetnUniformuivKHR
#define glHint wrap_glHint
#define glInsertEventMarkerEXT wrap_glInsertEventMarkerEXT
#define glInterpolatePathsNV wrap_glInterpolatePathsNV
#define glInvalidateFramebuffer wrap_glInvalidateFramebuffer
#define glInvalidateSubFramebuffer wrap_glInvalidateSubFramebuffer
#define glIsBuffer wrap_glIsBuffer
#define glIsEnabled wrap_glIsEnabled
#define glIsEnabledi wrap_glIsEnabledi
#define glIsEnablediEXT wrap_glIsEnablediEXT
#define glIsEnablediNV wrap_glIsEnablediNV
#define glIsEnablediOES wrap_glIsEnablediOES
#define glIsFenceNV wrap_glIsFenceNV
#define glIsFramebuffer wrap_glIsFramebuffer
#define glIsFramebufferOES wrap_glIsFramebufferOES
#define glIsImageHandleResidentNV wrap_glIsImageHandleResidentNV
#define glIsPathNV wrap_glIsPathNV
#define glIsPointInFillPathNV wrap_glIsPointInFillPathNV
#define glIsPointInStrokePathNV wrap_glIsPointInStrokePathNV
#define glIsProgram wrap_glIsProgram
#define glIsProgramPipeline wrap_glIsProgramPipeline
#define glIsProgramPipelineEXT wrap_glIsProgramPipelineEXT
#define glIsQuery wrap_glIsQuery
#define glIsQueryEXT wrap_glIsQueryEXT
#define glIsRenderbuffer wrap_glIsRenderbuffer
#define glIsRenderbufferOES wrap_glIsRenderbufferOES
#define glIsSampler wrap_glIsSampler
#define glIsShader wrap_glIsShader
#define glIsSync wrap_glIsSync
#define glIsSyncAPPLE wrap_glIsSyncAPPLE
#define glIsTexture wrap_glIsTexture
#define glIsTextureHandleResidentNV wrap_glIsTextureHandleResidentNV
#define glIsTransformFeedback wrap_glIsTransformFeedback
#define glIsVertexArray wrap_glIsVertexArray
#define glIsVertexArrayOES wrap_glIsVertexArrayOES
#define glLabelObjectEXT wrap_glLabelObjectEXT
#define glLightModelf wrap_glLightModelf
#define glLightModelfv wrap_glLightModelfv
#define glLightModelx wrap_glLightModelx
#define glLightModelxOES wrap_glLightModelxOES
#define glLightModelxv wrap_glLightModelxv
#define glLightModelxvOES wrap_glLightModelxvOES
#define glLightf wrap_glLightf
#define glLightfv wrap_glLightfv
#define glLightx wrap_glLightx
#define glLightxOES wrap_glLightxOES
#define glLightxv wrap_glLightxv
#define glLightxvOES wrap_glLightxvOES
#define glLineWidth wrap_glLineWidth
#define glLineWidthx wrap_glLineWidthx
#define glLineWidthxOES wrap_glLineWidthxOES
#define glLinkProgram wrap_glLinkProgram
#define glLoadIdentity wrap_glLoadIdentity
#define glLoadMatrixf wrap_glLoadMatrixf
#define glLoadMatrixx wrap_glLoadMatrixx
#define glLoadMatrixxOES wrap_glLoadMatrixxOES
#define glLoadPaletteFromModelViewMatrixOES wrap_glLoadPaletteFromModelViewMatrixOES
#define glLogicOp wrap_glLogicOp
#define glMakeImageHandleNonResidentNV wrap_glMakeImageHandleNonResidentNV
#define glMakeImageHandleResidentNV wrap_glMakeImageHandleResidentNV
#define glMakeTextureHandleNonResidentNV wrap_glMakeTextureHandleNonResidentNV
#define glMakeTextureHandleResidentNV wrap_glMakeTextureHandleResidentNV
#define glMapBufferOES wrap_glMapBufferOES
#define glMapBufferRange wrap_glMapBufferRange
#define glMapBufferRangeEXT wrap_glMapBufferRangeEXT
#define glMaterialf wrap_glMaterialf
#define glMaterialfv wrap_glMaterialfv
#define glMaterialx wrap_glMaterialx
#define glMaterialxOES wrap_glMaterialxOES
#define glMaterialxv wrap_glMaterialxv
#define glMaterialxvOES wrap_glMaterialxvOES
#define glMatrixIndexPointerOES wrap_glMatrixIndexPointerOES
#define glMatrixLoad3x2fNV wrap_glMatrixLoad3x2fNV
#define glMatrixLoad3x3fNV wrap_glMatrixLoad3x3fNV
#define glMatrixLoadTranspose3x3fNV wrap_glMatrixLoadTranspose3x3fNV
#define glMatrixMode wrap_glMatrixMode
#define glMatrixMult3x2fNV wrap_glMatrixMult3x2fNV
#define glMatrixMult3x3fNV wrap_glMatrixMult3x3fNV
#define glMatrixMultTranspose3x3fNV wrap_glMatrixMultTranspose3x3fNV
#define glMemoryBarrier wrap_glMemoryBarrier
#define glMemoryBarrierByRegion wrap_glMemoryBarrierByRegion
#define glMinSampleShading wrap_glMinSampleShading
#define glMinSampleShadingOES wrap_glMinSampleShadingOES
#define glMultMatrixf wrap_glMultMatrixf
#define glMultMatrixx wrap_glMultMatrixx
#define glMultMatrixxOES wrap_glMultMatrixxOES
#define glMultiDrawArraysEXT wrap_glMultiDrawArraysEXT
#define glMultiDrawArraysIndirectEXT wrap_glMultiDrawArraysIndirectEXT
#define glMultiDrawElementsBaseVertexEXT wrap_glMultiDrawElementsBaseVertexEXT
#define glMultiDrawElementsBaseVertexOES wrap_glMultiDrawElementsBaseVertexOES
#define glMultiDrawElementsEXT wrap_glMultiDrawElementsEXT
#define glMultiDrawElementsIndirectEXT wrap_glMultiDrawElementsIndirectEXT
#define glMultiTexCoord4f wrap_glMultiTexCoord4f
#define glMultiTexCoord4x wrap_glMultiTexCoord4x
#define glMultiTexCoord4xOES wrap_glMultiTexCoord4xOES
#define glNamedFramebufferSampleLocationsfvNV wrap_glNamedFramebufferSampleLocationsfvNV
#define glNormal3f wrap_glNormal3f
#define glNormal3x wrap_glNormal3x
#define glNormal3xOES wrap_glNormal3xOES
#define glNormalPointer wrap_glNormalPointer
#define glObjectLabel wrap_glObjectLabel
#define glObjectLabelKHR wrap_glObjectLabelKHR
#define glObjectPtrLabel wrap_glObjectPtrLabel
#define glObjectPtrLabelKHR wrap_glObjectPtrLabelKHR
#define glOrthof wrap_glOrthof
#define glOrthofOES wrap_glOrthofOES
#define glOrthox wrap_glOrthox
#define glOrthoxOES wrap_glOrthoxOES
#define glPatchParameteri wrap_glPatchParameteri
#define glPatchParameteriEXT wrap_glPatchParameteriEXT
#define glPatchParameteriOES wrap_glPatchParameteriOES
#define glPathCommandsNV wrap_glPathCommandsNV
#define glPathCoordsNV wrap_glPathCoordsNV
#define glPathCoverDepthFuncNV wrap_glPathCoverDepthFuncNV
#define glPathDashArrayNV wrap_glPathDashArrayNV
#define glPathGlyphIndexArrayNV wrap_glPathGlyphIndexArrayNV
#define glPathGlyphIndexRangeNV wrap_glPathGlyphIndexRangeNV
#define glPathGlyphRangeNV wrap_glPathGlyphRangeNV
#define glPathGlyphsNV wrap_glPathGlyphsNV
#define glPathMemoryGlyphIndexArrayNV wrap_glPathMemoryGlyphIndexArrayNV
#define glPathParameterfNV wrap_glPathParameterfNV
#define glPathParameterfvNV wrap_glPathParameterfvNV
#define glPathParameteriNV wrap_glPathParameteriNV
#define glPathParameterivNV wrap_glPathParameterivNV
#define glPathStencilDepthOffsetNV wrap_glPathStencilDepthOffsetNV
#define glPathStencilFuncNV wrap_glPathStencilFuncNV
#define glPathStringNV wrap_glPathStringNV
#define glPathSubCommandsNV wrap_glPathSubCommandsNV
#define glPathSubCoordsNV wrap_glPathSubCoordsNV
#define glPauseTransformFeedback wrap_glPauseTransformFeedback
#define glPixelStorei wrap_glPixelStorei
#define glPointAlongPathNV wrap_glPointAlongPathNV
#define glPointParameterf wrap_glPointParameterf
#define glPointParameterfv wrap_glPointParameterfv
#define glPointParameterx wrap_glPointParameterx
#define glPointParameterxOES wrap_glPointParameterxOES
#define glPointParameterxv wrap_glPointParameterxv
#define glPointParameterxvOES wrap_glPointParameterxvOES
#define glPointSize wrap_glPointSize
#define glPointSizePointerOES wrap_glPointSizePointerOES
#define glPointSizex wrap_glPointSizex
#define glPointSizexOES wrap_glPointSizexOES
#define glPolygonModeNV wrap_glPolygonModeNV
#define glPolygonOffset wrap_glPolygonOffset
#define glPolygonOffsetx wrap_glPolygonOffsetx
#define glPolygonOffsetxOES wrap_glPolygonOffsetxOES
#define glPopDebugGroup wrap_glPopDebugGroup
#define glPopDebugGroupKHR wrap_glPopDebugGroupKHR
#define glPopGroupMarkerEXT wrap_glPopGroupMarkerEXT
#define glPopMatrix wrap_glPopMatrix
#define glPrimitiveBoundingBox wrap_glPrimitiveBoundingBox
#define glPrimitiveBoundingBoxEXT wrap_glPrimitiveBoundingBoxEXT
#define glPrimitiveBoundingBoxOES wrap_glPrimitiveBoundingBoxOES
#define glProgramBinary wrap_glProgramBinary
#define glProgramBinaryOES wrap_glProgramBinaryOES
#define glProgramParameteri wrap_glProgramParameteri
#define glProgramParameteriEXT wrap_glProgramParameteriEXT
#define glProgramPathFragmentInputGenNV wrap_glProgramPathFragmentInputGenNV
#define glProgramUniform1f wrap_glProgramUniform1f
#define glProgramUniform1fEXT wrap_glProgramUniform1fEXT
#define glProgramUniform1fv wrap_glProgramUniform1fv
#define glProgramUniform1fvEXT wrap_glProgramUniform1fvEXT
#define glProgramUniform1i wrap_glProgramUniform1i
#define glProgramUniform1iEXT wrap_glProgramUniform1iEXT
#define glProgramUniform1iv wrap_glProgramUniform1iv
#define glProgramUniform1ivEXT wrap_glProgramUniform1ivEXT
#define glProgramUniform1ui wrap_glProgramUniform1ui
#define glProgramUniform1uiEXT wrap_glProgramUniform1uiEXT
#define glProgramUniform1uiv wrap_glProgramUniform1uiv
#define glProgramUniform1uivEXT wrap_glProgramUniform1uivEXT
#define glProgramUniform2f wrap_glProgramUniform2f
#define glProgramUniform2fEXT wrap_glProgramUniform2fEXT
#define glProgramUniform2fv wrap_glProgramUniform2fv
#define glProgramUniform2fvEXT wrap_glProgramUniform2fvEXT
#define glProgramUniform2i wrap_glProgramUniform2i
#define glProgramUniform2iEXT wrap_glProgramUniform2iEXT
#define glProgramUniform2iv wrap_glProgramUniform2iv
#define glProgramUniform2ivEXT wrap_glProgramUniform2ivEXT
#define glProgramUniform2ui wrap_glProgramUniform2ui
#define glProgramUniform2uiEXT wrap_glProgramUniform2uiEXT
#define glProgramUniform2uiv wrap_glProgramUniform2uiv
#define glProgramUniform2uivEXT wrap_glProgramUniform2uivEXT
#define glProgramUniform3f wrap_glProgramUniform3f
#define glProgramUniform3fEXT wrap_glProgramUniform3fEXT
#define glProgramUniform3fv wrap_glProgramUniform3fv
#define glProgramUniform3fvEXT wrap_glProgramUniform3fvEXT
#define glProgramUniform3i wrap_glProgramUniform3i
#define glProgramUniform3iEXT wrap_glProgramUniform3iEXT
#define glProgramUniform3iv wrap_glProgramUniform3iv
#define glProgramUniform3ivEXT wrap_glProgramUniform3ivEXT
#define glProgramUniform3ui wrap_glProgramUniform3ui
#define glProgramUniform3uiEXT wrap_glProgramUniform3uiEXT
#define glProgramUniform3uiv wrap_glProgramUniform3uiv
#define glProgramUniform3uivEXT wrap_glProgramUniform3uivEXT
#define glProgramUniform4f wrap_glProgramUniform4f
#define glProgramUniform4fEXT wrap_glProgramUniform4fEXT
#define glProgramUniform4fv wrap_glProgramUniform4fv
#define glProgramUniform4fvEXT wrap_glProgramUniform4fvEXT
#define glProgramUniform4i wrap_glProgramUniform4i
#define glProgramUniform4iEXT wrap_glProgramUniform4iEXT
#define glProgramUniform4iv wrap_glProgramUniform4iv
#define glProgramUniform4ivEXT wrap_glProgramUniform4ivEXT
#define glProgramUniform4ui wrap_glProgramUniform4ui
#define glProgramUniform4uiEXT wrap_glProgramUniform4uiEXT
#define glProgramUniform4uiv wrap_glProgramUniform4uiv
#define glProgramUniform4uivEXT wrap_glProgramUniform4uivEXT
#define glProgramUniformHandleui64NV wrap_glProgramUniformHandleui64NV
#define glProgramUniformHandleui64vNV wrap_glProgramUniformHandleui64vNV
#define glProgramUniformMatrix2fv wrap_glProgramUniformMatrix2fv
#define glProgramUniformMatrix2fvEXT wrap_glProgramUniformMatrix2fvEXT
#define glProgramUniformMatrix2x3fv wrap_glProgramUniformMatrix2x3fv
#define glProgramUniformMatrix2x3fvEXT wrap_glProgramUniformMatrix2x3fvEXT
#define glProgramUniformMatrix2x4fv wrap_glProgramUniformMatrix2x4fv
#define glProgramUniformMatrix2x4fvEXT wrap_glProgramUniformMatrix2x4fvEXT
#define glProgramUniformMatrix3fv wrap_glProgramUniformMatrix3fv
#define glProgramUniformMatrix3fvEXT wrap_glProgramUniformMatrix3fvEXT
#define glProgramUniformMatrix3x2fv wrap_glProgramUniformMatrix3x2fv
#define glProgramUniformMatrix3x2fvEXT wrap_glProgramUniformMatrix3x2fvEXT
#define glProgramUniformMatrix3x4fv wrap_glProgramUniformMatrix3x4fv
#define glProgramUniformMatrix3x4fvEXT wrap_glProgramUniformMatrix3x4fvEXT
#define glProgramUniformMatrix4fv wrap_glProgramUniformMatrix4fv
#define glProgramUniformMatrix4fvEXT wrap_glProgramUniformMatrix4fvEXT
#define glProgramUniformMatrix4x2fv wrap_glProgramUniformMatrix4x2fv
#define glProgramUniformMatrix4x2fvEXT wrap_glProgramUniformMatrix4x2fvEXT
#define glProgramUniformMatrix4x3fv wrap_glProgramUniformMatrix4x3fv
#define glProgramUniformMatrix4x3fvEXT wrap_glProgramUniformMatrix4x3fvEXT
#define glPushDebugGroup wrap_glPushDebugGroup
#define glPushDebugGroupKHR wrap_glPushDebugGroupKHR
#define glPushGroupMarkerEXT wrap_glPushGroupMarkerEXT
#define glPushMatrix wrap_glPushMatrix
#define glQueryCounterEXT wrap_glQueryCounterEXT
#define glQueryMatrixxOES wrap_glQueryMatrixxOES
#define glRasterSamplesEXT wrap_glRasterSamplesEXT
#define glReadBuffer wrap_glReadBuffer
#define glReadBufferIndexedEXT wrap_glReadBufferIndexedEXT
#define glReadBufferNV wrap_glReadBufferNV
#define glReadPixels wrap_glReadPixels
#define glReadnPixels wrap_glReadnPixels
#define glReadnPixelsEXT wrap_glReadnPixelsEXT
#define glReadnPixelsKHR wrap_glReadnPixelsKHR
#define glReleaseShaderCompiler wrap_glReleaseShaderCompiler
#define glRenderbufferStorage wrap_glRenderbufferStorage
#define glRenderbufferStorageMultisample wrap_glRenderbufferStorageMultisample
#define glRenderbufferStorageMultisampleANGLE wrap_glRenderbufferStorageMultisampleANGLE
#define glRenderbufferStorageMultisampleAPPLE wrap_glRenderbufferStorageMultisampleAPPLE
#define glRenderbufferStorageMultisampleEXT wrap_glRenderbufferStorageMultisampleEXT
#define glRenderbufferStorageMultisampleIMG wrap_glRenderbufferStorageMultisampleIMG
#define glRenderbufferStorageMultisampleNV wrap_glRenderbufferStorageMultisampleNV
#define glRenderbufferStorageOES wrap_glRenderbufferStorageOES
#define glResolveDepthValuesNV wrap_glResolveDepthValuesNV
#define glResolveMultisampleFramebufferAPPLE wrap_glResolveMultisampleFramebufferAPPLE
#define glResumeTransformFeedback wrap_glResumeTransformFeedback
#define glRotatef wrap_glRotatef
#define glRotatex wrap_glRotatex
#define glRotatexOES wrap_glRotatexOES
#define glSampleCoverage wrap_glSampleCoverage
#define glSampleCoveragex wrap_glSampleCoveragex
#define glSampleCoveragexOES wrap_glSampleCoveragexOES
#define glSampleMaski wrap_glSampleMaski
#define glSamplerParameterIiv wrap_glSamplerParameterIiv
#define glSamplerParameterIivEXT wrap_glSamplerParameterIivEXT
#define glSamplerParameterIivOES wrap_glSamplerParameterIivOES
#define glSamplerParameterIuiv wrap_glSamplerParameterIuiv
#define glSamplerParameterIuivEXT wrap_glSamplerParameterIuivEXT
#define glSamplerParameterIuivOES wrap_glSamplerParameterIuivOES
#define glSamplerParameterf wrap_glSamplerParameterf
#define glSamplerParameterfv wrap_glSamplerParameterfv
#define glSamplerParameteri wrap_glSamplerParameteri
#define glSamplerParameteriv wrap_glSamplerParameteriv
#define glScalef wrap_glScalef
#define glScalex wrap_glScalex
#define glScalexOES wrap_glScalexOES
#define glScissor wrap_glScissor
#define glScissorArrayvNV wrap_glScissorArrayvNV
#define glScissorIndexedNV wrap_glScissorIndexedNV
#define glScissorIndexedvNV wrap_glScissorIndexedvNV
#define glSelectPerfMonitorCountersAMD wrap_glSelectPerfMonitorCountersAMD
#define glSetFenceNV wrap_glSetFenceNV
#define glShadeModel wrap_glShadeModel
#define glShaderBinary wrap_glShaderBinary
#define glShaderSource wrap_glShaderSource
#define glStartTilingQCOM wrap_glStartTilingQCOM
#define glStencilFillPathInstancedNV wrap_glStencilFillPathInstancedNV
#define glStencilFillPathNV wrap_glStencilFillPathNV
#define glStencilFunc wrap_glStencilFunc
#define glStencilFuncSeparate wrap_glStencilFuncSeparate
#define glStencilMask wrap_glStencilMask
#define glStencilMaskSeparate wrap_glStencilMaskSeparate
#define glStencilOp wrap_glStencilOp
#define glStencilOpSeparate wrap_glStencilOpSeparate
#define glStencilStrokePathInstancedNV wrap_glStencilStrokePathInstancedNV
#define glStencilStrokePathNV wrap_glStencilStrokePathNV
#define glStencilThenCoverFillPathInstancedNV wrap_glStencilThenCoverFillPathInstancedNV
#define glStencilThenCoverFillPathNV wrap_glStencilThenCoverFillPathNV
#define glStencilThenCoverStrokePathInstancedNV wrap_glStencilThenCoverStrokePathInstancedNV
#define glStencilThenCoverStrokePathNV wrap_glStencilThenCoverStrokePathNV
#define glSubpixelPrecisionBiasNV wrap_glSubpixelPrecisionBiasNV
#define glTestFenceNV wrap_glTestFenceNV
#define glTexBuffer wrap_glTexBuffer
#define glTexBufferEXT wrap_glTexBufferEXT
#define glTexBufferOES wrap_glTexBufferOES
#define glTexBufferRange wrap_glTexBufferRange
#define glTexBufferRangeEXT wrap_glTexBufferRangeEXT
#define glTexBufferRangeOES wrap_glTexBufferRangeOES
#define glTexCoordPointer wrap_glTexCoordPointer
#define glTexEnvf wrap_glTexEnvf
#define glTexEnvfv wrap_glTexEnvfv
#define glTexEnvi wrap_glTexEnvi
#define glTexEnviv wrap_glTexEnviv
#define glTexEnvx wrap_glTexEnvx
#define glTexEnvxOES wrap_glTexEnvxOES
#define glTexEnvxv wrap_glTexEnvxv
#define glTexEnvxvOES wrap_glTexEnvxvOES
#define glTexGenfOES wrap_glTexGenfOES
#define glTexGenfvOES wrap_glTexGenfvOES
#define glTexGeniOES wrap_glTexGeniOES
#define glTexGenivOES wrap_glTexGenivOES
#define glTexGenxOES wrap_glTexGenxOES
#define glTexGenxvOES wrap_glTexGenxvOES
#define glTexImage2D wrap_glTexImage2D
#define glTexImage3D wrap_glTexImage3D
#define glTexImage3DOES wrap_glTexImage3DOES
#define glTexPageCommitmentEXT wrap_glTexPageCommitmentEXT
#define glTexParameterIiv wrap_glTexParameterIiv
#define glTexParameterIivEXT wrap_glTexParameterIivEXT
#define glTexParameterIivOES wrap_glTexParameterIivOES
#define glTexParameterIuiv wrap_glTexParameterIuiv
#define glTexParameterIuivEXT wrap_glTexParameterIuivEXT
#define glTexParameterIuivOES wrap_glTexParameterIuivOES
#define glTexParameterf wrap_glTexParameterf
#define glTexParameterfv wrap_glTexParameterfv
#define glTexParameteri wrap_glTexParameteri
#define glTexParameteriv wrap_glTexParameteriv
#define glTexParameterx wrap_glTexParameterx
#define glTexParameterxOES wrap_glTexParameterxOES
#define glTexParameterxv wrap_glTexParameterxv
#define glTexParameterxvOES wrap_glTexParameterxvOES
#define glTexStorage1DEXT wrap_glTexStorage1DEXT
#define glTexStorage2D wrap_glTexStorage2D
#define glTexStorage2DEXT wrap_glTexStorage2DEXT
#define glTexStorage2DMultisample wrap_glTexStorage2DMultisample
#define glTexStorage3D wrap_glTexStorage3D
#define glTexStorage3DEXT wrap_glTexStorage3DEXT
#define glTexStorage3DMultisample wrap_glTexStorage3DMultisample
#define glTexStorage3DMultisampleOES wrap_glTexStorage3DMultisampleOES
#define glTexSubImage2D wrap_glTexSubImage2D
#define glTexSubImage3D wrap_glTexSubImage3D
#define glTexSubImage3DOES wrap_glTexSubImage3DOES
#define glTextureStorage1DEXT wrap_glTextureStorage1DEXT
#define glTextureStorage2DEXT wrap_glTextureStorage2DEXT
#define glTextureStorage3DEXT wrap_glTextureStorage3DEXT
#define glTextureViewEXT wrap_glTextureViewEXT
#define glTextureViewOES wrap_glTextureViewOES
#define glTransformFeedbackVaryings wrap_glTransformFeedbackVaryings
#define glTransformPathNV wrap_glTransformPathNV
#define glTranslatef wrap_glTranslatef
#define glTranslatex wrap_glTranslatex
#define glTranslatexOES wrap_glTranslatexOES
#define glUniform1f wrap_glUniform1f
#define glUniform1fv wrap_glUniform1fv
#define glUniform1i wrap_glUniform1i
#define glUniform1iv wrap_glUniform1iv
#define glUniform1ui wrap_glUniform1ui
#define glUniform1uiv wrap_glUniform1uiv
#define glUniform2f wrap_glUniform2f
#define glUniform2fv wrap_glUniform2fv
#define glUniform2i wrap_glUniform2i
#define glUniform2iv wrap_glUniform2iv
#define glUniform2ui wrap_glUniform2ui
#define glUniform2uiv wrap_glUniform2uiv
#define glUniform3f wrap_glUniform3f
#define glUniform3fv wrap_glUniform3fv
#define glUniform3i wrap_glUniform3i
#define glUniform3iv wrap_glUniform3iv
#define glUniform3ui wrap_glUniform3ui
#define glUniform3uiv wrap_glUniform3uiv
#define glUniform4f wrap_glUniform4f
#define glUniform4fv wrap_glUniform4fv
#define glUniform4i wrap_glUniform4i
#define glUniform4iv wrap_glUniform4iv
#define glUniform4ui wrap_glUniform4ui
#define glUniform4uiv wrap_glUniform4uiv
#define glUniformBlockBinding wrap_glUniformBlockBinding
#define glUniformHandleui64NV wrap_glUniformHandleui64NV
#define glUniformHandleui64vNV wrap_glUniformHandleui64vNV
#define glUniformMatrix2fv wrap_glUniformMatrix2fv
#define glUniformMatrix2x3fv wrap_glUniformMatrix2x3fv
#define glUniformMatrix2x3fvNV wrap_glUniformMatrix2x3fvNV
#define glUniformMatrix2x4fv wrap_glUniformMatrix2x4fv
#define glUniformMatrix2x4fvNV wrap_glUniformMatrix2x4fvNV
#define glUniformMatrix3fv wrap_glUniformMatrix3fv
#define glUniformMatrix3x2fv wrap_glUniformMatrix3x2fv
#define glUniformMatrix3x2fvNV wrap_glUniformMatrix3x2fvNV
#define glUniformMatrix3x4fv wrap_glUniformMatrix3x4fv
#define glUniformMatrix3x4fvNV wrap_glUniformMatrix3x4fvNV
#define glUniformMatrix4fv wrap_glUniformMatrix4fv
#define glUniformMatrix4x2fv wrap_glUniformMatrix4x2fv
#define glUniformMatrix4x2fvNV wrap_glUniformMatrix4x2fvNV
#define glUniformMatrix4x3fv wrap_glUniformMatrix4x3fv
#define glUniformMatrix4x3fvNV wrap_glUniformMatrix4x3fvNV
#define glUnmapBuffer wrap_glUnmapBuffer
#define glUnmapBufferOES wrap_glUnmapBufferOES
#define glUseProgram wrap_glUseProgram
#define glUseProgramStages wrap_glUseProgramStages
#define glUseProgramStagesEXT wrap_glUseProgramStagesEXT
#define glValidateProgram wrap_glValidateProgram
#define glValidateProgramPipeline wrap_glValidateProgramPipeline
#define glValidateProgramPipelineEXT wrap_glValidateProgramPipelineEXT
#define glVertexAttrib1f wrap_glVertexAttrib1f
#define glVertexAttrib1fv wrap_glVertexAttrib1fv
#define glVertexAttrib2f wrap_glVertexAttrib2f
#define glVertexAttrib2fv wrap_glVertexAttrib2fv
#define glVertexAttrib3f wrap_glVertexAttrib3f
#define glVertexAttrib3fv wrap_glVertexAttrib3fv
#define glVertexAttrib4f wrap_glVertexAttrib4f
#define glVertexAttrib4fv wrap_glVertexAttrib4fv
#define glVertexAttribBinding wrap_glVertexAttribBinding
#define glVertexAttribDivisor wrap_glVertexAttribDivisor
#define glVertexAttribDivisorANGLE wrap_glVertexAttribDivisorANGLE
#define glVertexAttribDivisorEXT wrap_glVertexAttribDivisorEXT
#define glVertexAttribDivisorNV wrap_glVertexAttribDivisorNV
#define glVertexAttribFormat wrap_glVertexAttribFormat
#define glVertexAttribI4i wrap_glVertexAttribI4i
#define glVertexAttribI4iv wrap_glVertexAttribI4iv
#define glVertexAttribI4ui wrap_glVertexAttribI4ui
#define glVertexAttribI4uiv wrap_glVertexAttribI4uiv
#define glVertexAttribIFormat wrap_glVertexAttribIFormat
#define glVertexAttribIPointer wrap_glVertexAttribIPointer
#define glVertexAttribPointer wrap_glVertexAttribPointer
#define glVertexBindingDivisor wrap_glVertexBindingDivisor
#define glVertexPointer wrap_glVertexPointer
#define glViewport wrap_glViewport
#define glViewportArrayvNV wrap_glViewportArrayvNV
#define glViewportIndexedfNV wrap_glViewportIndexedfNV
#define glViewportIndexedfvNV wrap_glViewportIndexedfvNV
#define glWaitSync wrap_glWaitSync
#define glWaitSyncAPPLE wrap_glWaitSyncAPPLE
#define glWeightPathsNV wrap_glWeightPathsNV
#define glWeightPointerOES wrap_glWeightPointerOES
#include "GlesDriver.h"
#endif // HWUI_GLES_WRAP_ENABLED
#define GL_ENTRY(ret, api, ...) ret api(__VA_ARGS__);
#include "gles_decls.in"
#undef GL_ENTRY

View File

@@ -14,6 +14,19 @@
* limitations under the License.
*/
#include "debug/GlesDriver.h"
#include "debug/NullGlesDriver.h"
#include <benchmark/benchmark.h>
BENCHMARK_MAIN();
#include <memory>
using namespace android;
using namespace android::uirenderer;
int main(int argc, char** argv) {
debug::GlesDriver::replace(std::make_unique<debug::NullGlesDriver>());
benchmark::Initialize(&argc, argv);
benchmark::RunSpecifiedBenchmarks();
return 0;
}

View File

@@ -0,0 +1,36 @@
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <debug/MockGlesDriver.h>
#include <debug/ScopedReplaceDriver.h>
#include <gtest/gtest.h>
#include <gmock/gmock.h>
#include <renderstate/MeshState.h>
#include <tests/common/TestUtils.h>
using namespace android::uirenderer;
using namespace testing;
RENDERTHREAD_TEST(MeshState, genOrUpdate) {
debug::ScopedReplaceDriver<debug::MockGlesDriver> driverRef;
auto& mockGlDriver = driverRef.get();
EXPECT_CALL(mockGlDriver, glGenBuffers_(_, _)).WillOnce(SetArgPointee<1>(35));
EXPECT_CALL(mockGlDriver, glBindBuffer_(_, 35));
EXPECT_CALL(mockGlDriver, glBufferData_(_, _, _, _));
GLuint buffer = 0;
renderThread.renderState().meshState().genOrUpdateMeshBuffer(&buffer, 10, nullptr, GL_DYNAMIC_DRAW);
}

View File

@@ -15,8 +15,11 @@
*/
#include "gtest/gtest.h"
#include "gmock/gmock.h"
#include "Caches.h"
#include "debug/GlesDriver.h"
#include "debug/NullGlesDriver.h"
#include "thread/TaskManager.h"
#include "tests/common/TestUtils.h"
@@ -127,8 +130,13 @@ int main(int argc, char* argv[]) {
gSigChain.insert(pair<int, struct sigaction>(sig, old_sa));
}
// Replace the default GLES driver
debug::GlesDriver::replace(std::make_unique<debug::NullGlesDriver>());
// Run the tests
testing::InitGoogleTest(&argc, argv);
testing::InitGoogleMock(&argc, argv);
int ret = RUN_ALL_TESTS();
checkForLeaks();
return ret;