Add generator for EGL proc table.

This should improve ANGLE startup time by avoiding creating a large
std::map filled with the entry points.

BUG=chromium:781460

Change-Id: I20cfdb10b99844d0f60759dda73b729991dc60fe
Reviewed-on: https://chromium-review.googlesource.com/768209
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This commit is contained in:
Jamie Madill 2017-11-14 12:43:40 -05:00 коммит произвёл Commit Bot
Родитель e8afa90250
Коммит 5ad52994ba
10 изменённых файлов: 1350 добавлений и 649 удалений

Просмотреть файл

@ -116,6 +116,15 @@ generators = {
],
'script': 'src/libANGLE/gen_packed_gl_enums.py',
},
'proc table': {
'inputs': [
'src/libGLESv2/proc_table_data.json',
],
'outputs': [
'src/libGLESv2/proc_table_autogen.cpp',
],
'script': 'src/libGLESv2/gen_proc_table.py',
},
'Vulkan format': {
'inputs': [
'src/libANGLE/renderer/angle_format.py',
@ -144,7 +153,7 @@ for name, info in sorted(generators.iteritems()):
input_mtime = os.path.getmtime(finput)
for foutput in info['outputs']:
if not os.path.exists(foutput):
print('Output' + foutput + ' not found for ' + name + ' table')
print('Output ' + foutput + ' not found for ' + name + ' table')
dirty = True
else:
output_mtime = os.path.getmtime(foutput)

Просмотреть файл

@ -1,5 +1,5 @@
// GENERATED FILE - DO NOT EDIT.
// Generated by src/libANGLE/gen_packed_gl_enums.py using data from packed_gl_enums.json.
// Generated by gen_packed_gl_enums.py using data from packed_gl_enums.json.
//
// Copyright 2017 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be

Просмотреть файл

@ -1,5 +1,5 @@
// GENERATED FILE - DO NOT EDIT.
// Generated by src/libANGLE/gen_packed_gl_enums.py using data from packed_gl_enums.json.
// Generated by gen_packed_gl_enums.py using data from packed_gl_enums.json.
//
// Copyright 2017 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be

Просмотреть файл

@ -831,6 +831,8 @@
'libGLESv2/libGLESv2.cpp',
'libGLESv2/libGLESv2.def',
'libGLESv2/libGLESv2.rc',
'libGLESv2/proc_table.h',
'libGLESv2/proc_table_autogen.cpp',
'libGLESv2/resource.h',
],
'libegl_sources':

Просмотреть файл

@ -7,13 +7,9 @@
// entry_points_egl.cpp : Implements the EGL entry points.
#include "libGLESv2/entry_points_egl.h"
#include "libGLESv2/entry_points_egl_ext.h"
#include "libGLESv2/entry_points_gles_2_0_autogen.h"
#include "libGLESv2/entry_points_gles_2_0_ext.h"
#include "libGLESv2/entry_points_gles_3_0_autogen.h"
#include "libGLESv2/entry_points_gles_3_1.h"
#include "libGLESv2/global_state.h"
#include "common/debug.h"
#include "common/version.h"
#include "libANGLE/Context.h"
#include "libANGLE/Display.h"
#include "libANGLE/Surface.h"
@ -21,11 +17,8 @@
#include "libANGLE/Thread.h"
#include "libANGLE/queryutils.h"
#include "libANGLE/validationEGL.h"
#include "common/debug.h"
#include "common/version.h"
#include "platform/Platform.h"
#include "libGLESv2/global_state.h"
#include "libGLESv2/proc_table.h"
#include <EGL/eglext.h>
@ -35,6 +28,11 @@ namespace egl
namespace
{
bool CompareProc(const ProcEntry &a, const char *b)
{
return strcmp(a.first, b) < 0;
}
void ClipConfigs(const std::vector<const Config *> &filteredConfigs,
EGLConfig *output_configs,
EGLint config_size,
@ -1173,642 +1171,16 @@ __eglMustCastToProperFunctionPointerType EGLAPIENTRY GetProcAddress(const char *
EVENT("(const char *procname = \"%s\")", procname);
Thread *thread = GetCurrentThread();
typedef std::map<std::string, __eglMustCastToProperFunctionPointerType> ProcAddressMap;
auto generateProcAddressMap = []() {
ProcAddressMap map;
#define INSERT_PROC_ADDRESS(ns, proc) \
map[#ns #proc] = reinterpret_cast<__eglMustCastToProperFunctionPointerType>(ns::proc)
#define INSERT_PROC_ADDRESS_NO_NS(name, proc) \
map[name] = reinterpret_cast<__eglMustCastToProperFunctionPointerType>(proc)
// GLES2 core
INSERT_PROC_ADDRESS(gl, ActiveTexture);
INSERT_PROC_ADDRESS(gl, AttachShader);
INSERT_PROC_ADDRESS(gl, BindAttribLocation);
INSERT_PROC_ADDRESS(gl, BindBuffer);
INSERT_PROC_ADDRESS(gl, BindFramebuffer);
INSERT_PROC_ADDRESS(gl, BindRenderbuffer);
INSERT_PROC_ADDRESS(gl, BindTexture);
INSERT_PROC_ADDRESS(gl, BlendColor);
INSERT_PROC_ADDRESS(gl, BlendEquation);
INSERT_PROC_ADDRESS(gl, BlendEquationSeparate);
INSERT_PROC_ADDRESS(gl, BlendFunc);
INSERT_PROC_ADDRESS(gl, BlendFuncSeparate);
INSERT_PROC_ADDRESS(gl, BufferData);
INSERT_PROC_ADDRESS(gl, BufferSubData);
INSERT_PROC_ADDRESS(gl, CheckFramebufferStatus);
INSERT_PROC_ADDRESS(gl, Clear);
INSERT_PROC_ADDRESS(gl, ClearColor);
INSERT_PROC_ADDRESS(gl, ClearDepthf);
INSERT_PROC_ADDRESS(gl, ClearStencil);
INSERT_PROC_ADDRESS(gl, ColorMask);
INSERT_PROC_ADDRESS(gl, CompileShader);
INSERT_PROC_ADDRESS(gl, CompressedTexImage2D);
INSERT_PROC_ADDRESS(gl, CompressedTexSubImage2D);
INSERT_PROC_ADDRESS(gl, CopyTexImage2D);
INSERT_PROC_ADDRESS(gl, CopyTexSubImage2D);
INSERT_PROC_ADDRESS(gl, CreateProgram);
INSERT_PROC_ADDRESS(gl, CreateShader);
INSERT_PROC_ADDRESS(gl, CullFace);
INSERT_PROC_ADDRESS(gl, DeleteBuffers);
INSERT_PROC_ADDRESS(gl, DeleteFramebuffers);
INSERT_PROC_ADDRESS(gl, DeleteProgram);
INSERT_PROC_ADDRESS(gl, DeleteRenderbuffers);
INSERT_PROC_ADDRESS(gl, DeleteShader);
INSERT_PROC_ADDRESS(gl, DeleteTextures);
INSERT_PROC_ADDRESS(gl, DepthFunc);
INSERT_PROC_ADDRESS(gl, DepthMask);
INSERT_PROC_ADDRESS(gl, DepthRangef);
INSERT_PROC_ADDRESS(gl, DetachShader);
INSERT_PROC_ADDRESS(gl, Disable);
INSERT_PROC_ADDRESS(gl, DisableVertexAttribArray);
INSERT_PROC_ADDRESS(gl, DrawArrays);
INSERT_PROC_ADDRESS(gl, DrawElements);
INSERT_PROC_ADDRESS(gl, Enable);
INSERT_PROC_ADDRESS(gl, EnableVertexAttribArray);
INSERT_PROC_ADDRESS(gl, Finish);
INSERT_PROC_ADDRESS(gl, Flush);
INSERT_PROC_ADDRESS(gl, FramebufferRenderbuffer);
INSERT_PROC_ADDRESS(gl, FramebufferTexture2D);
INSERT_PROC_ADDRESS(gl, FrontFace);
INSERT_PROC_ADDRESS(gl, GenBuffers);
INSERT_PROC_ADDRESS(gl, GenerateMipmap);
INSERT_PROC_ADDRESS(gl, GenFramebuffers);
INSERT_PROC_ADDRESS(gl, GenRenderbuffers);
INSERT_PROC_ADDRESS(gl, GenTextures);
INSERT_PROC_ADDRESS(gl, GetActiveAttrib);
INSERT_PROC_ADDRESS(gl, GetActiveUniform);
INSERT_PROC_ADDRESS(gl, GetAttachedShaders);
INSERT_PROC_ADDRESS(gl, GetAttribLocation);
INSERT_PROC_ADDRESS(gl, GetBooleanv);
INSERT_PROC_ADDRESS(gl, GetBufferParameteriv);
INSERT_PROC_ADDRESS(gl, GetError);
INSERT_PROC_ADDRESS(gl, GetFloatv);
INSERT_PROC_ADDRESS(gl, GetFramebufferAttachmentParameteriv);
INSERT_PROC_ADDRESS(gl, GetIntegerv);
INSERT_PROC_ADDRESS(gl, GetProgramiv);
INSERT_PROC_ADDRESS(gl, GetProgramInfoLog);
INSERT_PROC_ADDRESS(gl, GetRenderbufferParameteriv);
INSERT_PROC_ADDRESS(gl, GetShaderiv);
INSERT_PROC_ADDRESS(gl, GetShaderInfoLog);
INSERT_PROC_ADDRESS(gl, GetShaderPrecisionFormat);
INSERT_PROC_ADDRESS(gl, GetShaderSource);
INSERT_PROC_ADDRESS(gl, GetString);
INSERT_PROC_ADDRESS(gl, GetTexParameterfv);
INSERT_PROC_ADDRESS(gl, GetTexParameteriv);
INSERT_PROC_ADDRESS(gl, GetUniformfv);
INSERT_PROC_ADDRESS(gl, GetUniformiv);
INSERT_PROC_ADDRESS(gl, GetUniformLocation);
INSERT_PROC_ADDRESS(gl, GetVertexAttribfv);
INSERT_PROC_ADDRESS(gl, GetVertexAttribiv);
INSERT_PROC_ADDRESS(gl, GetVertexAttribPointerv);
INSERT_PROC_ADDRESS(gl, Hint);
INSERT_PROC_ADDRESS(gl, IsBuffer);
INSERT_PROC_ADDRESS(gl, IsEnabled);
INSERT_PROC_ADDRESS(gl, IsFramebuffer);
INSERT_PROC_ADDRESS(gl, IsProgram);
INSERT_PROC_ADDRESS(gl, IsRenderbuffer);
INSERT_PROC_ADDRESS(gl, IsShader);
INSERT_PROC_ADDRESS(gl, IsTexture);
INSERT_PROC_ADDRESS(gl, LineWidth);
INSERT_PROC_ADDRESS(gl, LinkProgram);
INSERT_PROC_ADDRESS(gl, PixelStorei);
INSERT_PROC_ADDRESS(gl, PolygonOffset);
INSERT_PROC_ADDRESS(gl, ReadPixels);
INSERT_PROC_ADDRESS(gl, ReleaseShaderCompiler);
INSERT_PROC_ADDRESS(gl, RenderbufferStorage);
INSERT_PROC_ADDRESS(gl, SampleCoverage);
INSERT_PROC_ADDRESS(gl, Scissor);
INSERT_PROC_ADDRESS(gl, ShaderBinary);
INSERT_PROC_ADDRESS(gl, ShaderSource);
INSERT_PROC_ADDRESS(gl, StencilFunc);
INSERT_PROC_ADDRESS(gl, StencilFuncSeparate);
INSERT_PROC_ADDRESS(gl, StencilMask);
INSERT_PROC_ADDRESS(gl, StencilMaskSeparate);
INSERT_PROC_ADDRESS(gl, StencilOp);
INSERT_PROC_ADDRESS(gl, StencilOpSeparate);
INSERT_PROC_ADDRESS(gl, TexImage2D);
INSERT_PROC_ADDRESS(gl, TexParameterf);
INSERT_PROC_ADDRESS(gl, TexParameterfv);
INSERT_PROC_ADDRESS(gl, TexParameteri);
INSERT_PROC_ADDRESS(gl, TexParameteriv);
INSERT_PROC_ADDRESS(gl, TexSubImage2D);
INSERT_PROC_ADDRESS(gl, Uniform1f);
INSERT_PROC_ADDRESS(gl, Uniform1fv);
INSERT_PROC_ADDRESS(gl, Uniform1i);
INSERT_PROC_ADDRESS(gl, Uniform1iv);
INSERT_PROC_ADDRESS(gl, Uniform2f);
INSERT_PROC_ADDRESS(gl, Uniform2fv);
INSERT_PROC_ADDRESS(gl, Uniform2i);
INSERT_PROC_ADDRESS(gl, Uniform2iv);
INSERT_PROC_ADDRESS(gl, Uniform3f);
INSERT_PROC_ADDRESS(gl, Uniform3fv);
INSERT_PROC_ADDRESS(gl, Uniform3i);
INSERT_PROC_ADDRESS(gl, Uniform3iv);
INSERT_PROC_ADDRESS(gl, Uniform4f);
INSERT_PROC_ADDRESS(gl, Uniform4fv);
INSERT_PROC_ADDRESS(gl, Uniform4i);
INSERT_PROC_ADDRESS(gl, Uniform4iv);
INSERT_PROC_ADDRESS(gl, UniformMatrix2fv);
INSERT_PROC_ADDRESS(gl, UniformMatrix3fv);
INSERT_PROC_ADDRESS(gl, UniformMatrix4fv);
INSERT_PROC_ADDRESS(gl, UseProgram);
INSERT_PROC_ADDRESS(gl, ValidateProgram);
INSERT_PROC_ADDRESS(gl, VertexAttrib1f);
INSERT_PROC_ADDRESS(gl, VertexAttrib1fv);
INSERT_PROC_ADDRESS(gl, VertexAttrib2f);
INSERT_PROC_ADDRESS(gl, VertexAttrib2fv);
INSERT_PROC_ADDRESS(gl, VertexAttrib3f);
INSERT_PROC_ADDRESS(gl, VertexAttrib3fv);
INSERT_PROC_ADDRESS(gl, VertexAttrib4f);
INSERT_PROC_ADDRESS(gl, VertexAttrib4fv);
INSERT_PROC_ADDRESS(gl, VertexAttribPointer);
INSERT_PROC_ADDRESS(gl, Viewport);
// GL_ANGLE_framebuffer_blit
INSERT_PROC_ADDRESS(gl, BlitFramebufferANGLE);
// GL_ANGLE_framebuffer_multisample
INSERT_PROC_ADDRESS(gl, RenderbufferStorageMultisampleANGLE);
// GL_EXT_discard_framebuffer
INSERT_PROC_ADDRESS(gl, DiscardFramebufferEXT);
// GL_NV_fence
INSERT_PROC_ADDRESS(gl, DeleteFencesNV);
INSERT_PROC_ADDRESS(gl, GenFencesNV);
INSERT_PROC_ADDRESS(gl, IsFenceNV);
INSERT_PROC_ADDRESS(gl, TestFenceNV);
INSERT_PROC_ADDRESS(gl, GetFenceivNV);
INSERT_PROC_ADDRESS(gl, FinishFenceNV);
INSERT_PROC_ADDRESS(gl, SetFenceNV);
// GL_ANGLE_translated_shader_source
INSERT_PROC_ADDRESS(gl, GetTranslatedShaderSourceANGLE);
// GL_EXT_texture_storage
INSERT_PROC_ADDRESS(gl, TexStorage2DEXT);
// GL_EXT_robustness
INSERT_PROC_ADDRESS(gl, GetGraphicsResetStatusEXT);
INSERT_PROC_ADDRESS(gl, ReadnPixelsEXT);
INSERT_PROC_ADDRESS(gl, GetnUniformfvEXT);
INSERT_PROC_ADDRESS(gl, GetnUniformivEXT);
// GL_EXT_occlusion_query_boolean
INSERT_PROC_ADDRESS(gl, GenQueriesEXT);
INSERT_PROC_ADDRESS(gl, DeleteQueriesEXT);
INSERT_PROC_ADDRESS(gl, IsQueryEXT);
INSERT_PROC_ADDRESS(gl, BeginQueryEXT);
INSERT_PROC_ADDRESS(gl, EndQueryEXT);
INSERT_PROC_ADDRESS(gl, GetQueryivEXT);
INSERT_PROC_ADDRESS(gl, GetQueryObjectuivEXT);
// GL_EXT_disjoint_timer_query
// Commented out functions are needed for GL_EXT_disjoint_timer_query
// but are pulled in by GL_EXT_occlusion_query_boolean.
// INSERT_PROC_ADDRESS(gl, GenQueriesEXT);
// INSERT_PROC_ADDRESS(gl, DeleteQueriesEXT);
// INSERT_PROC_ADDRESS(gl, IsQueryEXT);
// INSERT_PROC_ADDRESS(gl, BeginQueryEXT);
// INSERT_PROC_ADDRESS(gl, EndQueryEXT);
INSERT_PROC_ADDRESS(gl, QueryCounterEXT);
// INSERT_PROC_ADDRESS(gl, GetQueryivEXT);
INSERT_PROC_ADDRESS(gl, GetQueryObjectivEXT);
// INSERT_PROC_ADDRESS(gl, GetQueryObjectuivEXT);
INSERT_PROC_ADDRESS(gl, GetQueryObjecti64vEXT);
INSERT_PROC_ADDRESS(gl, GetQueryObjectui64vEXT);
// GL_EXT_draw_buffers
INSERT_PROC_ADDRESS(gl, DrawBuffersEXT);
// GL_ANGLE_instanced_arrays
INSERT_PROC_ADDRESS(gl, DrawArraysInstancedANGLE);
INSERT_PROC_ADDRESS(gl, DrawElementsInstancedANGLE);
INSERT_PROC_ADDRESS(gl, VertexAttribDivisorANGLE);
// GL_OES_get_program_binary
INSERT_PROC_ADDRESS(gl, GetProgramBinaryOES);
INSERT_PROC_ADDRESS(gl, ProgramBinaryOES);
// GL_OES_mapbuffer
INSERT_PROC_ADDRESS(gl, MapBufferOES);
INSERT_PROC_ADDRESS(gl, UnmapBufferOES);
INSERT_PROC_ADDRESS(gl, GetBufferPointervOES);
// GL_EXT_map_buffer_range
INSERT_PROC_ADDRESS(gl, MapBufferRangeEXT);
INSERT_PROC_ADDRESS(gl, FlushMappedBufferRangeEXT);
// GL_EXT_debug_marker
INSERT_PROC_ADDRESS(gl, InsertEventMarkerEXT);
INSERT_PROC_ADDRESS(gl, PushGroupMarkerEXT);
INSERT_PROC_ADDRESS(gl, PopGroupMarkerEXT);
// GL_OES_EGL_image
INSERT_PROC_ADDRESS(gl, EGLImageTargetTexture2DOES);
INSERT_PROC_ADDRESS(gl, EGLImageTargetRenderbufferStorageOES);
// GL_OES_vertex_array_object
INSERT_PROC_ADDRESS(gl, BindVertexArrayOES);
INSERT_PROC_ADDRESS(gl, DeleteVertexArraysOES);
INSERT_PROC_ADDRESS(gl, GenVertexArraysOES);
INSERT_PROC_ADDRESS(gl, IsVertexArrayOES);
// GL_KHR_debug
INSERT_PROC_ADDRESS(gl, DebugMessageControlKHR);
INSERT_PROC_ADDRESS(gl, DebugMessageInsertKHR);
INSERT_PROC_ADDRESS(gl, DebugMessageCallbackKHR);
INSERT_PROC_ADDRESS(gl, GetDebugMessageLogKHR);
INSERT_PROC_ADDRESS(gl, PushDebugGroupKHR);
INSERT_PROC_ADDRESS(gl, PopDebugGroupKHR);
INSERT_PROC_ADDRESS(gl, ObjectLabelKHR);
INSERT_PROC_ADDRESS(gl, GetObjectLabelKHR);
INSERT_PROC_ADDRESS(gl, ObjectPtrLabelKHR);
INSERT_PROC_ADDRESS(gl, GetObjectPtrLabelKHR);
INSERT_PROC_ADDRESS(gl, GetPointervKHR);
// GL_CHROMIUM_bind_uniform_location
INSERT_PROC_ADDRESS(gl, BindUniformLocationCHROMIUM);
// GL_CHROMIUM_copy_texture
INSERT_PROC_ADDRESS(gl, CopyTextureCHROMIUM);
INSERT_PROC_ADDRESS(gl, CopySubTextureCHROMIUM);
// GL_CHROMIUM_copy_compressed_texture
INSERT_PROC_ADDRESS(gl, CompressedCopyTextureCHROMIUM);
// GL_ANGLE_request_extension
INSERT_PROC_ADDRESS(gl, RequestExtensionANGLE);
// GL_ANGLE_robust_client_memory
INSERT_PROC_ADDRESS(gl, GetBooleanvRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetBufferParameterivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetFloatvRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetFramebufferAttachmentParameterivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetIntegervRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetProgramivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetRenderbufferParameterivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetShaderivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetTexParameterfvRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetTexParameterivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetUniformfvRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetUniformivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetVertexAttribfvRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetVertexAttribivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetVertexAttribPointervRobustANGLE);
INSERT_PROC_ADDRESS(gl, ReadPixelsRobustANGLE);
INSERT_PROC_ADDRESS(gl, TexImage2DRobustANGLE);
INSERT_PROC_ADDRESS(gl, TexParameterfvRobustANGLE);
INSERT_PROC_ADDRESS(gl, TexParameterivRobustANGLE);
INSERT_PROC_ADDRESS(gl, TexSubImage2DRobustANGLE);
INSERT_PROC_ADDRESS(gl, TexImage3DRobustANGLE);
INSERT_PROC_ADDRESS(gl, TexSubImage3DRobustANGLE);
INSERT_PROC_ADDRESS(gl, CompressedTexImage2DRobustANGLE);
INSERT_PROC_ADDRESS(gl, CompressedTexSubImage2DRobustANGLE);
INSERT_PROC_ADDRESS(gl, CompressedTexImage3DRobustANGLE);
INSERT_PROC_ADDRESS(gl, CompressedTexSubImage3DRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetQueryivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetQueryObjectuivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetBufferPointervRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetIntegeri_vRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetInternalformativRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetVertexAttribIivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetVertexAttribIuivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetUniformuivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetActiveUniformBlockivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetInteger64vRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetInteger64i_vRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetBufferParameteri64vRobustANGLE);
INSERT_PROC_ADDRESS(gl, SamplerParameterivRobustANGLE);
INSERT_PROC_ADDRESS(gl, SamplerParameterfvRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetSamplerParameterivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetSamplerParameterfvRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetFramebufferParameterivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetProgramInterfaceivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetBooleani_vRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetMultisamplefvRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetTexLevelParameterivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetTexLevelParameterfvRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetPointervRobustANGLERobustANGLE);
INSERT_PROC_ADDRESS(gl, ReadnPixelsRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetnUniformfvRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetnUniformivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetnUniformuivRobustANGLE);
INSERT_PROC_ADDRESS(gl, TexParameterIivRobustANGLE);
INSERT_PROC_ADDRESS(gl, TexParameterIuivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetTexParameterIivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetTexParameterIuivRobustANGLE);
INSERT_PROC_ADDRESS(gl, SamplerParameterIivRobustANGLE);
INSERT_PROC_ADDRESS(gl, SamplerParameterIuivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetSamplerParameterIivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetSamplerParameterIuivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetQueryObjectivRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetQueryObjecti64vRobustANGLE);
INSERT_PROC_ADDRESS(gl, GetQueryObjectui64vRobustANGLE);
// GL_ANGLE_multiview
INSERT_PROC_ADDRESS(gl, FramebufferTextureMultiviewLayeredANGLE);
INSERT_PROC_ADDRESS(gl, FramebufferTextureMultiviewSideBySideANGLE);
// GLES3 core
INSERT_PROC_ADDRESS(gl, ReadBuffer);
INSERT_PROC_ADDRESS(gl, DrawRangeElements);
INSERT_PROC_ADDRESS(gl, TexImage3D);
INSERT_PROC_ADDRESS(gl, TexSubImage3D);
INSERT_PROC_ADDRESS(gl, CopyTexSubImage3D);
INSERT_PROC_ADDRESS(gl, CompressedTexImage3D);
INSERT_PROC_ADDRESS(gl, CompressedTexSubImage3D);
INSERT_PROC_ADDRESS(gl, GenQueries);
INSERT_PROC_ADDRESS(gl, DeleteQueries);
INSERT_PROC_ADDRESS(gl, IsQuery);
INSERT_PROC_ADDRESS(gl, BeginQuery);
INSERT_PROC_ADDRESS(gl, EndQuery);
INSERT_PROC_ADDRESS(gl, GetQueryiv);
INSERT_PROC_ADDRESS(gl, GetQueryObjectuiv);
INSERT_PROC_ADDRESS(gl, UnmapBuffer);
INSERT_PROC_ADDRESS(gl, GetBufferPointerv);
INSERT_PROC_ADDRESS(gl, DrawBuffers);
INSERT_PROC_ADDRESS(gl, UniformMatrix2x3fv);
INSERT_PROC_ADDRESS(gl, UniformMatrix3x2fv);
INSERT_PROC_ADDRESS(gl, UniformMatrix2x4fv);
INSERT_PROC_ADDRESS(gl, UniformMatrix4x2fv);
INSERT_PROC_ADDRESS(gl, UniformMatrix3x4fv);
INSERT_PROC_ADDRESS(gl, UniformMatrix4x3fv);
INSERT_PROC_ADDRESS(gl, BlitFramebuffer);
INSERT_PROC_ADDRESS(gl, RenderbufferStorageMultisample);
INSERT_PROC_ADDRESS(gl, FramebufferTextureLayer);
INSERT_PROC_ADDRESS(gl, MapBufferRange);
INSERT_PROC_ADDRESS(gl, FlushMappedBufferRange);
INSERT_PROC_ADDRESS(gl, BindVertexArray);
INSERT_PROC_ADDRESS(gl, DeleteVertexArrays);
INSERT_PROC_ADDRESS(gl, GenVertexArrays);
INSERT_PROC_ADDRESS(gl, IsVertexArray);
INSERT_PROC_ADDRESS(gl, GetIntegeri_v);
INSERT_PROC_ADDRESS(gl, BeginTransformFeedback);
INSERT_PROC_ADDRESS(gl, EndTransformFeedback);
INSERT_PROC_ADDRESS(gl, BindBufferRange);
INSERT_PROC_ADDRESS(gl, BindBufferBase);
INSERT_PROC_ADDRESS(gl, TransformFeedbackVaryings);
INSERT_PROC_ADDRESS(gl, GetTransformFeedbackVarying);
INSERT_PROC_ADDRESS(gl, VertexAttribIPointer);
INSERT_PROC_ADDRESS(gl, GetVertexAttribIiv);
INSERT_PROC_ADDRESS(gl, GetVertexAttribIuiv);
INSERT_PROC_ADDRESS(gl, VertexAttribI4i);
INSERT_PROC_ADDRESS(gl, VertexAttribI4ui);
INSERT_PROC_ADDRESS(gl, VertexAttribI4iv);
INSERT_PROC_ADDRESS(gl, VertexAttribI4uiv);
INSERT_PROC_ADDRESS(gl, GetUniformuiv);
INSERT_PROC_ADDRESS(gl, GetFragDataLocation);
INSERT_PROC_ADDRESS(gl, Uniform1ui);
INSERT_PROC_ADDRESS(gl, Uniform2ui);
INSERT_PROC_ADDRESS(gl, Uniform3ui);
INSERT_PROC_ADDRESS(gl, Uniform4ui);
INSERT_PROC_ADDRESS(gl, Uniform1uiv);
INSERT_PROC_ADDRESS(gl, Uniform2uiv);
INSERT_PROC_ADDRESS(gl, Uniform3uiv);
INSERT_PROC_ADDRESS(gl, Uniform4uiv);
INSERT_PROC_ADDRESS(gl, ClearBufferiv);
INSERT_PROC_ADDRESS(gl, ClearBufferuiv);
INSERT_PROC_ADDRESS(gl, ClearBufferfv);
INSERT_PROC_ADDRESS(gl, ClearBufferfi);
INSERT_PROC_ADDRESS(gl, GetStringi);
INSERT_PROC_ADDRESS(gl, CopyBufferSubData);
INSERT_PROC_ADDRESS(gl, GetUniformIndices);
INSERT_PROC_ADDRESS(gl, GetActiveUniformsiv);
INSERT_PROC_ADDRESS(gl, GetUniformBlockIndex);
INSERT_PROC_ADDRESS(gl, GetActiveUniformBlockiv);
INSERT_PROC_ADDRESS(gl, GetActiveUniformBlockName);
INSERT_PROC_ADDRESS(gl, UniformBlockBinding);
INSERT_PROC_ADDRESS(gl, DrawArraysInstanced);
INSERT_PROC_ADDRESS(gl, DrawElementsInstanced);
INSERT_PROC_ADDRESS(gl, FenceSync);
INSERT_PROC_ADDRESS(gl, IsSync);
INSERT_PROC_ADDRESS(gl, DeleteSync);
INSERT_PROC_ADDRESS(gl, ClientWaitSync);
INSERT_PROC_ADDRESS(gl, WaitSync);
INSERT_PROC_ADDRESS(gl, GetInteger64v);
INSERT_PROC_ADDRESS(gl, GetSynciv);
INSERT_PROC_ADDRESS(gl, GetInteger64i_v);
INSERT_PROC_ADDRESS(gl, GetBufferParameteri64v);
INSERT_PROC_ADDRESS(gl, GenSamplers);
INSERT_PROC_ADDRESS(gl, DeleteSamplers);
INSERT_PROC_ADDRESS(gl, IsSampler);
INSERT_PROC_ADDRESS(gl, BindSampler);
INSERT_PROC_ADDRESS(gl, SamplerParameteri);
INSERT_PROC_ADDRESS(gl, SamplerParameteriv);
INSERT_PROC_ADDRESS(gl, SamplerParameterf);
INSERT_PROC_ADDRESS(gl, SamplerParameterfv);
INSERT_PROC_ADDRESS(gl, GetSamplerParameteriv);
INSERT_PROC_ADDRESS(gl, GetSamplerParameterfv);
INSERT_PROC_ADDRESS(gl, VertexAttribDivisor);
INSERT_PROC_ADDRESS(gl, BindTransformFeedback);
INSERT_PROC_ADDRESS(gl, DeleteTransformFeedbacks);
INSERT_PROC_ADDRESS(gl, GenTransformFeedbacks);
INSERT_PROC_ADDRESS(gl, IsTransformFeedback);
INSERT_PROC_ADDRESS(gl, PauseTransformFeedback);
INSERT_PROC_ADDRESS(gl, ResumeTransformFeedback);
INSERT_PROC_ADDRESS(gl, GetProgramBinary);
INSERT_PROC_ADDRESS(gl, ProgramBinary);
INSERT_PROC_ADDRESS(gl, ProgramParameteri);
INSERT_PROC_ADDRESS(gl, InvalidateFramebuffer);
INSERT_PROC_ADDRESS(gl, InvalidateSubFramebuffer);
INSERT_PROC_ADDRESS(gl, TexStorage2D);
INSERT_PROC_ADDRESS(gl, TexStorage3D);
INSERT_PROC_ADDRESS(gl, GetInternalformativ);
// GLES31 core
INSERT_PROC_ADDRESS(gl, DispatchCompute);
INSERT_PROC_ADDRESS(gl, DispatchComputeIndirect);
INSERT_PROC_ADDRESS(gl, DrawArraysIndirect);
INSERT_PROC_ADDRESS(gl, DrawElementsIndirect);
INSERT_PROC_ADDRESS(gl, FramebufferParameteri);
INSERT_PROC_ADDRESS(gl, GetFramebufferParameteriv);
INSERT_PROC_ADDRESS(gl, GetProgramInterfaceiv);
INSERT_PROC_ADDRESS(gl, GetProgramResourceIndex);
INSERT_PROC_ADDRESS(gl, GetProgramResourceName);
INSERT_PROC_ADDRESS(gl, GetProgramResourceiv);
INSERT_PROC_ADDRESS(gl, GetProgramResourceLocation);
INSERT_PROC_ADDRESS(gl, UseProgramStages);
INSERT_PROC_ADDRESS(gl, ActiveShaderProgram);
INSERT_PROC_ADDRESS(gl, CreateShaderProgramv);
INSERT_PROC_ADDRESS(gl, BindProgramPipeline);
INSERT_PROC_ADDRESS(gl, DeleteProgramPipelines);
INSERT_PROC_ADDRESS(gl, GenProgramPipelines);
INSERT_PROC_ADDRESS(gl, IsProgramPipeline);
INSERT_PROC_ADDRESS(gl, GetProgramPipelineiv);
INSERT_PROC_ADDRESS(gl, ProgramUniform1i);
INSERT_PROC_ADDRESS(gl, ProgramUniform2i);
INSERT_PROC_ADDRESS(gl, ProgramUniform3i);
INSERT_PROC_ADDRESS(gl, ProgramUniform4i);
INSERT_PROC_ADDRESS(gl, ProgramUniform1ui);
INSERT_PROC_ADDRESS(gl, ProgramUniform2ui);
INSERT_PROC_ADDRESS(gl, ProgramUniform3ui);
INSERT_PROC_ADDRESS(gl, ProgramUniform4ui);
INSERT_PROC_ADDRESS(gl, ProgramUniform1f);
INSERT_PROC_ADDRESS(gl, ProgramUniform2f);
INSERT_PROC_ADDRESS(gl, ProgramUniform3f);
INSERT_PROC_ADDRESS(gl, ProgramUniform4f);
INSERT_PROC_ADDRESS(gl, ProgramUniform1iv);
INSERT_PROC_ADDRESS(gl, ProgramUniform2iv);
INSERT_PROC_ADDRESS(gl, ProgramUniform3iv);
INSERT_PROC_ADDRESS(gl, ProgramUniform4iv);
INSERT_PROC_ADDRESS(gl, ProgramUniform1uiv);
INSERT_PROC_ADDRESS(gl, ProgramUniform2uiv);
INSERT_PROC_ADDRESS(gl, ProgramUniform3uiv);
INSERT_PROC_ADDRESS(gl, ProgramUniform4uiv);
INSERT_PROC_ADDRESS(gl, ProgramUniform1fv);
INSERT_PROC_ADDRESS(gl, ProgramUniform2fv);
INSERT_PROC_ADDRESS(gl, ProgramUniform3fv);
INSERT_PROC_ADDRESS(gl, ProgramUniform4fv);
INSERT_PROC_ADDRESS(gl, ProgramUniformMatrix2fv);
INSERT_PROC_ADDRESS(gl, ProgramUniformMatrix3fv);
INSERT_PROC_ADDRESS(gl, ProgramUniformMatrix4fv);
INSERT_PROC_ADDRESS(gl, ProgramUniformMatrix2x3fv);
INSERT_PROC_ADDRESS(gl, ProgramUniformMatrix3x2fv);
INSERT_PROC_ADDRESS(gl, ProgramUniformMatrix2x4fv);
INSERT_PROC_ADDRESS(gl, ProgramUniformMatrix4x2fv);
INSERT_PROC_ADDRESS(gl, ProgramUniformMatrix3x4fv);
INSERT_PROC_ADDRESS(gl, ProgramUniformMatrix4x3fv);
INSERT_PROC_ADDRESS(gl, ValidateProgramPipeline);
INSERT_PROC_ADDRESS(gl, GetProgramPipelineInfoLog);
INSERT_PROC_ADDRESS(gl, BindImageTexture);
INSERT_PROC_ADDRESS(gl, GetBooleani_v);
INSERT_PROC_ADDRESS(gl, MemoryBarrier);
INSERT_PROC_ADDRESS(gl, MemoryBarrierByRegion);
INSERT_PROC_ADDRESS(gl, TexStorage2DMultisample);
INSERT_PROC_ADDRESS(gl, GetMultisamplefv);
INSERT_PROC_ADDRESS(gl, SampleMaski);
INSERT_PROC_ADDRESS(gl, GetTexLevelParameteriv);
INSERT_PROC_ADDRESS(gl, GetTexLevelParameterfv);
INSERT_PROC_ADDRESS(gl, BindVertexBuffer);
INSERT_PROC_ADDRESS(gl, VertexAttribFormat);
INSERT_PROC_ADDRESS(gl, VertexAttribIFormat);
INSERT_PROC_ADDRESS(gl, VertexAttribBinding);
INSERT_PROC_ADDRESS(gl, VertexBindingDivisor);
// EGL 1.0
INSERT_PROC_ADDRESS(egl, ChooseConfig);
INSERT_PROC_ADDRESS(egl, CopyBuffers);
INSERT_PROC_ADDRESS(egl, CreateContext);
INSERT_PROC_ADDRESS(egl, CreatePbufferSurface);
INSERT_PROC_ADDRESS(egl, CreatePixmapSurface);
INSERT_PROC_ADDRESS(egl, CreateWindowSurface);
INSERT_PROC_ADDRESS(egl, DestroyContext);
INSERT_PROC_ADDRESS(egl, DestroySurface);
INSERT_PROC_ADDRESS(egl, GetConfigAttrib);
INSERT_PROC_ADDRESS(egl, GetConfigs);
INSERT_PROC_ADDRESS(egl, GetCurrentDisplay);
INSERT_PROC_ADDRESS(egl, GetCurrentSurface);
INSERT_PROC_ADDRESS(egl, GetDisplay);
INSERT_PROC_ADDRESS(egl, GetError);
INSERT_PROC_ADDRESS(egl, GetProcAddress);
INSERT_PROC_ADDRESS(egl, Initialize);
INSERT_PROC_ADDRESS(egl, MakeCurrent);
INSERT_PROC_ADDRESS(egl, QueryContext);
INSERT_PROC_ADDRESS(egl, QueryString);
INSERT_PROC_ADDRESS(egl, QuerySurface);
INSERT_PROC_ADDRESS(egl, SwapBuffers);
INSERT_PROC_ADDRESS(egl, Terminate);
INSERT_PROC_ADDRESS(egl, WaitGL);
INSERT_PROC_ADDRESS(egl, WaitNative);
// EGL 1.1
INSERT_PROC_ADDRESS(egl, BindTexImage);
INSERT_PROC_ADDRESS(egl, ReleaseTexImage);
INSERT_PROC_ADDRESS(egl, SurfaceAttrib);
INSERT_PROC_ADDRESS(egl, SwapInterval);
// EGL 1.2
INSERT_PROC_ADDRESS(egl, BindAPI);
INSERT_PROC_ADDRESS(egl, QueryAPI);
INSERT_PROC_ADDRESS(egl, CreatePbufferFromClientBuffer);
INSERT_PROC_ADDRESS(egl, ReleaseThread);
INSERT_PROC_ADDRESS(egl, WaitClient);
// EGL 1.4
INSERT_PROC_ADDRESS(egl, GetCurrentContext);
// EGL 1.5
INSERT_PROC_ADDRESS(egl, CreateSync);
INSERT_PROC_ADDRESS(egl, DestroySync);
INSERT_PROC_ADDRESS(egl, ClientWaitSync);
INSERT_PROC_ADDRESS(egl, GetSyncAttrib);
INSERT_PROC_ADDRESS(egl, CreateImage);
INSERT_PROC_ADDRESS(egl, DestroyImage);
INSERT_PROC_ADDRESS(egl, GetPlatformDisplay);
INSERT_PROC_ADDRESS(egl, CreatePlatformWindowSurface);
INSERT_PROC_ADDRESS(egl, CreatePlatformPixmapSurface);
INSERT_PROC_ADDRESS(egl, WaitSync);
// EGL_ANGLE_query_surface_pointer
INSERT_PROC_ADDRESS(egl, QuerySurfacePointerANGLE);
// EGL_NV_post_sub_buffer
INSERT_PROC_ADDRESS(egl, PostSubBufferNV);
// EGL_EXT_platform_base
INSERT_PROC_ADDRESS(egl, GetPlatformDisplayEXT);
// EGL_EXT_device_query
INSERT_PROC_ADDRESS(egl, QueryDisplayAttribEXT);
INSERT_PROC_ADDRESS(egl, QueryDeviceAttribEXT);
INSERT_PROC_ADDRESS(egl, QueryDeviceStringEXT);
// EGL_KHR_image_base/EGL_KHR_image
INSERT_PROC_ADDRESS(egl, CreateImageKHR);
INSERT_PROC_ADDRESS(egl, DestroyImageKHR);
// EGL_EXT_device_creation
INSERT_PROC_ADDRESS(egl, CreateDeviceANGLE);
INSERT_PROC_ADDRESS(egl, ReleaseDeviceANGLE);
// EGL_KHR_stream
INSERT_PROC_ADDRESS(egl, CreateStreamKHR);
INSERT_PROC_ADDRESS(egl, DestroyStreamKHR);
INSERT_PROC_ADDRESS(egl, StreamAttribKHR);
INSERT_PROC_ADDRESS(egl, QueryStreamKHR);
INSERT_PROC_ADDRESS(egl, QueryStreamu64KHR);
// EGL_KHR_stream_consumer_gltexture
INSERT_PROC_ADDRESS(egl, StreamConsumerGLTextureExternalKHR);
INSERT_PROC_ADDRESS(egl, StreamConsumerAcquireKHR);
INSERT_PROC_ADDRESS(egl, StreamConsumerReleaseKHR);
// EGL_NV_stream_consumer_gltexture_yuv
INSERT_PROC_ADDRESS(egl, StreamConsumerGLTextureExternalAttribsNV);
// EGL_ANGLE_stream_producer_d3d_texture_nv12
INSERT_PROC_ADDRESS(egl, CreateStreamProducerD3DTextureNV12ANGLE);
INSERT_PROC_ADDRESS(egl, StreamPostD3DTextureNV12ANGLE);
// EGL_CHROMIUM_get_sync_values
INSERT_PROC_ADDRESS(egl, GetSyncValuesCHROMIUM);
// EGL_EXT_swap_buffers_with_damage
INSERT_PROC_ADDRESS(egl, SwapBuffersWithDamageEXT);
// EGL_ANGLE_program_cache_control
INSERT_PROC_ADDRESS(egl, ProgramCacheGetAttribANGLE);
INSERT_PROC_ADDRESS(egl, ProgramCacheQueryANGLE);
INSERT_PROC_ADDRESS(egl, ProgramCachePopulateANGLE);
INSERT_PROC_ADDRESS(egl, ProgramCacheResizeANGLE);
// angle::Platform related entry points
INSERT_PROC_ADDRESS_NO_NS("ANGLEGetDisplayPlatform", ANGLEGetDisplayPlatform);
INSERT_PROC_ADDRESS_NO_NS("ANGLEResetDisplayPlatform", ANGLEResetDisplayPlatform);
#undef INSERT_PROC_ADDRESS
#undef INSERT_PROC_ADDRESS_NO_NS
return map;
};
static const ProcAddressMap procAddressMap = generateProcAddressMap();
ProcEntry *entry =
std::lower_bound(&g_procTable[0], &g_procTable[g_numProcs], procname, CompareProc);
thread->setError(NoError());
auto iter = procAddressMap.find(procname);
return iter != procAddressMap.end() ? iter->second : nullptr;
if (entry == &g_procTable[g_numProcs] || strcmp(entry->first, procname) != 0)
{
return nullptr;
}
return entry->second;
}
}

Просмотреть файл

@ -0,0 +1,77 @@
#!/usr/bin/python
# Copyright 2017 The ANGLE Project Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# gen_proc_table.py:
# Code generation for entry point loading tables.
# TODO(jmadill): Should be part of entry point generation.
import sys
from datetime import date
data_source_name = "proc_table_data.json"
out_file_name = "proc_table_autogen.cpp"
template_cpp = """// GENERATED FILE - DO NOT EDIT.
// Generated by {script_name} using data from {data_source_name}.
//
// Copyright {copyright_year} The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// getProcAddress loader table:
// Mapping from a string entry point name to function address.
//
#include "libGLESv2/proc_table.h"
#include "libGLESv2/entry_points_egl.h"
#include "libGLESv2/entry_points_egl_ext.h"
#include "libGLESv2/entry_points_gles_2_0_autogen.h"
#include "libGLESv2/entry_points_gles_2_0_ext.h"
#include "libGLESv2/entry_points_gles_3_0_autogen.h"
#include "libGLESv2/entry_points_gles_3_1.h"
#include "platform/Platform.h"
#define P(FUNC) reinterpret_cast<__eglMustCastToProperFunctionPointerType>(FUNC)
namespace egl
{{
ProcEntry g_procTable[] = {{
{proc_data}
}};
size_t g_numProcs = {num_procs};
}} // namespace egl
"""
sys.path.append('../libANGLE/renderer')
import angle_format
json_data = angle_format.load_json(data_source_name)
all_functions = {}
for description, functions in json_data.iteritems():
for function in functions:
if function.startswith("gl"):
all_functions[function] = "gl::" + function[2:]
elif function.startswith("egl"):
all_functions[function] = "egl::" + function[3:]
else:
all_functions[function] = function
proc_data = [(' {"%s", P(%s)}' % (func, angle_func)) for func, angle_func in sorted(all_functions.iteritems())]
with open(out_file_name, 'wt') as out_file:
output_cpp = template_cpp.format(
script_name = sys.argv[0],
data_source_name = data_source_name,
copyright_year = date.today().year,
proc_data = ",\n".join(proc_data),
num_procs = len(proc_data))
out_file.write(output_cpp)
out_file.close()

Просмотреть файл

@ -0,0 +1,24 @@
//
// Copyright 2017 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// getProcAddress loader table:
// Mapping from a string entry point name to function address.
//
#ifndef LIBGLESV2_PROC_TABLE_H_
#define LIBGLESV2_PROC_TABLE_H_
#include <EGL/egl.h>
#include <utility>
namespace egl
{
using ProcEntry = std::pair<const char *, __eglMustCastToProperFunctionPointerType>;
extern ProcEntry g_procTable[];
extern size_t g_numProcs;
} // namespace egl
#endif // LIBGLESV2_PROC_TABLE_H_

Просмотреть файл

@ -0,0 +1,548 @@
// GENERATED FILE - DO NOT EDIT.
// Generated by gen_proc_table.py using data from proc_table_data.json.
//
// Copyright 2017 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// getProcAddress loader table:
// Mapping from a string entry point name to function address.
//
#include "libGLESv2/proc_table.h"
#include "libGLESv2/entry_points_egl.h"
#include "libGLESv2/entry_points_egl_ext.h"
#include "libGLESv2/entry_points_gles_2_0_autogen.h"
#include "libGLESv2/entry_points_gles_2_0_ext.h"
#include "libGLESv2/entry_points_gles_3_0_autogen.h"
#include "libGLESv2/entry_points_gles_3_1.h"
#include "platform/Platform.h"
#define P(FUNC) reinterpret_cast<__eglMustCastToProperFunctionPointerType>(FUNC)
namespace egl
{
ProcEntry g_procTable[] = {
{"ANGLEGetDisplayPlatform", P(ANGLEGetDisplayPlatform)},
{"ANGLEResetDisplayPlatform", P(ANGLEResetDisplayPlatform)},
{"eglBindAPI", P(egl::BindAPI)},
{"eglBindTexImage", P(egl::BindTexImage)},
{"eglChooseConfig", P(egl::ChooseConfig)},
{"eglClientWaitSync", P(egl::ClientWaitSync)},
{"eglCopyBuffers", P(egl::CopyBuffers)},
{"eglCreateContext", P(egl::CreateContext)},
{"eglCreateDeviceANGLE", P(egl::CreateDeviceANGLE)},
{"eglCreateImage", P(egl::CreateImage)},
{"eglCreateImageKHR", P(egl::CreateImageKHR)},
{"eglCreatePbufferFromClientBuffer", P(egl::CreatePbufferFromClientBuffer)},
{"eglCreatePbufferSurface", P(egl::CreatePbufferSurface)},
{"eglCreatePixmapSurface", P(egl::CreatePixmapSurface)},
{"eglCreatePlatformPixmapSurface", P(egl::CreatePlatformPixmapSurface)},
{"eglCreatePlatformWindowSurface", P(egl::CreatePlatformWindowSurface)},
{"eglCreateStreamKHR", P(egl::CreateStreamKHR)},
{"eglCreateStreamProducerD3DTextureNV12ANGLE", P(egl::CreateStreamProducerD3DTextureNV12ANGLE)},
{"eglCreateSync", P(egl::CreateSync)},
{"eglCreateWindowSurface", P(egl::CreateWindowSurface)},
{"eglDestroyContext", P(egl::DestroyContext)},
{"eglDestroyImage", P(egl::DestroyImage)},
{"eglDestroyImageKHR", P(egl::DestroyImageKHR)},
{"eglDestroyStreamKHR", P(egl::DestroyStreamKHR)},
{"eglDestroySurface", P(egl::DestroySurface)},
{"eglDestroySync", P(egl::DestroySync)},
{"eglGetConfigAttrib", P(egl::GetConfigAttrib)},
{"eglGetConfigs", P(egl::GetConfigs)},
{"eglGetCurrentContext", P(egl::GetCurrentContext)},
{"eglGetCurrentDisplay", P(egl::GetCurrentDisplay)},
{"eglGetCurrentSurface", P(egl::GetCurrentSurface)},
{"eglGetDisplay", P(egl::GetDisplay)},
{"eglGetError", P(egl::GetError)},
{"eglGetPlatformDisplay", P(egl::GetPlatformDisplay)},
{"eglGetPlatformDisplayEXT", P(egl::GetPlatformDisplayEXT)},
{"eglGetProcAddress", P(egl::GetProcAddress)},
{"eglGetSyncAttrib", P(egl::GetSyncAttrib)},
{"eglGetSyncValuesCHROMIUM", P(egl::GetSyncValuesCHROMIUM)},
{"eglInitialize", P(egl::Initialize)},
{"eglMakeCurrent", P(egl::MakeCurrent)},
{"eglPostSubBufferNV", P(egl::PostSubBufferNV)},
{"eglProgramCacheGetAttribANGLE", P(egl::ProgramCacheGetAttribANGLE)},
{"eglProgramCachePopulateANGLE", P(egl::ProgramCachePopulateANGLE)},
{"eglProgramCacheQueryANGLE", P(egl::ProgramCacheQueryANGLE)},
{"eglProgramCacheResizeANGLE", P(egl::ProgramCacheResizeANGLE)},
{"eglQueryAPI", P(egl::QueryAPI)},
{"eglQueryContext", P(egl::QueryContext)},
{"eglQueryDeviceAttribEXT", P(egl::QueryDeviceAttribEXT)},
{"eglQueryDeviceStringEXT", P(egl::QueryDeviceStringEXT)},
{"eglQueryDisplayAttribEXT", P(egl::QueryDisplayAttribEXT)},
{"eglQueryStreamKHR", P(egl::QueryStreamKHR)},
{"eglQueryStreamu64KHR", P(egl::QueryStreamu64KHR)},
{"eglQueryString", P(egl::QueryString)},
{"eglQuerySurface", P(egl::QuerySurface)},
{"eglQuerySurfacePointerANGLE", P(egl::QuerySurfacePointerANGLE)},
{"eglReleaseDeviceANGLE", P(egl::ReleaseDeviceANGLE)},
{"eglReleaseTexImage", P(egl::ReleaseTexImage)},
{"eglReleaseThread", P(egl::ReleaseThread)},
{"eglStreamAttribKHR", P(egl::StreamAttribKHR)},
{"eglStreamConsumerAcquireKHR", P(egl::StreamConsumerAcquireKHR)},
{"eglStreamConsumerGLTextureExternalAttribsNV",
P(egl::StreamConsumerGLTextureExternalAttribsNV)},
{"eglStreamConsumerGLTextureExternalKHR", P(egl::StreamConsumerGLTextureExternalKHR)},
{"eglStreamConsumerReleaseKHR", P(egl::StreamConsumerReleaseKHR)},
{"eglStreamPostD3DTextureNV12ANGLE", P(egl::StreamPostD3DTextureNV12ANGLE)},
{"eglSurfaceAttrib", P(egl::SurfaceAttrib)},
{"eglSwapBuffers", P(egl::SwapBuffers)},
{"eglSwapBuffersWithDamageEXT", P(egl::SwapBuffersWithDamageEXT)},
{"eglSwapInterval", P(egl::SwapInterval)},
{"eglTerminate", P(egl::Terminate)},
{"eglWaitClient", P(egl::WaitClient)},
{"eglWaitGL", P(egl::WaitGL)},
{"eglWaitNative", P(egl::WaitNative)},
{"eglWaitSync", P(egl::WaitSync)},
{"glActiveShaderProgram", P(gl::ActiveShaderProgram)},
{"glActiveTexture", P(gl::ActiveTexture)},
{"glAttachShader", P(gl::AttachShader)},
{"glBeginQuery", P(gl::BeginQuery)},
{"glBeginQueryEXT", P(gl::BeginQueryEXT)},
{"glBeginTransformFeedback", P(gl::BeginTransformFeedback)},
{"glBindAttribLocation", P(gl::BindAttribLocation)},
{"glBindBuffer", P(gl::BindBuffer)},
{"glBindBufferBase", P(gl::BindBufferBase)},
{"glBindBufferRange", P(gl::BindBufferRange)},
{"glBindFramebuffer", P(gl::BindFramebuffer)},
{"glBindImageTexture", P(gl::BindImageTexture)},
{"glBindProgramPipeline", P(gl::BindProgramPipeline)},
{"glBindRenderbuffer", P(gl::BindRenderbuffer)},
{"glBindSampler", P(gl::BindSampler)},
{"glBindTexture", P(gl::BindTexture)},
{"glBindTransformFeedback", P(gl::BindTransformFeedback)},
{"glBindUniformLocationCHROMIUM", P(gl::BindUniformLocationCHROMIUM)},
{"glBindVertexArray", P(gl::BindVertexArray)},
{"glBindVertexArrayOES", P(gl::BindVertexArrayOES)},
{"glBindVertexBuffer", P(gl::BindVertexBuffer)},
{"glBlendColor", P(gl::BlendColor)},
{"glBlendEquation", P(gl::BlendEquation)},
{"glBlendEquationSeparate", P(gl::BlendEquationSeparate)},
{"glBlendFunc", P(gl::BlendFunc)},
{"glBlendFuncSeparate", P(gl::BlendFuncSeparate)},
{"glBlitFramebuffer", P(gl::BlitFramebuffer)},
{"glBlitFramebufferANGLE", P(gl::BlitFramebufferANGLE)},
{"glBufferData", P(gl::BufferData)},
{"glBufferSubData", P(gl::BufferSubData)},
{"glCheckFramebufferStatus", P(gl::CheckFramebufferStatus)},
{"glClear", P(gl::Clear)},
{"glClearBufferfi", P(gl::ClearBufferfi)},
{"glClearBufferfv", P(gl::ClearBufferfv)},
{"glClearBufferiv", P(gl::ClearBufferiv)},
{"glClearBufferuiv", P(gl::ClearBufferuiv)},
{"glClearColor", P(gl::ClearColor)},
{"glClearDepthf", P(gl::ClearDepthf)},
{"glClearStencil", P(gl::ClearStencil)},
{"glClientWaitSync", P(gl::ClientWaitSync)},
{"glColorMask", P(gl::ColorMask)},
{"glCompileShader", P(gl::CompileShader)},
{"glCompressedCopyTextureCHROMIUM", P(gl::CompressedCopyTextureCHROMIUM)},
{"glCompressedTexImage2D", P(gl::CompressedTexImage2D)},
{"glCompressedTexImage2DRobustANGLE", P(gl::CompressedTexImage2DRobustANGLE)},
{"glCompressedTexImage3D", P(gl::CompressedTexImage3D)},
{"glCompressedTexImage3DRobustANGLE", P(gl::CompressedTexImage3DRobustANGLE)},
{"glCompressedTexSubImage2D", P(gl::CompressedTexSubImage2D)},
{"glCompressedTexSubImage2DRobustANGLE", P(gl::CompressedTexSubImage2DRobustANGLE)},
{"glCompressedTexSubImage3D", P(gl::CompressedTexSubImage3D)},
{"glCompressedTexSubImage3DRobustANGLE", P(gl::CompressedTexSubImage3DRobustANGLE)},
{"glCopyBufferSubData", P(gl::CopyBufferSubData)},
{"glCopySubTextureCHROMIUM", P(gl::CopySubTextureCHROMIUM)},
{"glCopyTexImage2D", P(gl::CopyTexImage2D)},
{"glCopyTexSubImage2D", P(gl::CopyTexSubImage2D)},
{"glCopyTexSubImage3D", P(gl::CopyTexSubImage3D)},
{"glCopyTextureCHROMIUM", P(gl::CopyTextureCHROMIUM)},
{"glCreateProgram", P(gl::CreateProgram)},
{"glCreateShader", P(gl::CreateShader)},
{"glCreateShaderProgramv", P(gl::CreateShaderProgramv)},
{"glCullFace", P(gl::CullFace)},
{"glDebugMessageCallbackKHR", P(gl::DebugMessageCallbackKHR)},
{"glDebugMessageControlKHR", P(gl::DebugMessageControlKHR)},
{"glDebugMessageInsertKHR", P(gl::DebugMessageInsertKHR)},
{"glDeleteBuffers", P(gl::DeleteBuffers)},
{"glDeleteFencesNV", P(gl::DeleteFencesNV)},
{"glDeleteFramebuffers", P(gl::DeleteFramebuffers)},
{"glDeleteProgram", P(gl::DeleteProgram)},
{"glDeleteProgramPipelines", P(gl::DeleteProgramPipelines)},
{"glDeleteQueries", P(gl::DeleteQueries)},
{"glDeleteQueriesEXT", P(gl::DeleteQueriesEXT)},
{"glDeleteRenderbuffers", P(gl::DeleteRenderbuffers)},
{"glDeleteSamplers", P(gl::DeleteSamplers)},
{"glDeleteShader", P(gl::DeleteShader)},
{"glDeleteSync", P(gl::DeleteSync)},
{"glDeleteTextures", P(gl::DeleteTextures)},
{"glDeleteTransformFeedbacks", P(gl::DeleteTransformFeedbacks)},
{"glDeleteVertexArrays", P(gl::DeleteVertexArrays)},
{"glDeleteVertexArraysOES", P(gl::DeleteVertexArraysOES)},
{"glDepthFunc", P(gl::DepthFunc)},
{"glDepthMask", P(gl::DepthMask)},
{"glDepthRangef", P(gl::DepthRangef)},
{"glDetachShader", P(gl::DetachShader)},
{"glDisable", P(gl::Disable)},
{"glDisableVertexAttribArray", P(gl::DisableVertexAttribArray)},
{"glDiscardFramebufferEXT", P(gl::DiscardFramebufferEXT)},
{"glDispatchCompute", P(gl::DispatchCompute)},
{"glDispatchComputeIndirect", P(gl::DispatchComputeIndirect)},
{"glDrawArrays", P(gl::DrawArrays)},
{"glDrawArraysIndirect", P(gl::DrawArraysIndirect)},
{"glDrawArraysInstanced", P(gl::DrawArraysInstanced)},
{"glDrawArraysInstancedANGLE", P(gl::DrawArraysInstancedANGLE)},
{"glDrawBuffers", P(gl::DrawBuffers)},
{"glDrawBuffersEXT", P(gl::DrawBuffersEXT)},
{"glDrawElements", P(gl::DrawElements)},
{"glDrawElementsIndirect", P(gl::DrawElementsIndirect)},
{"glDrawElementsInstanced", P(gl::DrawElementsInstanced)},
{"glDrawElementsInstancedANGLE", P(gl::DrawElementsInstancedANGLE)},
{"glDrawRangeElements", P(gl::DrawRangeElements)},
{"glEGLImageTargetRenderbufferStorageOES", P(gl::EGLImageTargetRenderbufferStorageOES)},
{"glEGLImageTargetTexture2DOES", P(gl::EGLImageTargetTexture2DOES)},
{"glEnable", P(gl::Enable)},
{"glEnableVertexAttribArray", P(gl::EnableVertexAttribArray)},
{"glEndQuery", P(gl::EndQuery)},
{"glEndQueryEXT", P(gl::EndQueryEXT)},
{"glEndTransformFeedback", P(gl::EndTransformFeedback)},
{"glFenceSync", P(gl::FenceSync)},
{"glFinish", P(gl::Finish)},
{"glFinishFenceNV", P(gl::FinishFenceNV)},
{"glFlush", P(gl::Flush)},
{"glFlushMappedBufferRange", P(gl::FlushMappedBufferRange)},
{"glFlushMappedBufferRangeEXT", P(gl::FlushMappedBufferRangeEXT)},
{"glFramebufferParameteri", P(gl::FramebufferParameteri)},
{"glFramebufferRenderbuffer", P(gl::FramebufferRenderbuffer)},
{"glFramebufferTexture2D", P(gl::FramebufferTexture2D)},
{"glFramebufferTextureLayer", P(gl::FramebufferTextureLayer)},
{"glFramebufferTextureMultiviewLayeredANGLE", P(gl::FramebufferTextureMultiviewLayeredANGLE)},
{"glFramebufferTextureMultiviewSideBySideANGLE",
P(gl::FramebufferTextureMultiviewSideBySideANGLE)},
{"glFrontFace", P(gl::FrontFace)},
{"glGenBuffers", P(gl::GenBuffers)},
{"glGenFencesNV", P(gl::GenFencesNV)},
{"glGenFramebuffers", P(gl::GenFramebuffers)},
{"glGenProgramPipelines", P(gl::GenProgramPipelines)},
{"glGenQueries", P(gl::GenQueries)},
{"glGenQueriesEXT", P(gl::GenQueriesEXT)},
{"glGenRenderbuffers", P(gl::GenRenderbuffers)},
{"glGenSamplers", P(gl::GenSamplers)},
{"glGenTextures", P(gl::GenTextures)},
{"glGenTransformFeedbacks", P(gl::GenTransformFeedbacks)},
{"glGenVertexArrays", P(gl::GenVertexArrays)},
{"glGenVertexArraysOES", P(gl::GenVertexArraysOES)},
{"glGenerateMipmap", P(gl::GenerateMipmap)},
{"glGetActiveAttrib", P(gl::GetActiveAttrib)},
{"glGetActiveUniform", P(gl::GetActiveUniform)},
{"glGetActiveUniformBlockName", P(gl::GetActiveUniformBlockName)},
{"glGetActiveUniformBlockiv", P(gl::GetActiveUniformBlockiv)},
{"glGetActiveUniformBlockivRobustANGLE", P(gl::GetActiveUniformBlockivRobustANGLE)},
{"glGetActiveUniformsiv", P(gl::GetActiveUniformsiv)},
{"glGetAttachedShaders", P(gl::GetAttachedShaders)},
{"glGetAttribLocation", P(gl::GetAttribLocation)},
{"glGetBooleani_v", P(gl::GetBooleani_v)},
{"glGetBooleani_vRobustANGLE", P(gl::GetBooleani_vRobustANGLE)},
{"glGetBooleanv", P(gl::GetBooleanv)},
{"glGetBooleanvRobustANGLE", P(gl::GetBooleanvRobustANGLE)},
{"glGetBufferParameteri64v", P(gl::GetBufferParameteri64v)},
{"glGetBufferParameteri64vRobustANGLE", P(gl::GetBufferParameteri64vRobustANGLE)},
{"glGetBufferParameteriv", P(gl::GetBufferParameteriv)},
{"glGetBufferParameterivRobustANGLE", P(gl::GetBufferParameterivRobustANGLE)},
{"glGetBufferPointerv", P(gl::GetBufferPointerv)},
{"glGetBufferPointervOES", P(gl::GetBufferPointervOES)},
{"glGetBufferPointervRobustANGLE", P(gl::GetBufferPointervRobustANGLE)},
{"glGetDebugMessageLogKHR", P(gl::GetDebugMessageLogKHR)},
{"glGetError", P(gl::GetError)},
{"glGetFenceivNV", P(gl::GetFenceivNV)},
{"glGetFloatv", P(gl::GetFloatv)},
{"glGetFloatvRobustANGLE", P(gl::GetFloatvRobustANGLE)},
{"glGetFragDataLocation", P(gl::GetFragDataLocation)},
{"glGetFramebufferAttachmentParameteriv", P(gl::GetFramebufferAttachmentParameteriv)},
{"glGetFramebufferAttachmentParameterivRobustANGLE",
P(gl::GetFramebufferAttachmentParameterivRobustANGLE)},
{"glGetFramebufferParameteriv", P(gl::GetFramebufferParameteriv)},
{"glGetFramebufferParameterivRobustANGLE", P(gl::GetFramebufferParameterivRobustANGLE)},
{"glGetGraphicsResetStatusEXT", P(gl::GetGraphicsResetStatusEXT)},
{"glGetInteger64i_v", P(gl::GetInteger64i_v)},
{"glGetInteger64i_vRobustANGLE", P(gl::GetInteger64i_vRobustANGLE)},
{"glGetInteger64v", P(gl::GetInteger64v)},
{"glGetInteger64vRobustANGLE", P(gl::GetInteger64vRobustANGLE)},
{"glGetIntegeri_v", P(gl::GetIntegeri_v)},
{"glGetIntegeri_vRobustANGLE", P(gl::GetIntegeri_vRobustANGLE)},
{"glGetIntegerv", P(gl::GetIntegerv)},
{"glGetIntegervRobustANGLE", P(gl::GetIntegervRobustANGLE)},
{"glGetInternalformativ", P(gl::GetInternalformativ)},
{"glGetInternalformativRobustANGLE", P(gl::GetInternalformativRobustANGLE)},
{"glGetMultisamplefv", P(gl::GetMultisamplefv)},
{"glGetMultisamplefvRobustANGLE", P(gl::GetMultisamplefvRobustANGLE)},
{"glGetObjectLabelKHR", P(gl::GetObjectLabelKHR)},
{"glGetObjectPtrLabelKHR", P(gl::GetObjectPtrLabelKHR)},
{"glGetPointervKHR", P(gl::GetPointervKHR)},
{"glGetPointervRobustANGLERobustANGLE", P(gl::GetPointervRobustANGLERobustANGLE)},
{"glGetProgramBinary", P(gl::GetProgramBinary)},
{"glGetProgramBinaryOES", P(gl::GetProgramBinaryOES)},
{"glGetProgramInfoLog", P(gl::GetProgramInfoLog)},
{"glGetProgramInterfaceiv", P(gl::GetProgramInterfaceiv)},
{"glGetProgramInterfaceivRobustANGLE", P(gl::GetProgramInterfaceivRobustANGLE)},
{"glGetProgramPipelineInfoLog", P(gl::GetProgramPipelineInfoLog)},
{"glGetProgramPipelineiv", P(gl::GetProgramPipelineiv)},
{"glGetProgramResourceIndex", P(gl::GetProgramResourceIndex)},
{"glGetProgramResourceLocation", P(gl::GetProgramResourceLocation)},
{"glGetProgramResourceName", P(gl::GetProgramResourceName)},
{"glGetProgramResourceiv", P(gl::GetProgramResourceiv)},
{"glGetProgramiv", P(gl::GetProgramiv)},
{"glGetProgramivRobustANGLE", P(gl::GetProgramivRobustANGLE)},
{"glGetQueryObjecti64vEXT", P(gl::GetQueryObjecti64vEXT)},
{"glGetQueryObjecti64vRobustANGLE", P(gl::GetQueryObjecti64vRobustANGLE)},
{"glGetQueryObjectivEXT", P(gl::GetQueryObjectivEXT)},
{"glGetQueryObjectivRobustANGLE", P(gl::GetQueryObjectivRobustANGLE)},
{"glGetQueryObjectui64vEXT", P(gl::GetQueryObjectui64vEXT)},
{"glGetQueryObjectui64vRobustANGLE", P(gl::GetQueryObjectui64vRobustANGLE)},
{"glGetQueryObjectuiv", P(gl::GetQueryObjectuiv)},
{"glGetQueryObjectuivEXT", P(gl::GetQueryObjectuivEXT)},
{"glGetQueryObjectuivRobustANGLE", P(gl::GetQueryObjectuivRobustANGLE)},
{"glGetQueryiv", P(gl::GetQueryiv)},
{"glGetQueryivEXT", P(gl::GetQueryivEXT)},
{"glGetQueryivRobustANGLE", P(gl::GetQueryivRobustANGLE)},
{"glGetRenderbufferParameteriv", P(gl::GetRenderbufferParameteriv)},
{"glGetRenderbufferParameterivRobustANGLE", P(gl::GetRenderbufferParameterivRobustANGLE)},
{"glGetSamplerParameterIivRobustANGLE", P(gl::GetSamplerParameterIivRobustANGLE)},
{"glGetSamplerParameterIuivRobustANGLE", P(gl::GetSamplerParameterIuivRobustANGLE)},
{"glGetSamplerParameterfv", P(gl::GetSamplerParameterfv)},
{"glGetSamplerParameterfvRobustANGLE", P(gl::GetSamplerParameterfvRobustANGLE)},
{"glGetSamplerParameteriv", P(gl::GetSamplerParameteriv)},
{"glGetSamplerParameterivRobustANGLE", P(gl::GetSamplerParameterivRobustANGLE)},
{"glGetShaderInfoLog", P(gl::GetShaderInfoLog)},
{"glGetShaderPrecisionFormat", P(gl::GetShaderPrecisionFormat)},
{"glGetShaderSource", P(gl::GetShaderSource)},
{"glGetShaderiv", P(gl::GetShaderiv)},
{"glGetShaderivRobustANGLE", P(gl::GetShaderivRobustANGLE)},
{"glGetString", P(gl::GetString)},
{"glGetStringi", P(gl::GetStringi)},
{"glGetSynciv", P(gl::GetSynciv)},
{"glGetTexLevelParameterfv", P(gl::GetTexLevelParameterfv)},
{"glGetTexLevelParameterfvRobustANGLE", P(gl::GetTexLevelParameterfvRobustANGLE)},
{"glGetTexLevelParameteriv", P(gl::GetTexLevelParameteriv)},
{"glGetTexLevelParameterivRobustANGLE", P(gl::GetTexLevelParameterivRobustANGLE)},
{"glGetTexParameterIivRobustANGLE", P(gl::GetTexParameterIivRobustANGLE)},
{"glGetTexParameterIuivRobustANGLE", P(gl::GetTexParameterIuivRobustANGLE)},
{"glGetTexParameterfv", P(gl::GetTexParameterfv)},
{"glGetTexParameterfvRobustANGLE", P(gl::GetTexParameterfvRobustANGLE)},
{"glGetTexParameteriv", P(gl::GetTexParameteriv)},
{"glGetTexParameterivRobustANGLE", P(gl::GetTexParameterivRobustANGLE)},
{"glGetTransformFeedbackVarying", P(gl::GetTransformFeedbackVarying)},
{"glGetTranslatedShaderSourceANGLE", P(gl::GetTranslatedShaderSourceANGLE)},
{"glGetUniformBlockIndex", P(gl::GetUniformBlockIndex)},
{"glGetUniformIndices", P(gl::GetUniformIndices)},
{"glGetUniformLocation", P(gl::GetUniformLocation)},
{"glGetUniformfv", P(gl::GetUniformfv)},
{"glGetUniformfvRobustANGLE", P(gl::GetUniformfvRobustANGLE)},
{"glGetUniformiv", P(gl::GetUniformiv)},
{"glGetUniformivRobustANGLE", P(gl::GetUniformivRobustANGLE)},
{"glGetUniformuiv", P(gl::GetUniformuiv)},
{"glGetUniformuivRobustANGLE", P(gl::GetUniformuivRobustANGLE)},
{"glGetVertexAttribIiv", P(gl::GetVertexAttribIiv)},
{"glGetVertexAttribIivRobustANGLE", P(gl::GetVertexAttribIivRobustANGLE)},
{"glGetVertexAttribIuiv", P(gl::GetVertexAttribIuiv)},
{"glGetVertexAttribIuivRobustANGLE", P(gl::GetVertexAttribIuivRobustANGLE)},
{"glGetVertexAttribPointerv", P(gl::GetVertexAttribPointerv)},
{"glGetVertexAttribPointervRobustANGLE", P(gl::GetVertexAttribPointervRobustANGLE)},
{"glGetVertexAttribfv", P(gl::GetVertexAttribfv)},
{"glGetVertexAttribfvRobustANGLE", P(gl::GetVertexAttribfvRobustANGLE)},
{"glGetVertexAttribiv", P(gl::GetVertexAttribiv)},
{"glGetVertexAttribivRobustANGLE", P(gl::GetVertexAttribivRobustANGLE)},
{"glGetnUniformfvEXT", P(gl::GetnUniformfvEXT)},
{"glGetnUniformfvRobustANGLE", P(gl::GetnUniformfvRobustANGLE)},
{"glGetnUniformivEXT", P(gl::GetnUniformivEXT)},
{"glGetnUniformivRobustANGLE", P(gl::GetnUniformivRobustANGLE)},
{"glGetnUniformuivRobustANGLE", P(gl::GetnUniformuivRobustANGLE)},
{"glHint", P(gl::Hint)},
{"glInsertEventMarkerEXT", P(gl::InsertEventMarkerEXT)},
{"glInvalidateFramebuffer", P(gl::InvalidateFramebuffer)},
{"glInvalidateSubFramebuffer", P(gl::InvalidateSubFramebuffer)},
{"glIsBuffer", P(gl::IsBuffer)},
{"glIsEnabled", P(gl::IsEnabled)},
{"glIsFenceNV", P(gl::IsFenceNV)},
{"glIsFramebuffer", P(gl::IsFramebuffer)},
{"glIsProgram", P(gl::IsProgram)},
{"glIsProgramPipeline", P(gl::IsProgramPipeline)},
{"glIsQuery", P(gl::IsQuery)},
{"glIsQueryEXT", P(gl::IsQueryEXT)},
{"glIsRenderbuffer", P(gl::IsRenderbuffer)},
{"glIsSampler", P(gl::IsSampler)},
{"glIsShader", P(gl::IsShader)},
{"glIsSync", P(gl::IsSync)},
{"glIsTexture", P(gl::IsTexture)},
{"glIsTransformFeedback", P(gl::IsTransformFeedback)},
{"glIsVertexArray", P(gl::IsVertexArray)},
{"glIsVertexArrayOES", P(gl::IsVertexArrayOES)},
{"glLineWidth", P(gl::LineWidth)},
{"glLinkProgram", P(gl::LinkProgram)},
{"glMapBufferOES", P(gl::MapBufferOES)},
{"glMapBufferRange", P(gl::MapBufferRange)},
{"glMapBufferRangeEXT", P(gl::MapBufferRangeEXT)},
{"glMemoryBarrier", P(gl::MemoryBarrier)},
{"glMemoryBarrierByRegion", P(gl::MemoryBarrierByRegion)},
{"glObjectLabelKHR", P(gl::ObjectLabelKHR)},
{"glObjectPtrLabelKHR", P(gl::ObjectPtrLabelKHR)},
{"glPauseTransformFeedback", P(gl::PauseTransformFeedback)},
{"glPixelStorei", P(gl::PixelStorei)},
{"glPolygonOffset", P(gl::PolygonOffset)},
{"glPopDebugGroupKHR", P(gl::PopDebugGroupKHR)},
{"glPopGroupMarkerEXT", P(gl::PopGroupMarkerEXT)},
{"glProgramBinary", P(gl::ProgramBinary)},
{"glProgramBinaryOES", P(gl::ProgramBinaryOES)},
{"glProgramParameteri", P(gl::ProgramParameteri)},
{"glProgramUniform1f", P(gl::ProgramUniform1f)},
{"glProgramUniform1fv", P(gl::ProgramUniform1fv)},
{"glProgramUniform1i", P(gl::ProgramUniform1i)},
{"glProgramUniform1iv", P(gl::ProgramUniform1iv)},
{"glProgramUniform1ui", P(gl::ProgramUniform1ui)},
{"glProgramUniform1uiv", P(gl::ProgramUniform1uiv)},
{"glProgramUniform2f", P(gl::ProgramUniform2f)},
{"glProgramUniform2fv", P(gl::ProgramUniform2fv)},
{"glProgramUniform2i", P(gl::ProgramUniform2i)},
{"glProgramUniform2iv", P(gl::ProgramUniform2iv)},
{"glProgramUniform2ui", P(gl::ProgramUniform2ui)},
{"glProgramUniform2uiv", P(gl::ProgramUniform2uiv)},
{"glProgramUniform3f", P(gl::ProgramUniform3f)},
{"glProgramUniform3fv", P(gl::ProgramUniform3fv)},
{"glProgramUniform3i", P(gl::ProgramUniform3i)},
{"glProgramUniform3iv", P(gl::ProgramUniform3iv)},
{"glProgramUniform3ui", P(gl::ProgramUniform3ui)},
{"glProgramUniform3uiv", P(gl::ProgramUniform3uiv)},
{"glProgramUniform4f", P(gl::ProgramUniform4f)},
{"glProgramUniform4fv", P(gl::ProgramUniform4fv)},
{"glProgramUniform4i", P(gl::ProgramUniform4i)},
{"glProgramUniform4iv", P(gl::ProgramUniform4iv)},
{"glProgramUniform4ui", P(gl::ProgramUniform4ui)},
{"glProgramUniform4uiv", P(gl::ProgramUniform4uiv)},
{"glProgramUniformMatrix2fv", P(gl::ProgramUniformMatrix2fv)},
{"glProgramUniformMatrix2x3fv", P(gl::ProgramUniformMatrix2x3fv)},
{"glProgramUniformMatrix2x4fv", P(gl::ProgramUniformMatrix2x4fv)},
{"glProgramUniformMatrix3fv", P(gl::ProgramUniformMatrix3fv)},
{"glProgramUniformMatrix3x2fv", P(gl::ProgramUniformMatrix3x2fv)},
{"glProgramUniformMatrix3x4fv", P(gl::ProgramUniformMatrix3x4fv)},
{"glProgramUniformMatrix4fv", P(gl::ProgramUniformMatrix4fv)},
{"glProgramUniformMatrix4x2fv", P(gl::ProgramUniformMatrix4x2fv)},
{"glProgramUniformMatrix4x3fv", P(gl::ProgramUniformMatrix4x3fv)},
{"glPushDebugGroupKHR", P(gl::PushDebugGroupKHR)},
{"glPushGroupMarkerEXT", P(gl::PushGroupMarkerEXT)},
{"glQueryCounterEXT", P(gl::QueryCounterEXT)},
{"glReadBuffer", P(gl::ReadBuffer)},
{"glReadPixels", P(gl::ReadPixels)},
{"glReadPixelsRobustANGLE", P(gl::ReadPixelsRobustANGLE)},
{"glReadnPixelsEXT", P(gl::ReadnPixelsEXT)},
{"glReadnPixelsRobustANGLE", P(gl::ReadnPixelsRobustANGLE)},
{"glReleaseShaderCompiler", P(gl::ReleaseShaderCompiler)},
{"glRenderbufferStorage", P(gl::RenderbufferStorage)},
{"glRenderbufferStorageMultisample", P(gl::RenderbufferStorageMultisample)},
{"glRenderbufferStorageMultisampleANGLE", P(gl::RenderbufferStorageMultisampleANGLE)},
{"glRequestExtensionANGLE", P(gl::RequestExtensionANGLE)},
{"glResumeTransformFeedback", P(gl::ResumeTransformFeedback)},
{"glSampleCoverage", P(gl::SampleCoverage)},
{"glSampleMaski", P(gl::SampleMaski)},
{"glSamplerParameterIivRobustANGLE", P(gl::SamplerParameterIivRobustANGLE)},
{"glSamplerParameterIuivRobustANGLE", P(gl::SamplerParameterIuivRobustANGLE)},
{"glSamplerParameterf", P(gl::SamplerParameterf)},
{"glSamplerParameterfv", P(gl::SamplerParameterfv)},
{"glSamplerParameterfvRobustANGLE", P(gl::SamplerParameterfvRobustANGLE)},
{"glSamplerParameteri", P(gl::SamplerParameteri)},
{"glSamplerParameteriv", P(gl::SamplerParameteriv)},
{"glSamplerParameterivRobustANGLE", P(gl::SamplerParameterivRobustANGLE)},
{"glScissor", P(gl::Scissor)},
{"glSetFenceNV", P(gl::SetFenceNV)},
{"glShaderBinary", P(gl::ShaderBinary)},
{"glShaderSource", P(gl::ShaderSource)},
{"glStencilFunc", P(gl::StencilFunc)},
{"glStencilFuncSeparate", P(gl::StencilFuncSeparate)},
{"glStencilMask", P(gl::StencilMask)},
{"glStencilMaskSeparate", P(gl::StencilMaskSeparate)},
{"glStencilOp", P(gl::StencilOp)},
{"glStencilOpSeparate", P(gl::StencilOpSeparate)},
{"glTestFenceNV", P(gl::TestFenceNV)},
{"glTexImage2D", P(gl::TexImage2D)},
{"glTexImage2DRobustANGLE", P(gl::TexImage2DRobustANGLE)},
{"glTexImage3D", P(gl::TexImage3D)},
{"glTexImage3DRobustANGLE", P(gl::TexImage3DRobustANGLE)},
{"glTexParameterIivRobustANGLE", P(gl::TexParameterIivRobustANGLE)},
{"glTexParameterIuivRobustANGLE", P(gl::TexParameterIuivRobustANGLE)},
{"glTexParameterf", P(gl::TexParameterf)},
{"glTexParameterfv", P(gl::TexParameterfv)},
{"glTexParameterfvRobustANGLE", P(gl::TexParameterfvRobustANGLE)},
{"glTexParameteri", P(gl::TexParameteri)},
{"glTexParameteriv", P(gl::TexParameteriv)},
{"glTexParameterivRobustANGLE", P(gl::TexParameterivRobustANGLE)},
{"glTexStorage2D", P(gl::TexStorage2D)},
{"glTexStorage2DEXT", P(gl::TexStorage2DEXT)},
{"glTexStorage2DMultisample", P(gl::TexStorage2DMultisample)},
{"glTexStorage3D", P(gl::TexStorage3D)},
{"glTexSubImage2D", P(gl::TexSubImage2D)},
{"glTexSubImage2DRobustANGLE", P(gl::TexSubImage2DRobustANGLE)},
{"glTexSubImage3D", P(gl::TexSubImage3D)},
{"glTexSubImage3DRobustANGLE", P(gl::TexSubImage3DRobustANGLE)},
{"glTransformFeedbackVaryings", P(gl::TransformFeedbackVaryings)},
{"glUniform1f", P(gl::Uniform1f)},
{"glUniform1fv", P(gl::Uniform1fv)},
{"glUniform1i", P(gl::Uniform1i)},
{"glUniform1iv", P(gl::Uniform1iv)},
{"glUniform1ui", P(gl::Uniform1ui)},
{"glUniform1uiv", P(gl::Uniform1uiv)},
{"glUniform2f", P(gl::Uniform2f)},
{"glUniform2fv", P(gl::Uniform2fv)},
{"glUniform2i", P(gl::Uniform2i)},
{"glUniform2iv", P(gl::Uniform2iv)},
{"glUniform2ui", P(gl::Uniform2ui)},
{"glUniform2uiv", P(gl::Uniform2uiv)},
{"glUniform3f", P(gl::Uniform3f)},
{"glUniform3fv", P(gl::Uniform3fv)},
{"glUniform3i", P(gl::Uniform3i)},
{"glUniform3iv", P(gl::Uniform3iv)},
{"glUniform3ui", P(gl::Uniform3ui)},
{"glUniform3uiv", P(gl::Uniform3uiv)},
{"glUniform4f", P(gl::Uniform4f)},
{"glUniform4fv", P(gl::Uniform4fv)},
{"glUniform4i", P(gl::Uniform4i)},
{"glUniform4iv", P(gl::Uniform4iv)},
{"glUniform4ui", P(gl::Uniform4ui)},
{"glUniform4uiv", P(gl::Uniform4uiv)},
{"glUniformBlockBinding", P(gl::UniformBlockBinding)},
{"glUniformMatrix2fv", P(gl::UniformMatrix2fv)},
{"glUniformMatrix2x3fv", P(gl::UniformMatrix2x3fv)},
{"glUniformMatrix2x4fv", P(gl::UniformMatrix2x4fv)},
{"glUniformMatrix3fv", P(gl::UniformMatrix3fv)},
{"glUniformMatrix3x2fv", P(gl::UniformMatrix3x2fv)},
{"glUniformMatrix3x4fv", P(gl::UniformMatrix3x4fv)},
{"glUniformMatrix4fv", P(gl::UniformMatrix4fv)},
{"glUniformMatrix4x2fv", P(gl::UniformMatrix4x2fv)},
{"glUniformMatrix4x3fv", P(gl::UniformMatrix4x3fv)},
{"glUnmapBuffer", P(gl::UnmapBuffer)},
{"glUnmapBufferOES", P(gl::UnmapBufferOES)},
{"glUseProgram", P(gl::UseProgram)},
{"glUseProgramStages", P(gl::UseProgramStages)},
{"glValidateProgram", P(gl::ValidateProgram)},
{"glValidateProgramPipeline", P(gl::ValidateProgramPipeline)},
{"glVertexAttrib1f", P(gl::VertexAttrib1f)},
{"glVertexAttrib1fv", P(gl::VertexAttrib1fv)},
{"glVertexAttrib2f", P(gl::VertexAttrib2f)},
{"glVertexAttrib2fv", P(gl::VertexAttrib2fv)},
{"glVertexAttrib3f", P(gl::VertexAttrib3f)},
{"glVertexAttrib3fv", P(gl::VertexAttrib3fv)},
{"glVertexAttrib4f", P(gl::VertexAttrib4f)},
{"glVertexAttrib4fv", P(gl::VertexAttrib4fv)},
{"glVertexAttribBinding", P(gl::VertexAttribBinding)},
{"glVertexAttribDivisor", P(gl::VertexAttribDivisor)},
{"glVertexAttribDivisorANGLE", P(gl::VertexAttribDivisorANGLE)},
{"glVertexAttribFormat", P(gl::VertexAttribFormat)},
{"glVertexAttribI4i", P(gl::VertexAttribI4i)},
{"glVertexAttribI4iv", P(gl::VertexAttribI4iv)},
{"glVertexAttribI4ui", P(gl::VertexAttribI4ui)},
{"glVertexAttribI4uiv", P(gl::VertexAttribI4uiv)},
{"glVertexAttribIFormat", P(gl::VertexAttribIFormat)},
{"glVertexAttribIPointer", P(gl::VertexAttribIPointer)},
{"glVertexAttribPointer", P(gl::VertexAttribPointer)},
{"glVertexBindingDivisor", P(gl::VertexBindingDivisor)},
{"glViewport", P(gl::Viewport)},
{"glWaitSync", P(gl::WaitSync)}};
size_t g_numProcs = 516;
} // namespace egl

Просмотреть файл

@ -0,0 +1,662 @@
{
"GLES2 core": [
"glActiveTexture",
"glAttachShader",
"glBindAttribLocation",
"glBindBuffer",
"glBindFramebuffer",
"glBindRenderbuffer",
"glBindTexture",
"glBlendColor",
"glBlendEquation",
"glBlendEquationSeparate",
"glBlendFunc",
"glBlendFuncSeparate",
"glBufferData",
"glBufferSubData",
"glCheckFramebufferStatus",
"glClear",
"glClearColor",
"glClearDepthf",
"glClearStencil",
"glCompileShader",
"glColorMask",
"glCompressedTexImage2D",
"glCompressedTexSubImage2D",
"glCopyTexImage2D",
"glCopyTexSubImage2D",
"glCreateProgram",
"glCreateShader",
"glCullFace",
"glDeleteBuffers",
"glDeleteFramebuffers",
"glDeleteProgram",
"glDeleteRenderbuffers",
"glDeleteShader",
"glDeleteTextures",
"glDepthFunc",
"glDepthMask",
"glDepthRangef",
"glDetachShader",
"glDisable",
"glDisableVertexAttribArray",
"glDrawArrays",
"glDrawElements",
"glEnable",
"glEnableVertexAttribArray",
"glFinish",
"glFlush",
"glFramebufferRenderbuffer",
"glFramebufferTexture2D",
"glFrontFace",
"glGenBuffers",
"glGenerateMipmap",
"glGenFramebuffers",
"glGenRenderbuffers",
"glGenTextures",
"glGetActiveAttrib",
"glGetActiveUniform",
"glGetAttachedShaders",
"glGetAttribLocation",
"glGetBooleanv",
"glGetBufferParameteriv",
"glGetError",
"glGetFloatv",
"glGetFramebufferAttachmentParameteriv",
"glGetIntegerv",
"glGetProgramiv",
"glGetProgramInfoLog",
"glGetRenderbufferParameteriv",
"glGetShaderiv",
"glGetShaderInfoLog",
"glGetShaderPrecisionFormat",
"glGetShaderSource",
"glGetString",
"glGetTexParameterfv",
"glGetTexParameteriv",
"glGetUniformfv",
"glGetUniformiv",
"glGetUniformLocation",
"glGetVertexAttribfv",
"glGetVertexAttribiv",
"glGetVertexAttribPointerv",
"glHint",
"glIsBuffer",
"glIsEnabled",
"glIsFramebuffer",
"glIsProgram",
"glIsRenderbuffer",
"glIsShader",
"glIsTexture",
"glLineWidth",
"glLinkProgram",
"glPixelStorei",
"glPolygonOffset",
"glReadPixels",
"glReleaseShaderCompiler",
"glRenderbufferStorage",
"glSampleCoverage",
"glScissor",
"glShaderBinary",
"glShaderSource",
"glStencilFunc",
"glStencilFuncSeparate",
"glStencilMask",
"glStencilMaskSeparate",
"glStencilOp",
"glStencilOpSeparate",
"glTexImage2D",
"glTexParameterf",
"glTexParameterfv",
"glTexParameteri",
"glTexParameteriv",
"glTexSubImage2D",
"glUniform1f",
"glUniform1fv",
"glUniform1i",
"glUniform1iv",
"glUniform2f",
"glUniform2fv",
"glUniform2i",
"glUniform2iv",
"glUniform3f",
"glUniform3fv",
"glUniform3i",
"glUniform3iv",
"glUniform4f",
"glUniform4fv",
"glUniform4i",
"glUniform4iv",
"glUniformMatrix2fv",
"glUniformMatrix3fv",
"glUniformMatrix4fv",
"glUseProgram",
"glValidateProgram",
"glVertexAttrib1f",
"glVertexAttrib1fv",
"glVertexAttrib2f",
"glVertexAttrib2fv",
"glVertexAttrib3f",
"glVertexAttrib3fv",
"glVertexAttrib4f",
"glVertexAttrib4fv",
"glVertexAttribPointer",
"glViewport"
],
"GL_ANGLE_framebuffer_blit": [
"glBlitFramebufferANGLE"
],
"GL_ANGLE_framebuffer_multisample": [
"glRenderbufferStorageMultisampleANGLE"
],
"GL_EXT_discard_framebuffer": [
"glDiscardFramebufferEXT"
],
"GL_NV_fence": [
"glDeleteFencesNV",
"glGenFencesNV",
"glIsFenceNV",
"glTestFenceNV",
"glGetFenceivNV",
"glFinishFenceNV",
"glSetFenceNV"
],
"GL_ANGLE_translated_shader_source": [
"glGetTranslatedShaderSourceANGLE"
],
"GL_EXT_texture_storage": [
"glTexStorage2DEXT"
],
"GL_EXT_robustness": [
"glGetGraphicsResetStatusEXT",
"glReadnPixelsEXT",
"glGetnUniformfvEXT",
"glGetnUniformivEXT"
],
"GL_EXT_occlusion_query_boolean": [
"glGenQueriesEXT",
"glDeleteQueriesEXT",
"glIsQueryEXT",
"glBeginQueryEXT",
"glEndQueryEXT",
"glGetQueryivEXT",
"glGetQueryObjectuivEXT"
],
"GL_EXT_disjoint_timer_query": [
"glGenQueriesEXT",
"glDeleteQueriesEXT",
"glIsQueryEXT",
"glBeginQueryEXT",
"glEndQueryEXT",
"glQueryCounterEXT",
"glGetQueryivEXT",
"glGetQueryObjectivEXT",
"glGetQueryObjectuivEXT",
"glGetQueryObjecti64vEXT",
"glGetQueryObjectui64vEXT"
],
"GL_EXT_draw_buffers": [
"glDrawBuffersEXT"
],
"GL_ANGLE_instanced_arrays": [
"glDrawArraysInstancedANGLE",
"glDrawElementsInstancedANGLE",
"glVertexAttribDivisorANGLE"
],
"GL_OES_get_program_binary": [
"glGetProgramBinaryOES",
"glProgramBinaryOES"
],
"GL_OES_mapbuffer": [
"glMapBufferOES",
"glUnmapBufferOES",
"glGetBufferPointervOES"
],
"GL_EXT_map_buffer_range": [
"glMapBufferRangeEXT",
"glFlushMappedBufferRangeEXT"
],
"GL_EXT_debug_marker": [
"glInsertEventMarkerEXT",
"glPushGroupMarkerEXT",
"glPopGroupMarkerEXT"
],
"GL_OES_EGL_image": [
"glEGLImageTargetTexture2DOES",
"glEGLImageTargetRenderbufferStorageOES"
],
"GL_OES_vertex_array_object": [
"glBindVertexArrayOES",
"glDeleteVertexArraysOES",
"glGenVertexArraysOES",
"glIsVertexArrayOES"
],
"GL_KHR_debug": [
"glDebugMessageControlKHR",
"glDebugMessageInsertKHR",
"glDebugMessageCallbackKHR",
"glGetDebugMessageLogKHR",
"glPushDebugGroupKHR",
"glPopDebugGroupKHR",
"glObjectLabelKHR",
"glGetObjectLabelKHR",
"glObjectPtrLabelKHR",
"glGetObjectPtrLabelKHR",
"glGetPointervKHR"
],
"GL_CHROMIUM_bind_uniform_location": [
"glBindUniformLocationCHROMIUM"
],
"GL_CHROMIUM_copy_texture": [
"glCopyTextureCHROMIUM",
"glCopySubTextureCHROMIUM"
],
"GL_CHROMIUM_copy_compressed_texture": [
"glCompressedCopyTextureCHROMIUM"
],
"GL_ANGLE_request_extension": [
"glRequestExtensionANGLE"
],
"GL_ANGLE_robust_client_memory": [
"glGetBooleanvRobustANGLE",
"glGetBufferParameterivRobustANGLE",
"glGetFloatvRobustANGLE",
"glGetFramebufferAttachmentParameterivRobustANGLE",
"glGetIntegervRobustANGLE",
"glGetProgramivRobustANGLE",
"glGetRenderbufferParameterivRobustANGLE",
"glGetShaderivRobustANGLE",
"glGetTexParameterfvRobustANGLE",
"glGetTexParameterivRobustANGLE",
"glGetUniformfvRobustANGLE",
"glGetUniformivRobustANGLE",
"glGetVertexAttribfvRobustANGLE",
"glGetVertexAttribivRobustANGLE",
"glGetVertexAttribPointervRobustANGLE",
"glReadPixelsRobustANGLE",
"glTexImage2DRobustANGLE",
"glTexParameterfvRobustANGLE",
"glTexParameterivRobustANGLE",
"glTexSubImage2DRobustANGLE",
"glTexImage3DRobustANGLE",
"glTexSubImage3DRobustANGLE",
"glCompressedTexImage2DRobustANGLE",
"glCompressedTexSubImage2DRobustANGLE",
"glCompressedTexImage3DRobustANGLE",
"glCompressedTexSubImage3DRobustANGLE",
"glGetQueryivRobustANGLE",
"glGetQueryObjectuivRobustANGLE",
"glGetBufferPointervRobustANGLE",
"glGetIntegeri_vRobustANGLE",
"glGetInternalformativRobustANGLE",
"glGetVertexAttribIivRobustANGLE",
"glGetVertexAttribIuivRobustANGLE",
"glGetUniformuivRobustANGLE",
"glGetActiveUniformBlockivRobustANGLE",
"glGetInteger64vRobustANGLE",
"glGetInteger64i_vRobustANGLE",
"glGetBufferParameteri64vRobustANGLE",
"glSamplerParameterivRobustANGLE",
"glSamplerParameterfvRobustANGLE",
"glGetSamplerParameterivRobustANGLE",
"glGetSamplerParameterfvRobustANGLE",
"glGetFramebufferParameterivRobustANGLE",
"glGetProgramInterfaceivRobustANGLE",
"glGetBooleani_vRobustANGLE",
"glGetMultisamplefvRobustANGLE",
"glGetTexLevelParameterivRobustANGLE",
"glGetTexLevelParameterfvRobustANGLE",
"glGetPointervRobustANGLERobustANGLE",
"glReadnPixelsRobustANGLE",
"glGetnUniformfvRobustANGLE",
"glGetnUniformivRobustANGLE",
"glGetnUniformuivRobustANGLE",
"glTexParameterIivRobustANGLE",
"glTexParameterIuivRobustANGLE",
"glGetTexParameterIivRobustANGLE",
"glGetTexParameterIuivRobustANGLE",
"glSamplerParameterIivRobustANGLE",
"glSamplerParameterIuivRobustANGLE",
"glGetSamplerParameterIivRobustANGLE",
"glGetSamplerParameterIuivRobustANGLE",
"glGetQueryObjectivRobustANGLE",
"glGetQueryObjecti64vRobustANGLE",
"glGetQueryObjectui64vRobustANGLE"
],
"GL_ANGLE_multiview": [
"glFramebufferTextureMultiviewLayeredANGLE",
"glFramebufferTextureMultiviewSideBySideANGLE"
],
"GLES3 core": [
"glReadBuffer",
"glDrawRangeElements",
"glTexImage3D",
"glTexSubImage3D",
"glCopyTexSubImage3D",
"glCompressedTexImage3D",
"glCompressedTexSubImage3D",
"glGenQueries",
"glDeleteQueries",
"glIsQuery",
"glBeginQuery",
"glEndQuery",
"glGetQueryiv",
"glGetQueryObjectuiv",
"glUnmapBuffer",
"glGetBufferPointerv",
"glDrawBuffers",
"glUniformMatrix2x3fv",
"glUniformMatrix3x2fv",
"glUniformMatrix2x4fv",
"glUniformMatrix4x2fv",
"glUniformMatrix3x4fv",
"glUniformMatrix4x3fv",
"glBlitFramebuffer",
"glRenderbufferStorageMultisample",
"glFramebufferTextureLayer",
"glMapBufferRange",
"glFlushMappedBufferRange",
"glBindVertexArray",
"glDeleteVertexArrays",
"glGenVertexArrays",
"glIsVertexArray",
"glGetIntegeri_v",
"glBeginTransformFeedback",
"glEndTransformFeedback",
"glBindBufferRange",
"glBindBufferBase",
"glTransformFeedbackVaryings",
"glGetTransformFeedbackVarying",
"glVertexAttribIPointer",
"glGetVertexAttribIiv",
"glGetVertexAttribIuiv",
"glVertexAttribI4i",
"glVertexAttribI4ui",
"glVertexAttribI4iv",
"glVertexAttribI4uiv",
"glGetUniformuiv",
"glGetFragDataLocation",
"glUniform1ui",
"glUniform2ui",
"glUniform3ui",
"glUniform4ui",
"glUniform1uiv",
"glUniform2uiv",
"glUniform3uiv",
"glUniform4uiv",
"glClearBufferiv",
"glClearBufferuiv",
"glClearBufferfv",
"glClearBufferfi",
"glGetStringi",
"glCopyBufferSubData",
"glGetUniformIndices",
"glGetActiveUniformsiv",
"glGetUniformBlockIndex",
"glGetActiveUniformBlockiv",
"glGetActiveUniformBlockName",
"glUniformBlockBinding",
"glDrawArraysInstanced",
"glDrawElementsInstanced",
"glFenceSync",
"glIsSync",
"glDeleteSync",
"glClientWaitSync",
"glWaitSync",
"glGetInteger64v",
"glGetSynciv",
"glGetInteger64i_v",
"glGetBufferParameteri64v",
"glGenSamplers",
"glDeleteSamplers",
"glIsSampler",
"glBindSampler",
"glSamplerParameteri",
"glSamplerParameteriv",
"glSamplerParameterf",
"glSamplerParameterfv",
"glGetSamplerParameteriv",
"glGetSamplerParameterfv",
"glVertexAttribDivisor",
"glBindTransformFeedback",
"glDeleteTransformFeedbacks",
"glGenTransformFeedbacks",
"glIsTransformFeedback",
"glPauseTransformFeedback",
"glResumeTransformFeedback",
"glGetProgramBinary",
"glProgramBinary",
"glProgramParameteri",
"glInvalidateFramebuffer",
"glInvalidateSubFramebuffer",
"glTexStorage2D",
"glTexStorage3D",
"glGetInternalformativ"
],
"GLES31 core": [
"glDispatchCompute",
"glDispatchComputeIndirect",
"glDrawArraysIndirect",
"glDrawElementsIndirect",
"glFramebufferParameteri",
"glGetFramebufferParameteriv",
"glGetProgramInterfaceiv",
"glGetProgramResourceIndex",
"glGetProgramResourceName",
"glGetProgramResourceiv",
"glGetProgramResourceLocation",
"glUseProgramStages",
"glActiveShaderProgram",
"glCreateShaderProgramv",
"glBindProgramPipeline",
"glDeleteProgramPipelines",
"glGenProgramPipelines",
"glIsProgramPipeline",
"glGetProgramPipelineiv",
"glProgramUniform1i",
"glProgramUniform2i",
"glProgramUniform3i",
"glProgramUniform4i",
"glProgramUniform1ui",
"glProgramUniform2ui",
"glProgramUniform3ui",
"glProgramUniform4ui",
"glProgramUniform1f",
"glProgramUniform2f",
"glProgramUniform3f",
"glProgramUniform4f",
"glProgramUniform1iv",
"glProgramUniform2iv",
"glProgramUniform3iv",
"glProgramUniform4iv",
"glProgramUniform1uiv",
"glProgramUniform2uiv",
"glProgramUniform3uiv",
"glProgramUniform4uiv",
"glProgramUniform1fv",
"glProgramUniform2fv",
"glProgramUniform3fv",
"glProgramUniform4fv",
"glProgramUniformMatrix2fv",
"glProgramUniformMatrix3fv",
"glProgramUniformMatrix4fv",
"glProgramUniformMatrix2x3fv",
"glProgramUniformMatrix3x2fv",
"glProgramUniformMatrix2x4fv",
"glProgramUniformMatrix4x2fv",
"glProgramUniformMatrix3x4fv",
"glProgramUniformMatrix4x3fv",
"glValidateProgramPipeline",
"glGetProgramPipelineInfoLog",
"glBindImageTexture",
"glGetBooleani_v",
"glMemoryBarrier",
"glMemoryBarrierByRegion",
"glTexStorage2DMultisample",
"glGetMultisamplefv",
"glSampleMaski",
"glGetTexLevelParameteriv",
"glGetTexLevelParameterfv",
"glBindVertexBuffer",
"glVertexAttribFormat",
"glVertexAttribIFormat",
"glVertexAttribBinding",
"glVertexBindingDivisor"
],
"EGL 1.0": [
"eglChooseConfig",
"eglCopyBuffers",
"eglCreateContext",
"eglCreatePbufferSurface",
"eglCreatePixmapSurface",
"eglCreateWindowSurface",
"eglDestroyContext",
"eglDestroySurface",
"eglGetConfigAttrib",
"eglGetConfigs",
"eglGetCurrentDisplay",
"eglGetCurrentSurface",
"eglGetDisplay",
"eglGetError",
"eglGetProcAddress",
"eglInitialize",
"eglMakeCurrent",
"eglQueryContext",
"eglQueryString",
"eglQuerySurface",
"eglSwapBuffers",
"eglTerminate",
"eglWaitGL",
"eglWaitNative"
],
"EGL 1.1": [
"eglBindTexImage",
"eglReleaseTexImage",
"eglSurfaceAttrib",
"eglSwapInterval"
],
"EGL 1.2": [
"eglBindAPI",
"eglQueryAPI",
"eglCreatePbufferFromClientBuffer",
"eglReleaseThread",
"eglWaitClient"
],
"EGL 1.4": [
"eglGetCurrentContext"
],
"EGL 1.5": [
"eglCreateSync",
"eglDestroySync",
"eglClientWaitSync",
"eglGetSyncAttrib",
"eglCreateImage",
"eglDestroyImage",
"eglGetPlatformDisplay",
"eglCreatePlatformWindowSurface",
"eglCreatePlatformPixmapSurface",
"eglWaitSync"
],
"EGL_ANGLE_query_surface_pointer": [
"eglQuerySurfacePointerANGLE"
],
"EGL_NV_post_sub_buffer": [
"eglPostSubBufferNV"
],
"EGL_EXT_platform_base": [
"eglGetPlatformDisplayEXT"
],
"EGL_EXT_device_query": [
"eglQueryDisplayAttribEXT",
"eglQueryDeviceAttribEXT",
"eglQueryDeviceStringEXT"
],
"EGL_KHR_image_base/EGL_KHR_image": [
"eglCreateImageKHR",
"eglDestroyImageKHR"
],
"EGL_EXT_device_creation": [
"eglCreateDeviceANGLE",
"eglReleaseDeviceANGLE"
],
"EGL_KHR_stream": [
"eglCreateStreamKHR",
"eglDestroyStreamKHR",
"eglStreamAttribKHR",
"eglQueryStreamKHR",
"eglQueryStreamu64KHR"
],
"EGL_KHR_stream_consumer_gltexture": [
"eglStreamConsumerGLTextureExternalKHR",
"eglStreamConsumerAcquireKHR",
"eglStreamConsumerReleaseKHR"
],
"EGL_NV_stream_consumer_gltexture_yuv": [
"eglStreamConsumerGLTextureExternalAttribsNV"
],
"EGL_ANGLE_stream_producer_d3d_texture_nv12": [
"eglCreateStreamProducerD3DTextureNV12ANGLE",
"eglStreamPostD3DTextureNV12ANGLE"
],
"EGL_CHROMIUM_get_sync_values": [
"eglGetSyncValuesCHROMIUM"
],
"EGL_EXT_swap_buffers_with_damage": [
"eglSwapBuffersWithDamageEXT"
],
"EGL_ANGLE_program_cache_control": [
"eglProgramCacheGetAttribANGLE",
"eglProgramCacheQueryANGLE",
"eglProgramCachePopulateANGLE",
"eglProgramCacheResizeANGLE"
],
"angle::Platform related entry points": [
"ANGLEGetDisplayPlatform",
"ANGLEResetDisplayPlatform"
]
}

Просмотреть файл

@ -28,3 +28,10 @@ TEST(EGLSanityCheckTest, HasGetPlatformDisplayEXT)
ASSERT_NE(eglGetPlatformDisplayEXT, nullptr);
}
// Checks that calling GetProcAddress for a non-existant function fails.
TEST(EGLSanityCheckTest, GetProcAddressNegativeTest)
{
auto check = eglGetProcAddress("WigglyWombats");
EXPECT_EQ(nullptr, check);
}