Commit 95ac7b7c by Clemen Deng Committed by Commit Bot

Autogen gles2+ declarations

Added autogeneration of method declarations for GLES2+ and extensions Bug: angleproject:3526 Change-Id: I9c7263452146098512d9584deae8ea3f15f62c46 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660949Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarJonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent bf826481
...@@ -142,7 +142,7 @@ context_gles_header = """// GENERATED FILE - DO NOT EDIT. ...@@ -142,7 +142,7 @@ context_gles_header = """// GENERATED FILE - DO NOT EDIT.
#ifndef ANGLE_CONTEXT_GLES_{annotation_upper}_AUTOGEN_H_ #ifndef ANGLE_CONTEXT_GLES_{annotation_upper}_AUTOGEN_H_
#define ANGLE_CONTEXT_GLES_{annotation_upper}_AUTOGEN_H_ #define ANGLE_CONTEXT_GLES_{annotation_upper}_AUTOGEN_H_
#define ANGLE_GLES1_CONTEXT_API \\ #define ANGLE_GLES_{annotation_upper}_CONTEXT_API \\
{interface} {interface}
#endif // ANGLE_CONTEXT_API_{annotation_upper}_AUTOGEN_H_ #endif // ANGLE_CONTEXT_API_{annotation_upper}_AUTOGEN_H_
...@@ -495,7 +495,7 @@ def get_entry_points(all_commands, gles_commands, is_explicit_context): ...@@ -495,7 +495,7 @@ def get_entry_points(all_commands, gles_commands, is_explicit_context):
return decls, defs, export_defs, validation_protos return decls, defs, export_defs, validation_protos
def get_gles1_decls(all_commands, gles_commands): def get_gles_decls(all_commands, gles_commands, already_included, overloaded):
decls = [] decls = []
for command in all_commands: for command in all_commands:
proto = command.find('proto') proto = command.find('proto')
...@@ -504,7 +504,16 @@ def get_gles1_decls(all_commands, gles_commands): ...@@ -504,7 +504,16 @@ def get_gles1_decls(all_commands, gles_commands):
if cmd_name not in gles_commands: if cmd_name not in gles_commands:
continue continue
if cmd_name in gles1_overloaded: if cmd_name in overloaded:
continue
# Remove extension suffixes from cmd_names
name_no_suffix = cmd_name
for suffix in strip_suffixes:
if name_no_suffix.endswith(suffix):
name_no_suffix = name_no_suffix[0:-len(suffix)]
if name_no_suffix in already_included:
continue continue
param_text = ["".join(param.itertext()) for param in command.findall('param')] param_text = ["".join(param.itertext()) for param in command.findall('param')]
...@@ -587,25 +596,46 @@ def write_export_files(entry_points, includes): ...@@ -587,25 +596,46 @@ def write_export_files(entry_points, includes):
out.close() out.close()
def write_context_api_decls(annotation, template, decls): def write_context_api_decls(template, decls):
interface_lines = [] for ver in decls['core'].keys():
interface_lines = []
for i in decls['core'][ver]:
interface_lines.append(i)
annotation = '{}_{}'.format(ver[0], ver[1])
content = template.format(
annotation_lower=annotation.lower(),
annotation_upper=annotation.upper(),
script_name=os.path.basename(sys.argv[0]),
data_source_name="gl.xml",
year=date.today().year,
interface="\n".join(interface_lines))
path = path_to("libANGLE", "Context_gles_%s_autogen.h" % annotation.lower())
for i in decls['core']: with open(path, "w") as out:
interface_lines.append(i) out.write(content)
out.close()
for extname in sorted(decls['exts'].keys()): interface_lines = []
interface_lines.append(" /* " + extname + " */ \\") for annotation in decls['exts'].keys():
interface_lines.extend(decls['exts'][extname]) interface_lines.append("\\\n /* " + annotation + " */ \\\n\\")
for extname in sorted(decls['exts'][annotation].keys()):
interface_lines.append(" /* " + extname + " */ \\")
interface_lines.extend(decls['exts'][annotation][extname])
content = template.format( content = template.format(
annotation_lower=annotation.lower(), annotation_lower='ext',
annotation_upper=annotation.upper(), annotation_upper='EXT',
script_name=os.path.basename(sys.argv[0]), script_name=os.path.basename(sys.argv[0]),
data_source_name="gl.xml", data_source_name="gl.xml",
year=date.today().year, year=date.today().year,
interface="\n".join(interface_lines)) interface="\n".join(interface_lines))
path = path_to("libANGLE", "Context_gles_%s_autogen.h" % annotation.lower()) path = path_to("libANGLE", "Context_gles_ext_autogen.h")
with open(path, "w") as out: with open(path, "w") as out:
out.write(content) out.write(content)
...@@ -722,6 +752,10 @@ def main(): ...@@ -722,6 +752,10 @@ def main():
] ]
outputs = [ outputs = [
'../src/libANGLE/Context_gles_1_0_autogen.h', '../src/libANGLE/Context_gles_1_0_autogen.h',
'../src/libANGLE/Context_gles_2_0_autogen.h',
'../src/libANGLE/Context_gles_3_0_autogen.h',
'../src/libANGLE/Context_gles_3_1_autogen.h',
'../src/libANGLE/Context_gles_ext_autogen.h',
'../src/libANGLE/validationES1_autogen.h', '../src/libANGLE/validationES1_autogen.h',
'../src/libANGLE/validationES2_autogen.h', '../src/libANGLE/validationES2_autogen.h',
'../src/libANGLE/validationES31_autogen.h', '../src/libANGLE/validationES31_autogen.h',
...@@ -751,16 +785,22 @@ def main(): ...@@ -751,16 +785,22 @@ def main():
return 1 return 1
return 0 return 0
gles1decls = {} glesdecls = {}
glesdecls['core'] = {}
gles1decls['core'] = [] glesdecls['exts'] = {}
gles1decls['exts'] = {} for ver in [(1, 0), (2, 0), (3, 0), (3, 1)]:
glesdecls['core'][ver] = []
for ver in ['GLES1 Extensions', 'GLES2+ Extensions', 'ANGLE Extensions']:
glesdecls['exts'][ver] = {}
libgles_ep_defs = [] libgles_ep_defs = []
libgles_ep_exports = [] libgles_ep_exports = []
xml = registry_xml.RegistryXML('gl.xml', 'gl_angle_ext.xml') xml = registry_xml.RegistryXML('gl.xml', 'gl_angle_ext.xml')
#stores all core commands
all_gles_commands = []
# First run through the main GLES entry points. Since ES2+ is the primary use # First run through the main GLES entry points. Since ES2+ is the primary use
# case, we go through those first and then add ES1-only APIs at the end. # case, we go through those first and then add ES1-only APIs at the end.
for major_version, minor_version in [[2, 0], [3, 0], [3, 1], [1, 0]]: for major_version, minor_version in [[2, 0], [3, 0], [3, 1], [1, 0]]:
...@@ -778,6 +818,7 @@ def main(): ...@@ -778,6 +818,7 @@ def main():
gles_commands = xml.commands[annotation] gles_commands = xml.commands[annotation]
all_commands = xml.all_commands all_commands = xml.all_commands
all_gles_commands.extend(xml.commands[annotation])
decls, defs, libgles_defs, validation_protos = get_entry_points( decls, defs, libgles_defs, validation_protos = get_entry_points(
all_commands, gles_commands, False) all_commands, gles_commands, False)
...@@ -806,8 +847,10 @@ def main(): ...@@ -806,8 +847,10 @@ def main():
header_includes, "gl.xml") header_includes, "gl.xml")
write_file(annotation, comment, template_entry_point_source, "\n".join(defs), "cpp", write_file(annotation, comment, template_entry_point_source, "\n".join(defs), "cpp",
source_includes, "gl.xml") source_includes, "gl.xml")
if is_gles1:
gles1decls['core'] = get_gles1_decls(all_commands, gles_commands) gles_overloaded = gles1_overloaded if is_gles1 else []
glesdecls['core'][(major_version, minor_version)] = get_gles_decls(
all_commands, gles_commands, [], gles_overloaded)
validation_annotation = "%s%s" % (major_version, minor_if_not_zero) validation_annotation = "%s%s" % (major_version, minor_if_not_zero)
write_validation_header(validation_annotation, comment, validation_protos) write_validation_header(validation_annotation, comment, validation_protos)
...@@ -820,7 +863,11 @@ def main(): ...@@ -820,7 +863,11 @@ def main():
ext_validation_protos = [] ext_validation_protos = []
for gles1ext in registry_xml.gles1_extensions: for gles1ext in registry_xml.gles1_extensions:
gles1decls['exts'][gles1ext] = [] glesdecls['exts']['GLES1 Extensions'][gles1ext] = []
for glesext in registry_xml.gles_extensions:
glesdecls['exts']['GLES2+ Extensions'][glesext] = []
for angle_ext in registry_xml.angle_extensions:
glesdecls['exts']['ANGLE Extensions'][angle_ext] = []
xml.AddExtensionCommands(registry_xml.supported_extensions, ['gles2', 'gles1']) xml.AddExtensionCommands(registry_xml.supported_extensions, ['gles2', 'gles1'])
...@@ -850,9 +897,16 @@ def main(): ...@@ -850,9 +897,16 @@ def main():
libgles_ep_defs += libgles_defs libgles_ep_defs += libgles_defs
libgles_ep_exports += get_exports(ext_cmd_names) libgles_ep_exports += get_exports(ext_cmd_names)
if extension_name in registry_xml.gles1_extensions: if (extension_name in registry_xml.gles1_extensions and
if extension_name not in gles1_no_context_decl_extensions: extension_name not in gles1_no_context_decl_extensions):
gles1decls['exts'][extension_name] = get_gles1_decls(all_commands, ext_cmd_names) glesdecls['exts']['GLES1 Extensions'][extension_name] = get_gles_decls(
all_commands, ext_cmd_names, all_gles_commands, gles1_overloaded)
if extension_name in registry_xml.gles_extensions:
glesdecls['exts']['GLES2+ Extensions'][extension_name] = get_gles_decls(
all_commands, ext_cmd_names, all_gles_commands, [])
if extension_name in registry_xml.angle_extensions:
glesdecls['exts']['ANGLE Extensions'][extension_name] = get_gles_decls(
all_commands, ext_cmd_names, all_gles_commands, [])
# Special handling for EGL_ANGLE_explicit_context extension # Special handling for EGL_ANGLE_explicit_context extension
if registry_xml.support_EGL_ANGLE_explicit_context: if registry_xml.support_EGL_ANGLE_explicit_context:
...@@ -926,7 +980,7 @@ def main(): ...@@ -926,7 +980,7 @@ def main():
write_validation_header("EXT", "extension", ext_validation_protos) write_validation_header("EXT", "extension", ext_validation_protos)
write_context_api_decls("1_0", context_gles_header, gles1decls) write_context_api_decls(context_gles_header, glesdecls)
sorted_cmd_names = ["Invalid" sorted_cmd_names = ["Invalid"
] + [cmd[2:] for cmd in sorted(xml.all_cmd_names.get_all_commands())] ] + [cmd[2:] for cmd in sorted(xml.all_cmd_names.get_all_commands())]
......
...@@ -36,7 +36,7 @@ gles1_extensions = [ ...@@ -36,7 +36,7 @@ gles1_extensions = [
"GL_OES_texture_cube_map", "GL_OES_texture_cube_map",
] ]
supported_extensions = sorted(angle_extensions + gles1_extensions + [ gles_extensions = [
# ES2+ # ES2+
"GL_ANGLE_framebuffer_blit", "GL_ANGLE_framebuffer_blit",
"GL_ANGLE_framebuffer_multisample", "GL_ANGLE_framebuffer_multisample",
...@@ -71,7 +71,9 @@ supported_extensions = sorted(angle_extensions + gles1_extensions + [ ...@@ -71,7 +71,9 @@ supported_extensions = sorted(angle_extensions + gles1_extensions + [
"GL_OVR_multiview2", "GL_OVR_multiview2",
"GL_KHR_parallel_shader_compile", "GL_KHR_parallel_shader_compile",
"GL_ANGLE_multi_draw", "GL_ANGLE_multi_draw",
]) ]
supported_extensions = sorted(angle_extensions + gles1_extensions + gles_extensions)
supported_egl_extensions = [ supported_egl_extensions = [
"EGL_ANDROID_blob_cache", "EGL_ANDROID_blob_cache",
......
...@@ -94,15 +94,23 @@ ...@@ -94,15 +94,23 @@
"GL/EGL entry points:scripts/entry_point_packed_gl_enums.json": "GL/EGL entry points:scripts/entry_point_packed_gl_enums.json":
"28238b0f52826c3794eaa1aa940238bf", "28238b0f52826c3794eaa1aa940238bf",
"GL/EGL entry points:scripts/generate_entry_points.py": "GL/EGL entry points:scripts/generate_entry_points.py":
"e7ab486465bf7873d8f06ddd9b204539", "1bd848cc592db50a4d3a5cea26a7b077",
"GL/EGL entry points:scripts/gl.xml": "GL/EGL entry points:scripts/gl.xml":
"b470cb06b06cbbe7adb2c8129ec85708", "b470cb06b06cbbe7adb2c8129ec85708",
"GL/EGL entry points:scripts/gl_angle_ext.xml": "GL/EGL entry points:scripts/gl_angle_ext.xml":
"11e1eb2cbe51ae6e7b8705d3506846d5", "11e1eb2cbe51ae6e7b8705d3506846d5",
"GL/EGL entry points:scripts/registry_xml.py": "GL/EGL entry points:scripts/registry_xml.py":
"7f043b31380aa2fb0c82e65f802f8cf1", "be904202ce40755daac33faf4123b9b9",
"GL/EGL entry points:src/libANGLE/Context_gles_1_0_autogen.h": "GL/EGL entry points:src/libANGLE/Context_gles_1_0_autogen.h":
"fad4ec629b41e9d97ff57a132ad946cb", "f30ed90e4ec23f886bda9344d82dd529",
"GL/EGL entry points:src/libANGLE/Context_gles_2_0_autogen.h":
"d8c5ef3d4a9d98e6f57cb926a67537f0",
"GL/EGL entry points:src/libANGLE/Context_gles_3_0_autogen.h":
"0727abfe5305f87e09e76ca46b804ee3",
"GL/EGL entry points:src/libANGLE/Context_gles_3_1_autogen.h":
"5ccae982f020320b1e29cf8eecd8c303",
"GL/EGL entry points:src/libANGLE/Context_gles_ext_autogen.h":
"fa7fa484b2e60817fffafdc30601ae43",
"GL/EGL entry points:src/libANGLE/validationES1_autogen.h": "GL/EGL entry points:src/libANGLE/validationES1_autogen.h":
"8d3131d2bf2e6f521f46b44e64a6bff9", "8d3131d2bf2e6f521f46b44e64a6bff9",
"GL/EGL entry points:src/libANGLE/validationES2_autogen.h": "GL/EGL entry points:src/libANGLE/validationES2_autogen.h":
...@@ -146,7 +154,7 @@ ...@@ -146,7 +154,7 @@
"GL/EGL/WGL loader:scripts/generate_loader.py": "GL/EGL/WGL loader:scripts/generate_loader.py":
"5a7cd014230fe04664d9613e65399d42", "5a7cd014230fe04664d9613e65399d42",
"GL/EGL/WGL loader:scripts/registry_xml.py": "GL/EGL/WGL loader:scripts/registry_xml.py":
"7f043b31380aa2fb0c82e65f802f8cf1", "be904202ce40755daac33faf4123b9b9",
"GL/EGL/WGL loader:scripts/wgl.xml": "GL/EGL/WGL loader:scripts/wgl.xml":
"aa96419c582af2f6673430e2847693f4", "aa96419c582af2f6673430e2847693f4",
"GL/EGL/WGL loader:src/libEGL/egl_loader_autogen.cpp": "GL/EGL/WGL loader:src/libEGL/egl_loader_autogen.cpp":
......
...@@ -787,7 +787,7 @@ void Context::deletePaths(GLuint first, GLsizei range) ...@@ -787,7 +787,7 @@ void Context::deletePaths(GLuint first, GLsizei range)
mState.mPathManager->deletePaths(first, range); mState.mPathManager->deletePaths(first, range);
} }
bool Context::isPath(GLuint path) const GLboolean Context::isPath(GLuint path)
{ {
const auto *pathObj = mState.mPathManager->getPath(path); const auto *pathObj = mState.mPathManager->getPath(path);
if (pathObj == nullptr) if (pathObj == nullptr)
...@@ -1015,7 +1015,7 @@ void Context::getObjectLabel(GLenum identifier, ...@@ -1015,7 +1015,7 @@ void Context::getObjectLabel(GLenum identifier,
GLuint name, GLuint name,
GLsizei bufSize, GLsizei bufSize,
GLsizei *length, GLsizei *length,
GLchar *label) const GLchar *label)
{ {
gl::LabeledObject *object = getLabeledObject(identifier, name); gl::LabeledObject *object = getLabeledObject(identifier, name);
ASSERT(object != nullptr); ASSERT(object != nullptr);
...@@ -1024,10 +1024,7 @@ void Context::getObjectLabel(GLenum identifier, ...@@ -1024,10 +1024,7 @@ void Context::getObjectLabel(GLenum identifier,
GetObjectLabelBase(objectLabel, bufSize, length, label); GetObjectLabelBase(objectLabel, bufSize, length, label);
} }
void Context::getObjectPtrLabel(const void *ptr, void Context::getObjectPtrLabel(const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label)
GLsizei bufSize,
GLsizei *length,
GLchar *label) const
{ {
gl::LabeledObject *object = getLabeledObjectFromPtr(ptr); gl::LabeledObject *object = getLabeledObjectFromPtr(ptr);
ASSERT(object != nullptr); ASSERT(object != nullptr);
...@@ -1036,7 +1033,7 @@ void Context::getObjectPtrLabel(const void *ptr, ...@@ -1036,7 +1033,7 @@ void Context::getObjectPtrLabel(const void *ptr,
GetObjectLabelBase(objectLabel, bufSize, length, label); GetObjectLabelBase(objectLabel, bufSize, length, label);
} }
bool Context::isSampler(GLuint samplerName) const GLboolean Context::isSampler(GLuint samplerName)
{ {
return mState.mSamplerManager->isSampler(samplerName); return mState.mSamplerManager->isSampler(samplerName);
} }
...@@ -3017,6 +3014,16 @@ void Context::initExtensionStrings() ...@@ -3017,6 +3014,16 @@ void Context::initExtensionStrings()
mRequestableExtensionString = mergeExtensionStrings(mRequestableExtensionStrings); mRequestableExtensionString = mergeExtensionStrings(mRequestableExtensionStrings);
} }
const GLubyte *Context::getString(GLenum name)
{
return static_cast<const Context *>(this)->getString(name);
}
const GLubyte *Context::getStringi(GLenum name, GLuint index)
{
return static_cast<const Context *>(this)->getStringi(name, index);
}
const GLubyte *Context::getString(GLenum name) const const GLubyte *Context::getString(GLenum name) const
{ {
switch (name) switch (name)
...@@ -6331,7 +6338,7 @@ void Context::genVertexArrays(GLsizei n, GLuint *arrays) ...@@ -6331,7 +6338,7 @@ void Context::genVertexArrays(GLsizei n, GLuint *arrays)
} }
} }
bool Context::isVertexArray(GLuint array) GLboolean Context::isVertexArray(GLuint array)
{ {
if (array == 0) if (array == 0)
{ {
...@@ -6406,7 +6413,7 @@ void Context::genTransformFeedbacks(GLsizei n, GLuint *ids) ...@@ -6406,7 +6413,7 @@ void Context::genTransformFeedbacks(GLsizei n, GLuint *ids)
} }
} }
bool Context::isTransformFeedback(GLuint id) GLboolean Context::isTransformFeedback(GLuint id)
{ {
if (id == 0) if (id == 0)
{ {
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#ifndef ANGLE_CONTEXT_GLES_1_0_AUTOGEN_H_ #ifndef ANGLE_CONTEXT_GLES_1_0_AUTOGEN_H_
#define ANGLE_CONTEXT_GLES_1_0_AUTOGEN_H_ #define ANGLE_CONTEXT_GLES_1_0_AUTOGEN_H_
#define ANGLE_GLES1_CONTEXT_API \ #define ANGLE_GLES_1_0_CONTEXT_API \
void alphaFunc(AlphaTestFunc funcPacked, GLfloat ref); \ void alphaFunc(AlphaTestFunc funcPacked, GLfloat ref); \
void alphaFuncx(AlphaTestFunc funcPacked, GLfixed ref); \ void alphaFuncx(AlphaTestFunc funcPacked, GLfixed ref); \
void clearColorx(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); \ void clearColorx(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); \
...@@ -104,35 +104,6 @@ ...@@ -104,35 +104,6 @@
void translatef(GLfloat x, GLfloat y, GLfloat z); \ void translatef(GLfloat x, GLfloat y, GLfloat z); \
void translatex(GLfixed x, GLfixed y, GLfixed z); \ void translatex(GLfixed x, GLfixed y, GLfixed z); \
void vertexPointer(GLint size, VertexAttribType typePacked, GLsizei stride, \ void vertexPointer(GLint size, VertexAttribType typePacked, GLsizei stride, \
const void *pointer); \ const void *pointer);
/* GL_OES_draw_texture */ \
void drawTexf(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); \
void drawTexfv(const GLfloat *coords); \
void drawTexi(GLint x, GLint y, GLint z, GLint width, GLint height); \
void drawTexiv(const GLint *coords); \
void drawTexs(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height); \
void drawTexsv(const GLshort *coords); \
void drawTexx(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height); \
void drawTexxv(const GLfixed *coords); \
/* GL_OES_framebuffer_object */ \
/* GL_OES_matrix_palette */ \
void currentPaletteMatrix(GLuint matrixpaletteindex); \
void loadPaletteFromModelViewMatrix(); \
void matrixIndexPointer(GLint size, GLenum type, GLsizei stride, const void *pointer); \
void weightPointer(GLint size, GLenum type, GLsizei stride, const void *pointer); \
/* GL_OES_point_size_array */ \
void pointSizePointer(VertexAttribType typePacked, GLsizei stride, const void *pointer); \
/* GL_OES_query_matrix */ \
GLbitfield queryMatrixx(GLfixed *mantissa, GLint *exponent); \
/* GL_OES_texture_cube_map */ \
void getTexGenfv(GLenum coord, GLenum pname, GLfloat *params); \
void getTexGeniv(GLenum coord, GLenum pname, GLint *params); \
void getTexGenxv(GLenum coord, GLenum pname, GLfixed *params); \
void texGenf(GLenum coord, GLenum pname, GLfloat param); \
void texGenfv(GLenum coord, GLenum pname, const GLfloat *params); \
void texGeni(GLenum coord, GLenum pname, GLint param); \
void texGeniv(GLenum coord, GLenum pname, const GLint *params); \
void texGenx(GLenum coord, GLenum pname, GLfixed param); \
void texGenxv(GLenum coord, GLenum pname, const GLfixed *params);
#endif // ANGLE_CONTEXT_API_1_0_AUTOGEN_H_ #endif // ANGLE_CONTEXT_API_1_0_AUTOGEN_H_
// GENERATED FILE - DO NOT EDIT.
// Generated by generate_entry_points.py using data from gl.xml.
//
// Copyright 2019 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.
//
// Context_gles_3_1_autogen.h: Creates a macro for interfaces in Context.
#ifndef ANGLE_CONTEXT_GLES_3_1_AUTOGEN_H_
#define ANGLE_CONTEXT_GLES_3_1_AUTOGEN_H_
#define ANGLE_GLES_3_1_CONTEXT_API \
void activeShaderProgram(GLuint pipeline, GLuint program); \
void bindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, \
GLint layer, GLenum access, GLenum format); \
void bindProgramPipeline(GLuint pipeline); \
void bindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); \
GLuint createShaderProgramv(ShaderType typePacked, GLsizei count, \
const GLchar *const *strings); \
void deleteProgramPipelines(GLsizei n, const GLuint *pipelines); \
void dispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); \
void dispatchComputeIndirect(GLintptr indirect); \
void drawArraysIndirect(PrimitiveMode modePacked, const void *indirect); \
void drawElementsIndirect(PrimitiveMode modePacked, DrawElementsType typePacked, \
const void *indirect); \
void framebufferParameteri(GLenum target, GLenum pname, GLint param); \
void genProgramPipelines(GLsizei n, GLuint *pipelines); \
void getBooleani_v(GLenum target, GLuint index, GLboolean *data); \
void getFramebufferParameteriv(GLenum target, GLenum pname, GLint *params); \
void getMultisamplefv(GLenum pname, GLuint index, GLfloat *val); \
void getProgramInterfaceiv(GLuint program, GLenum programInterface, GLenum pname, \
GLint *params); \
void getProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei *length, \
GLchar *infoLog); \
void getProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params); \
GLuint getProgramResourceIndex(GLuint program, GLenum programInterface, const GLchar *name); \
GLint getProgramResourceLocation(GLuint program, GLenum programInterface, const GLchar *name); \
void getProgramResourceName(GLuint program, GLenum programInterface, GLuint index, \
GLsizei bufSize, GLsizei *length, GLchar *name); \
void getProgramResourceiv(GLuint program, GLenum programInterface, GLuint index, \
GLsizei propCount, const GLenum *props, GLsizei bufSize, \
GLsizei *length, GLint *params); \
void getTexLevelParameterfv(TextureTarget targetPacked, GLint level, GLenum pname, \
GLfloat *params); \
void getTexLevelParameteriv(TextureTarget targetPacked, GLint level, GLenum pname, \
GLint *params); \
GLboolean isProgramPipeline(GLuint pipeline); \
void memoryBarrier(GLbitfield barriers); \
void memoryBarrierByRegion(GLbitfield barriers); \
void programUniform1f(GLuint program, GLint location, GLfloat v0); \
void programUniform1fv(GLuint program, GLint location, GLsizei count, const GLfloat *value); \
void programUniform1i(GLuint program, GLint location, GLint v0); \
void programUniform1iv(GLuint program, GLint location, GLsizei count, const GLint *value); \
void programUniform1ui(GLuint program, GLint location, GLuint v0); \
void programUniform1uiv(GLuint program, GLint location, GLsizei count, const GLuint *value); \
void programUniform2f(GLuint program, GLint location, GLfloat v0, GLfloat v1); \
void programUniform2fv(GLuint program, GLint location, GLsizei count, const GLfloat *value); \
void programUniform2i(GLuint program, GLint location, GLint v0, GLint v1); \
void programUniform2iv(GLuint program, GLint location, GLsizei count, const GLint *value); \
void programUniform2ui(GLuint program, GLint location, GLuint v0, GLuint v1); \
void programUniform2uiv(GLuint program, GLint location, GLsizei count, const GLuint *value); \
void programUniform3f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); \
void programUniform3fv(GLuint program, GLint location, GLsizei count, const GLfloat *value); \
void programUniform3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2); \
void programUniform3iv(GLuint program, GLint location, GLsizei count, const GLint *value); \
void programUniform3ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); \
void programUniform3uiv(GLuint program, GLint location, GLsizei count, const GLuint *value); \
void programUniform4f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, \
GLfloat v3); \
void programUniform4fv(GLuint program, GLint location, GLsizei count, const GLfloat *value); \
void programUniform4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); \
void programUniform4iv(GLuint program, GLint location, GLsizei count, const GLint *value); \
void programUniform4ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, \
GLuint v3); \
void programUniform4uiv(GLuint program, GLint location, GLsizei count, const GLuint *value); \
void programUniformMatrix2fv(GLuint program, GLint location, GLsizei count, \
GLboolean transpose, const GLfloat *value); \
void programUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, \
GLboolean transpose, const GLfloat *value); \
void programUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, \
GLboolean transpose, const GLfloat *value); \
void programUniformMatrix3fv(GLuint program, GLint location, GLsizei count, \
GLboolean transpose, const GLfloat *value); \
void programUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, \
GLboolean transpose, const GLfloat *value); \
void programUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, \
GLboolean transpose, const GLfloat *value); \
void programUniformMatrix4fv(GLuint program, GLint location, GLsizei count, \
GLboolean transpose, const GLfloat *value); \
void programUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, \
GLboolean transpose, const GLfloat *value); \
void programUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, \
GLboolean transpose, const GLfloat *value); \
void sampleMaski(GLuint maskNumber, GLbitfield mask); \
void texStorage2DMultisample(TextureType targetPacked, GLsizei samples, GLenum internalformat, \
GLsizei width, GLsizei height, GLboolean fixedsamplelocations); \
void useProgramStages(GLuint pipeline, GLbitfield stages, GLuint program); \
void validateProgramPipeline(GLuint pipeline); \
void vertexAttribBinding(GLuint attribindex, GLuint bindingindex); \
void vertexAttribFormat(GLuint attribindex, GLint size, VertexAttribType typePacked, \
GLboolean normalized, GLuint relativeoffset); \
void vertexAttribIFormat(GLuint attribindex, GLint size, VertexAttribType typePacked, \
GLuint relativeoffset); \
void vertexBindingDivisor(GLuint bindingindex, GLuint divisor);
#endif // ANGLE_CONTEXT_API_3_1_AUTOGEN_H_
...@@ -178,6 +178,10 @@ libangle_sources = [ ...@@ -178,6 +178,10 @@ libangle_sources = [
"src/libANGLE/Context.cpp", "src/libANGLE/Context.cpp",
"src/libANGLE/Context_gles_1_0.cpp", "src/libANGLE/Context_gles_1_0.cpp",
"src/libANGLE/Context_gles_1_0_autogen.h", "src/libANGLE/Context_gles_1_0_autogen.h",
"src/libANGLE/Context_gles_2_0_autogen.h",
"src/libANGLE/Context_gles_3_0_autogen.h",
"src/libANGLE/Context_gles_3_1_autogen.h",
"src/libANGLE/Context_gles_ext_autogen.h",
"src/libANGLE/Context.h", "src/libANGLE/Context.h",
"src/libANGLE/Context.inl.h", "src/libANGLE/Context.inl.h",
"src/libANGLE/Debug.cpp", "src/libANGLE/Debug.cpp",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment