Commit 2aaa7b4e by Geoff Lang Committed by Commit Bot

Add GLES1 targets and stub entry points.

* Create a new libGLESv1_CM target. * Merge all autogenerated extension entry points into one file. * Allow creation of ES1 contexts. BUG=angleproject:2306 Change-Id: I446258363a96a3c37d657089dd7c1cff0fa3cf78 Reviewed-on: https://chromium-review.googlesource.com/865718 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent f661686c
...@@ -548,6 +548,7 @@ config("angle_static") { ...@@ -548,6 +548,7 @@ config("angle_static") {
"ANGLE_EXPORT=", "ANGLE_EXPORT=",
"EGLAPI=", "EGLAPI=",
"GL_APICALL=", "GL_APICALL=",
"GL_API=",
] ]
} }
...@@ -581,9 +582,15 @@ shared_library("libGLESv2") { ...@@ -581,9 +582,15 @@ shared_library("libGLESv2") {
defines = [ "LIBGLESV2_IMPLEMENTATION" ] defines = [ "LIBGLESV2_IMPLEMENTATION" ]
if (is_win) { if (is_win) {
defines += [ "GL_APICALL=" ] defines += [
"GL_APICALL=",
"GL_API=",
]
} else { } else {
defines += [ "GL_APICALL=__attribute__((visibility(\"default\")))" ] defines += [
"GL_APICALL=__attribute__((visibility(\"default\")))",
"GL_API=__attribute__((visibility(\"default\")))",
]
} }
deps = [ deps = [
...@@ -612,6 +619,59 @@ static_library("libGLESv2_static") { ...@@ -612,6 +619,59 @@ static_library("libGLESv2_static") {
] ]
} }
shared_library("libGLESv1_CM") {
sources = rebase_path(gles_gypi.libglesv1_cm_sources, ".", "src")
if (is_android) {
configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
}
configs -= angle_undefine_configs
configs += [
":commit_id_config",
":debug_annotations_config",
":extra_warnings",
":internal_config",
]
defines = []
if (is_win) {
defines += [
"GL_APICALL=",
"GL_API=",
]
} else {
defines += [
"GL_APICALL=__attribute__((visibility(\"default\")))",
"GL_API=__attribute__((visibility(\"default\")))",
]
}
deps = [
":includes",
":libGLESv2",
"//build/config:exe_and_shlib_deps",
]
}
static_library("libGLESv1_CM_static") {
sources = rebase_path(gles_gypi.libglesv1_cm_sources, ".", "src")
configs -= angle_undefine_configs
configs += [
":commit_id_config",
":debug_annotations_config",
":extra_warnings",
":internal_config",
]
public_configs = [ ":angle_static" ]
deps = [
":includes",
":libGLESv2_static",
]
}
shared_library("libEGL") { shared_library("libEGL") {
sources = rebase_path(gles_gypi.libegl_sources, ".", "src") sources = rebase_path(gles_gypi.libegl_sources, ".", "src")
......
/*
** Copyright (c) 2008-2017 The Khronos Group Inc.
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
/*
* Skeleton egl.h to provide compatibility for early GLES 1.0
* applications. Several early implementations included gl.h
* in egl.h leading applications to include only egl.h
*/
#ifndef __legacy_egl_h_
#define __legacy_egl_h_
#include <EGL/egl.h>
#include <GLES/gl.h>
#endif /* __legacy_egl_h_ */
//
// Copyright (c) 2018 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.
//
// glext_angle.h: ANGLE modifications to the glext.h header file.
// Currently we don't include this file directly, we patch glext.h
// to include it implicitly so it is visible throughout our code.
#ifndef INCLUDE_GLES_GLEXT_ANGLE_H_
#define INCLUDE_GLES_GLEXT_ANGLE_H_
// clang-format off
// clang-format on
#endif // INCLUDE_GLES_GLEXT_ANGLE_H_
#ifndef __glplatform_h_
#define __glplatform_h_
/*
** Copyright (c) 2017 The Khronos Group Inc.
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
/* Platform-specific types and definitions for OpenGL ES 1.X gl.h
*
* Adopters may modify khrplatform.h and this file to suit their platform.
* Please contribute modifications back to Khronos as pull requests on the
* public github repository:
* https://github.com/KhronosGroup/OpenGL-Registry
*/
#include <KHR/khrplatform.h>
#ifndef GL_API
#define GL_API KHRONOS_APICALL
#endif
#ifndef GL_APIENTRY
#define GL_APIENTRY KHRONOS_APIENTRY
#endif
#endif /* __glplatform_h_ */
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
#ifndef ANGLEGL_H_ #ifndef ANGLEGL_H_
#define ANGLEGL_H_ #define ANGLEGL_H_
#include "GLES/gl.h"
#include "GLES/glext.h"
#include "GLES2/gl2.h" #include "GLES2/gl2.h"
#include "GLES2/gl2ext.h" #include "GLES2/gl2ext.h"
#include "GLES3/gl3.h" #include "GLES3/gl3.h"
......
...@@ -15,6 +15,12 @@ from datetime import date ...@@ -15,6 +15,12 @@ from datetime import date
# available in gl.xml. # available in gl.xml.
# TODO(jmadill): Support extensions not in gl.xml. # TODO(jmadill): Support extensions not in gl.xml.
supported_extensions = sorted([ supported_extensions = sorted([
# ES1 (statically linked by some tests even if we don't support the extension)
"GL_OES_point_size_array",
"GL_OES_query_matrix",
"GL_OES_matrix_palette",
"GL_OES_draw_texture",
# ES2+
"GL_ANGLE_framebuffer_blit", "GL_ANGLE_framebuffer_blit",
"GL_ANGLE_framebuffer_multisample", "GL_ANGLE_framebuffer_multisample",
"GL_ANGLE_instanced_arrays", "GL_ANGLE_instanced_arrays",
...@@ -165,13 +171,17 @@ def just_the_name_packed(param, reserved_set): ...@@ -165,13 +171,17 @@ def just_the_name_packed(param, reserved_set):
format_dict = { format_dict = {
"GLbitfield": "0x%X", "GLbitfield": "0x%X",
"GLboolean": "%u", "GLboolean": "%u",
"GLclampx": "0x%X",
"GLenum": "0x%X", "GLenum": "0x%X",
"GLfixed": "0x%X",
"GLfloat": "%f", "GLfloat": "%f",
"GLint": "%d", "GLint": "%d",
"GLintptr": "%d", "GLintptr": "%d",
"GLshort": "%d",
"GLsizei": "%d", "GLsizei": "%d",
"GLsizeiptr": "%d", "GLsizeiptr": "%d",
"GLsync": "0x%0.8p", "GLsync": "0x%0.8p",
"GLubyte": "%d",
"GLuint": "%u", "GLuint": "%u",
"GLuint64": "%llu", "GLuint64": "%llu",
"GLDEBUGPROC": "0x%0.8p", "GLDEBUGPROC": "0x%0.8p",
...@@ -285,34 +295,45 @@ def write_file(annotation, comment, template, entry_points, suffix, includes): ...@@ -285,34 +295,45 @@ def write_file(annotation, comment, template, entry_points, suffix, includes):
all_commands = root.findall('commands/command') all_commands = root.findall('commands/command')
all_cmd_names = [] all_cmd_names = []
template_header_includes = """#include <GLES{}/gl{}{}.h> template_header_includes = """#include <GLES{major}/gl{major}{minor}.h>
#include <export.h>""" #include <export.h>"""
template_sources_includes = """#include "libANGLE/Context.h" template_sources_includes = """#include "libGLESv2/entry_points_gles_{}_autogen.h"
#include "libANGLE/Context.h"
#include "libANGLE/validationES{}{}.h" #include "libANGLE/validationES{}{}.h"
#include "libGLESv2/global_state.h" #include "libGLESv2/global_state.h"
""" """
# First run through the main GLES entry points. # First run through the main GLES entry points.
for major_version, minor_version in [[2, 0], [3, 0], [3, 1]]: for major_version, minor_version in [[1, 0], [2, 0], [3, 0], [3, 1]]:
annotation = "{}_{}".format(major_version, minor_version) annotation = "{}_{}".format(major_version, minor_version)
name_prefix = "GL_ES_VERSION_"
if major_version == 1:
name_prefix = "GL_VERSION_ES_CM_"
comment = annotation.replace("_", ".") comment = annotation.replace("_", ".")
gles_xpath = ".//feature[@name='GL_ES_VERSION_{}']//command".format(annotation) gles_xpath = ".//feature[@name='{}{}']//command".format(name_prefix, annotation)
gles_commands = [cmd.attrib['name'] for cmd in root.findall(gles_xpath)] gles_commands = [cmd.attrib['name'] for cmd in root.findall(gles_xpath)]
# Remove commands that have already been processed
gles_commands = [cmd for cmd in gles_commands if cmd not in all_cmd_names]
all_cmd_names += gles_commands all_cmd_names += gles_commands
decls, defs = get_entry_points(all_commands, gles_commands) decls, defs = get_entry_points(all_commands, gles_commands)
major_if_not_one = major_version if major_version != 1 else ""
minor_if_not_zero = minor_version if minor_version != 0 else "" minor_if_not_zero = minor_version if minor_version != 0 else ""
header_includes = template_header_includes.format( header_includes = template_header_includes.format(
major_version, major_version, minor_if_not_zero) major=major_if_not_one, minor=minor_if_not_zero)
# We include the platform.h header since it undefines the conflicting MemoryBarrier macro. # We include the platform.h header since it undefines the conflicting MemoryBarrier macro.
if major_version == 3 and minor_version == 1: if major_version == 3 and minor_version == 1:
header_includes += "\n#include \"common/platform.h\"\n" header_includes += "\n#include \"common/platform.h\"\n"
source_includes = template_sources_includes.format(major_version, minor_if_not_zero) source_includes = template_sources_includes.format(
annotation.lower(), major_version,minor_if_not_zero)
write_file(annotation, comment, template_entry_point_header, write_file(annotation, comment, template_entry_point_header,
"\n".join(decls), "h", header_includes) "\n".join(decls), "h", header_includes)
...@@ -339,7 +360,7 @@ for extension in root.findall("extensions/extension"): ...@@ -339,7 +360,7 @@ for extension in root.findall("extensions/extension"):
# point signatures (without the suffix) for desktop GL. Note that this # point signatures (without the suffix) for desktop GL. Note that this
# extra step is necessary because of Etree's limited Xpath support. # extra step is necessary because of Etree's limited Xpath support.
for require in extension.findall('require'): for require in extension.findall('require'):
if 'api' in require.attrib and require.attrib['api'] != 'gles2': if 'api' in require.attrib and require.attrib['api'] != 'gles2' and require.attrib['api'] != 'gles1':
continue continue
# Another special case for EXT_texture_storage # Another special case for EXT_texture_storage
...@@ -380,17 +401,26 @@ for extension_name, ext_cmd_names in sorted(ext_data.iteritems()): ...@@ -380,17 +401,26 @@ for extension_name, ext_cmd_names in sorted(ext_data.iteritems()):
extension_defs += defs extension_defs += defs
extension_decls += decls extension_decls += decls
header_includes = template_header_includes.format(2, 2, "") header_includes = template_header_includes.format(
source_includes = template_sources_includes.format(2, "") major="", minor="")
header_includes += """
#include <GLES/gl.h>
#include <GLES/glext.h>
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
"""
source_includes += """#include "libANGLE/validationES.h" source_includes = template_sources_includes.format("ext", "", "")
source_includes += """
#include "libANGLE/validationES.h"
#include "libANGLE/validationES1.h"
#include "libANGLE/validationES3.h" #include "libANGLE/validationES3.h"
#include "libANGLE/validationES31.h" #include "libANGLE/validationES31.h"
""" """
write_file("2_0_EXT", "extension", template_entry_point_header, write_file("ext", "extension", template_entry_point_header,
"\n".join([item for item in extension_decls]), "h", header_includes) "\n".join([item for item in extension_decls]), "h", header_includes)
write_file("2_0_EXT", "extension", template_entry_point_source, write_file("ext", "extension", template_entry_point_source,
"\n".join([item for item in extension_defs]), "cpp", source_includes) "\n".join([item for item in extension_defs]), "cpp", source_includes)
sorted_cmd_names = ["Invalid"] + [cmd[2:] for cmd in sorted(all_cmd_names)] sorted_cmd_names = ["Invalid"] + [cmd[2:] for cmd in sorted(all_cmd_names)]
......
...@@ -300,4 +300,13 @@ std::vector<const Config*> ConfigSet::filter(const AttributeMap &attributeMap) c ...@@ -300,4 +300,13 @@ std::vector<const Config*> ConfigSet::filter(const AttributeMap &attributeMap) c
return result; return result;
} }
ConfigSet::ConfigMap::iterator ConfigSet::begin()
{
return mConfigs.begin();
}
ConfigSet::ConfigMap::iterator ConfigSet::end()
{
return mConfigs.end();
}
} }
...@@ -73,6 +73,9 @@ struct Config ...@@ -73,6 +73,9 @@ struct Config
class ConfigSet class ConfigSet
{ {
private:
typedef std::map<EGLint, Config> ConfigMap;
public: public:
ConfigSet(); ConfigSet();
ConfigSet(const ConfigSet &other); ConfigSet(const ConfigSet &other);
...@@ -91,8 +94,10 @@ class ConfigSet ...@@ -91,8 +94,10 @@ class ConfigSet
// Filter configurations based on the table in [EGL 1.5] section 3.4.1.2 page 29 // Filter configurations based on the table in [EGL 1.5] section 3.4.1.2 page 29
std::vector<const Config*> filter(const AttributeMap &attributeMap) const; std::vector<const Config*> filter(const AttributeMap &attributeMap) const;
ConfigMap::iterator begin();
ConfigMap::iterator end();
private: private:
typedef std::map<EGLint, Config> ConfigMap;
ConfigMap mConfigs; ConfigMap mConfigs;
}; };
......
...@@ -5818,4 +5818,510 @@ void Context::texStorage1D(GLenum target, GLsizei levels, GLenum internalformat, ...@@ -5818,4 +5818,510 @@ void Context::texStorage1D(GLenum target, GLsizei levels, GLenum internalformat,
UNIMPLEMENTED(); UNIMPLEMENTED();
} }
void Context::alphaFunc(GLenum func, GLfloat ref)
{
UNIMPLEMENTED();
}
void Context::alphaFuncx(GLenum func, GLfixed ref)
{
UNIMPLEMENTED();
}
void Context::clearColorx(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
{
UNIMPLEMENTED();
}
void Context::clearDepthx(GLfixed depth)
{
UNIMPLEMENTED();
}
void Context::clientActiveTexture(GLenum texture)
{
UNIMPLEMENTED();
}
void Context::clipPlanef(GLenum p, const GLfloat *eqn)
{
UNIMPLEMENTED();
}
void Context::clipPlanex(GLenum plane, const GLfixed *equation)
{
UNIMPLEMENTED();
}
void Context::color4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
{
UNIMPLEMENTED();
}
void Context::color4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
{
UNIMPLEMENTED();
}
void Context::color4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
{
UNIMPLEMENTED();
}
void Context::colorPointer(GLint size, GLenum type, GLsizei stride, const void *pointer)
{
UNIMPLEMENTED();
}
void Context::cullFace(GLenum mode)
{
UNIMPLEMENTED();
}
void Context::depthRangex(GLfixed n, GLfixed f)
{
UNIMPLEMENTED();
}
void Context::disableClientState(GLenum array)
{
UNIMPLEMENTED();
}
void Context::enableClientState(GLenum array)
{
UNIMPLEMENTED();
}
void Context::fogf(GLenum pname, GLfloat param)
{
UNIMPLEMENTED();
}
void Context::fogfv(GLenum pname, const GLfloat *params)
{
UNIMPLEMENTED();
}
void Context::fogx(GLenum pname, GLfixed param)
{
UNIMPLEMENTED();
}
void Context::fogxv(GLenum pname, const GLfixed *param)
{
UNIMPLEMENTED();
}
void Context::frustumf(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f)
{
UNIMPLEMENTED();
}
void Context::frustumx(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f)
{
UNIMPLEMENTED();
}
void Context::getBufferParameteriv(GLenum target, GLenum pname, GLint *params)
{
UNIMPLEMENTED();
}
void Context::getClipPlanef(GLenum plane, GLfloat *equation)
{
UNIMPLEMENTED();
}
void Context::getClipPlanex(GLenum plane, GLfixed *equation)
{
UNIMPLEMENTED();
}
void Context::getFixedv(GLenum pname, GLfixed *params)
{
UNIMPLEMENTED();
}
void Context::getLightfv(GLenum light, GLenum pname, GLfloat *params)
{
UNIMPLEMENTED();
}
void Context::getLightxv(GLenum light, GLenum pname, GLfixed *params)
{
UNIMPLEMENTED();
}
void Context::getMaterialfv(GLenum face, GLenum pname, GLfloat *params)
{
UNIMPLEMENTED();
}
void Context::getMaterialxv(GLenum face, GLenum pname, GLfixed *params)
{
UNIMPLEMENTED();
}
void Context::getTexEnvfv(GLenum target, GLenum pname, GLfloat *params)
{
UNIMPLEMENTED();
}
void Context::getTexEnviv(GLenum target, GLenum pname, GLint *params)
{
UNIMPLEMENTED();
}
void Context::getTexEnvxv(GLenum target, GLenum pname, GLfixed *params)
{
UNIMPLEMENTED();
}
void Context::getTexParameterxv(GLenum target, GLenum pname, GLfixed *params)
{
UNIMPLEMENTED();
}
void Context::lightModelf(GLenum pname, GLfloat param)
{
UNIMPLEMENTED();
}
void Context::lightModelfv(GLenum pname, const GLfloat *params)
{
UNIMPLEMENTED();
}
void Context::lightModelx(GLenum pname, GLfixed param)
{
UNIMPLEMENTED();
}
void Context::lightModelxv(GLenum pname, const GLfixed *param)
{
UNIMPLEMENTED();
}
void Context::lightf(GLenum light, GLenum pname, GLfloat param)
{
UNIMPLEMENTED();
}
void Context::lightfv(GLenum light, GLenum pname, const GLfloat *params)
{
UNIMPLEMENTED();
}
void Context::lightx(GLenum light, GLenum pname, GLfixed param)
{
UNIMPLEMENTED();
}
void Context::lightxv(GLenum light, GLenum pname, const GLfixed *params)
{
UNIMPLEMENTED();
}
void Context::lineWidthx(GLfixed width)
{
UNIMPLEMENTED();
}
void Context::loadIdentity()
{
UNIMPLEMENTED();
}
void Context::loadMatrixf(const GLfloat *m)
{
UNIMPLEMENTED();
}
void Context::loadMatrixx(const GLfixed *m)
{
UNIMPLEMENTED();
}
void Context::logicOp(GLenum opcode)
{
UNIMPLEMENTED();
}
void Context::materialf(GLenum face, GLenum pname, GLfloat param)
{
UNIMPLEMENTED();
}
void Context::materialfv(GLenum face, GLenum pname, const GLfloat *params)
{
UNIMPLEMENTED();
}
void Context::materialx(GLenum face, GLenum pname, GLfixed param)
{
UNIMPLEMENTED();
}
void Context::materialxv(GLenum face, GLenum pname, const GLfixed *param)
{
UNIMPLEMENTED();
}
void Context::matrixMode(GLenum mode)
{
UNIMPLEMENTED();
}
void Context::multMatrixf(const GLfloat *m)
{
UNIMPLEMENTED();
}
void Context::multMatrixx(const GLfixed *m)
{
UNIMPLEMENTED();
}
void Context::multiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
{
UNIMPLEMENTED();
}
void Context::multiTexCoord4x(GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
{
UNIMPLEMENTED();
}
void Context::normal3f(GLfloat nx, GLfloat ny, GLfloat nz)
{
UNIMPLEMENTED();
}
void Context::normal3x(GLfixed nx, GLfixed ny, GLfixed nz)
{
UNIMPLEMENTED();
}
void Context::normalPointer(GLenum type, GLsizei stride, const void *pointer)
{
UNIMPLEMENTED();
}
void Context::orthof(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f)
{
UNIMPLEMENTED();
}
void Context::orthox(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f)
{
UNIMPLEMENTED();
}
void Context::pointParameterf(GLenum pname, GLfloat param)
{
UNIMPLEMENTED();
}
void Context::pointParameterfv(GLenum pname, const GLfloat *params)
{
UNIMPLEMENTED();
}
void Context::pointParameterx(GLenum pname, GLfixed param)
{
UNIMPLEMENTED();
}
void Context::pointParameterxv(GLenum pname, const GLfixed *params)
{
UNIMPLEMENTED();
}
void Context::pointSize(GLfloat size)
{
UNIMPLEMENTED();
}
void Context::pointSizex(GLfixed size)
{
UNIMPLEMENTED();
}
void Context::polygonOffsetx(GLfixed factor, GLfixed units)
{
UNIMPLEMENTED();
}
void Context::popMatrix()
{
UNIMPLEMENTED();
}
void Context::pushMatrix()
{
UNIMPLEMENTED();
}
void Context::rotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
{
UNIMPLEMENTED();
}
void Context::rotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
{
UNIMPLEMENTED();
}
void Context::sampleCoveragex(GLclampx value, GLboolean invert)
{
UNIMPLEMENTED();
}
void Context::scalef(GLfloat x, GLfloat y, GLfloat z)
{
UNIMPLEMENTED();
}
void Context::scalex(GLfixed x, GLfixed y, GLfixed z)
{
UNIMPLEMENTED();
}
void Context::shadeModel(GLenum mode)
{
UNIMPLEMENTED();
}
void Context::texCoordPointer(GLint size, GLenum type, GLsizei stride, const void *pointer)
{
UNIMPLEMENTED();
}
void Context::texEnvf(GLenum target, GLenum pname, GLfloat param)
{
UNIMPLEMENTED();
}
void Context::texEnvfv(GLenum target, GLenum pname, const GLfloat *params)
{
UNIMPLEMENTED();
}
void Context::texEnvi(GLenum target, GLenum pname, GLint param)
{
UNIMPLEMENTED();
}
void Context::texEnviv(GLenum target, GLenum pname, const GLint *params)
{
UNIMPLEMENTED();
}
void Context::texEnvx(GLenum target, GLenum pname, GLfixed param)
{
UNIMPLEMENTED();
}
void Context::texEnvxv(GLenum target, GLenum pname, const GLfixed *params)
{
UNIMPLEMENTED();
}
void Context::texParameterx(GLenum target, GLenum pname, GLfixed param)
{
UNIMPLEMENTED();
}
void Context::texParameterxv(GLenum target, GLenum pname, const GLfixed *params)
{
UNIMPLEMENTED();
}
void Context::translatef(GLfloat x, GLfloat y, GLfloat z)
{
UNIMPLEMENTED();
}
void Context::translatex(GLfixed x, GLfixed y, GLfixed z)
{
UNIMPLEMENTED();
}
void Context::vertexPointer(GLint size, GLenum type, GLsizei stride, const void *pointer)
{
UNIMPLEMENTED();
}
void Context::drawTexf(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height)
{
UNIMPLEMENTED();
}
void Context::drawTexfv(const GLfloat *coords)
{
UNIMPLEMENTED();
}
void Context::drawTexi(GLint x, GLint y, GLint z, GLint width, GLint height)
{
UNIMPLEMENTED();
}
void Context::drawTexiv(const GLint *coords)
{
UNIMPLEMENTED();
}
void Context::drawTexs(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height)
{
UNIMPLEMENTED();
}
void Context::drawTexsv(const GLshort *coords)
{
UNIMPLEMENTED();
}
void Context::drawTexx(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height)
{
UNIMPLEMENTED();
}
void Context::drawTexxv(const GLfixed *coords)
{
UNIMPLEMENTED();
}
void Context::currentPaletteMatrix(GLuint matrixpaletteindex)
{
UNIMPLEMENTED();
}
void Context::loadPaletteFromModelViewMatrix()
{
UNIMPLEMENTED();
}
void Context::matrixIndexPointer(GLint size, GLenum type, GLsizei stride, const void *pointer)
{
UNIMPLEMENTED();
}
void Context::weightPointer(GLint size, GLenum type, GLsizei stride, const void *pointer)
{
UNIMPLEMENTED();
}
void Context::pointSizePointer(GLenum type, GLsizei stride, const void *pointer)
{
UNIMPLEMENTED();
}
GLbitfield Context::queryMatrixx(GLfixed *mantissa, GLint *exponent)
{
UNIMPLEMENTED();
return 0;
}
} // namespace gl } // namespace gl
...@@ -125,6 +125,118 @@ class Context final : public ValidationContext ...@@ -125,6 +125,118 @@ class Context final : public ValidationContext
void setFenceNV(GLuint fence, GLenum condition); void setFenceNV(GLuint fence, GLenum condition);
GLboolean testFenceNV(GLuint fence); GLboolean testFenceNV(GLuint fence);
// OpenGL ES 1
void alphaFunc(GLenum func, GLfloat ref);
void alphaFuncx(GLenum func, GLfixed ref);
void clearColorx(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
void clearDepthx(GLfixed depth);
void clientActiveTexture(GLenum texture);
void clipPlanef(GLenum p, const GLfloat *eqn);
void clipPlanex(GLenum plane, const GLfixed *equation);
void color4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
void color4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
void color4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
void colorPointer(GLint size, GLenum type, GLsizei stride, const void *pointer);
void cullFace(GLenum mode);
void depthRangex(GLfixed n, GLfixed f);
void disableClientState(GLenum array);
void enableClientState(GLenum array);
void fogf(GLenum pname, GLfloat param);
void fogfv(GLenum pname, const GLfloat *params);
void fogx(GLenum pname, GLfixed param);
void fogxv(GLenum pname, const GLfixed *param);
void frustumf(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
void frustumx(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
void getBufferParameteriv(GLenum target, GLenum pname, GLint *params);
void getClipPlanef(GLenum plane, GLfloat *equation);
void getClipPlanex(GLenum plane, GLfixed *equation);
void getFixedv(GLenum pname, GLfixed *params);
void getLightfv(GLenum light, GLenum pname, GLfloat *params);
void getLightxv(GLenum light, GLenum pname, GLfixed *params);
void getMaterialfv(GLenum face, GLenum pname, GLfloat *params);
void getMaterialxv(GLenum face, GLenum pname, GLfixed *params);
void getTexEnvfv(GLenum target, GLenum pname, GLfloat *params);
void getTexEnviv(GLenum target, GLenum pname, GLint *params);
void getTexEnvxv(GLenum target, GLenum pname, GLfixed *params);
void getTexParameterxv(GLenum target, GLenum pname, GLfixed *params);
void lightModelf(GLenum pname, GLfloat param);
void lightModelfv(GLenum pname, const GLfloat *params);
void lightModelx(GLenum pname, GLfixed param);
void lightModelxv(GLenum pname, const GLfixed *param);
void lightf(GLenum light, GLenum pname, GLfloat param);
void lightfv(GLenum light, GLenum pname, const GLfloat *params);
void lightx(GLenum light, GLenum pname, GLfixed param);
void lightxv(GLenum light, GLenum pname, const GLfixed *params);
void lineWidthx(GLfixed width);
void loadIdentity();
void loadMatrixf(const GLfloat *m);
void loadMatrixx(const GLfixed *m);
void logicOp(GLenum opcode);
void materialf(GLenum face, GLenum pname, GLfloat param);
void materialfv(GLenum face, GLenum pname, const GLfloat *params);
void materialx(GLenum face, GLenum pname, GLfixed param);
void materialxv(GLenum face, GLenum pname, const GLfixed *param);
void matrixMode(GLenum mode);
void multMatrixf(const GLfloat *m);
void multMatrixx(const GLfixed *m);
void multiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
void multiTexCoord4x(GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
void normal3f(GLfloat nx, GLfloat ny, GLfloat nz);
void normal3x(GLfixed nx, GLfixed ny, GLfixed nz);
void normalPointer(GLenum type, GLsizei stride, const void *pointer);
void orthof(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
void orthox(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
void pointParameterf(GLenum pname, GLfloat param);
void pointParameterfv(GLenum pname, const GLfloat *params);
void pointParameterx(GLenum pname, GLfixed param);
void pointParameterxv(GLenum pname, const GLfixed *params);
void pointSize(GLfloat size);
void pointSizex(GLfixed size);
void polygonOffsetx(GLfixed factor, GLfixed units);
void popMatrix();
void pushMatrix();
void rotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
void rotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
void sampleCoveragex(GLclampx value, GLboolean invert);
void scalef(GLfloat x, GLfloat y, GLfloat z);
void scalex(GLfixed x, GLfixed y, GLfixed z);
void shadeModel(GLenum mode);
void texCoordPointer(GLint size, GLenum type, GLsizei stride, const void *pointer);
void texEnvf(GLenum target, GLenum pname, GLfloat param);
void texEnvfv(GLenum target, GLenum pname, const GLfloat *params);
void texEnvi(GLenum target, GLenum pname, GLint param);
void texEnviv(GLenum target, GLenum pname, const GLint *params);
void texEnvx(GLenum target, GLenum pname, GLfixed param);
void texEnvxv(GLenum target, GLenum pname, const GLfixed *params);
void texParameterx(GLenum target, GLenum pname, GLfixed param);
void texParameterxv(GLenum target, GLenum pname, const GLfixed *params);
void translatef(GLfloat x, GLfloat y, GLfloat z);
void translatex(GLfixed x, GLfixed y, GLfixed z);
void vertexPointer(GLint size, GLenum type, GLsizei stride, 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_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(GLenum type, GLsizei stride, const void *pointer);
// GL_OES_query_matrix
GLbitfield queryMatrixx(GLfixed *mantissa, GLint *exponent);
// OpenGL ES 2+
void bindTexture(GLenum target, GLuint handle); void bindTexture(GLenum target, GLuint handle);
void bindReadFramebuffer(GLuint framebufferHandle); void bindReadFramebuffer(GLuint framebufferHandle);
void bindDrawFramebuffer(GLuint framebufferHandle); void bindDrawFramebuffer(GLuint framebufferHandle);
......
...@@ -476,6 +476,15 @@ Error Display::initialize() ...@@ -476,6 +476,15 @@ Error Display::initialize()
return EglNotInitialized(); return EglNotInitialized();
} }
// OpenGL ES1 is implemented in the frontend, explicitly add ES1 support to all configs
for (auto &config : mConfigSet)
{
// TODO(geofflang): Enable the conformant bit once we pass enough tests
// config.second.conformant |= EGL_OPENGL_ES_BIT;
config.second.renderableType |= EGL_OPENGL_ES_BIT;
}
initDisplayExtensions(); initDisplayExtensions();
initVendorString(); initVendorString();
......
...@@ -18,6 +18,8 @@ enum class EntryPoint ...@@ -18,6 +18,8 @@ enum class EntryPoint
Invalid, Invalid,
ActiveShaderProgram, ActiveShaderProgram,
ActiveTexture, ActiveTexture,
AlphaFunc,
AlphaFuncx,
AttachShader, AttachShader,
BeginQuery, BeginQuery,
BeginQueryEXT, BeginQueryEXT,
...@@ -52,10 +54,19 @@ enum class EntryPoint ...@@ -52,10 +54,19 @@ enum class EntryPoint
ClearBufferiv, ClearBufferiv,
ClearBufferuiv, ClearBufferuiv,
ClearColor, ClearColor,
ClearColorx,
ClearDepthf, ClearDepthf,
ClearDepthx,
ClearStencil, ClearStencil,
ClientActiveTexture,
ClientWaitSync, ClientWaitSync,
ClipPlanef,
ClipPlanex,
Color4f,
Color4ub,
Color4x,
ColorMask, ColorMask,
ColorPointer,
CompileShader, CompileShader,
CompressedTexImage2D, CompressedTexImage2D,
CompressedTexImage3D, CompressedTexImage3D,
...@@ -69,6 +80,7 @@ enum class EntryPoint ...@@ -69,6 +80,7 @@ enum class EntryPoint
CreateShader, CreateShader,
CreateShaderProgramv, CreateShaderProgramv,
CullFace, CullFace,
CurrentPaletteMatrixOES,
DebugMessageCallbackKHR, DebugMessageCallbackKHR,
DebugMessageControlKHR, DebugMessageControlKHR,
DebugMessageInsertKHR, DebugMessageInsertKHR,
...@@ -90,8 +102,10 @@ enum class EntryPoint ...@@ -90,8 +102,10 @@ enum class EntryPoint
DepthFunc, DepthFunc,
DepthMask, DepthMask,
DepthRangef, DepthRangef,
DepthRangex,
DetachShader, DetachShader,
Disable, Disable,
DisableClientState,
DisableVertexAttribArray, DisableVertexAttribArray,
DiscardFramebufferEXT, DiscardFramebufferEXT,
DispatchCompute, DispatchCompute,
...@@ -107,9 +121,18 @@ enum class EntryPoint ...@@ -107,9 +121,18 @@ enum class EntryPoint
DrawElementsInstanced, DrawElementsInstanced,
DrawElementsInstancedANGLE, DrawElementsInstancedANGLE,
DrawRangeElements, DrawRangeElements,
DrawTexfOES,
DrawTexfvOES,
DrawTexiOES,
DrawTexivOES,
DrawTexsOES,
DrawTexsvOES,
DrawTexxOES,
DrawTexxvOES,
EGLImageTargetRenderbufferStorageOES, EGLImageTargetRenderbufferStorageOES,
EGLImageTargetTexture2DOES, EGLImageTargetTexture2DOES,
Enable, Enable,
EnableClientState,
EnableVertexAttribArray, EnableVertexAttribArray,
EndQuery, EndQuery,
EndQueryEXT, EndQueryEXT,
...@@ -120,11 +143,17 @@ enum class EntryPoint ...@@ -120,11 +143,17 @@ enum class EntryPoint
Flush, Flush,
FlushMappedBufferRange, FlushMappedBufferRange,
FlushMappedBufferRangeEXT, FlushMappedBufferRangeEXT,
Fogf,
Fogfv,
Fogx,
Fogxv,
FramebufferParameteri, FramebufferParameteri,
FramebufferRenderbuffer, FramebufferRenderbuffer,
FramebufferTexture2D, FramebufferTexture2D,
FramebufferTextureLayer, FramebufferTextureLayer,
FrontFace, FrontFace,
Frustumf,
Frustumx,
GenBuffers, GenBuffers,
GenFencesNV, GenFencesNV,
GenFramebuffers, GenFramebuffers,
...@@ -151,9 +180,12 @@ enum class EntryPoint ...@@ -151,9 +180,12 @@ enum class EntryPoint
GetBufferParameteriv, GetBufferParameteriv,
GetBufferPointerv, GetBufferPointerv,
GetBufferPointervOES, GetBufferPointervOES,
GetClipPlanef,
GetClipPlanex,
GetDebugMessageLogKHR, GetDebugMessageLogKHR,
GetError, GetError,
GetFenceivNV, GetFenceivNV,
GetFixedv,
GetFloatv, GetFloatv,
GetFragDataLocation, GetFragDataLocation,
GetFramebufferAttachmentParameteriv, GetFramebufferAttachmentParameteriv,
...@@ -164,9 +196,14 @@ enum class EntryPoint ...@@ -164,9 +196,14 @@ enum class EntryPoint
GetIntegeri_v, GetIntegeri_v,
GetIntegerv, GetIntegerv,
GetInternalformativ, GetInternalformativ,
GetLightfv,
GetLightxv,
GetMaterialfv,
GetMaterialxv,
GetMultisamplefv, GetMultisamplefv,
GetObjectLabelKHR, GetObjectLabelKHR,
GetObjectPtrLabelKHR, GetObjectPtrLabelKHR,
GetPointerv,
GetPointervKHR, GetPointervKHR,
GetProgramBinary, GetProgramBinary,
GetProgramBinaryOES, GetProgramBinaryOES,
...@@ -196,10 +233,14 @@ enum class EntryPoint ...@@ -196,10 +233,14 @@ enum class EntryPoint
GetString, GetString,
GetStringi, GetStringi,
GetSynciv, GetSynciv,
GetTexEnvfv,
GetTexEnviv,
GetTexEnvxv,
GetTexLevelParameterfv, GetTexLevelParameterfv,
GetTexLevelParameteriv, GetTexLevelParameteriv,
GetTexParameterfv, GetTexParameterfv,
GetTexParameteriv, GetTexParameteriv,
GetTexParameterxv,
GetTransformFeedbackVarying, GetTransformFeedbackVarying,
GetTranslatedShaderSourceANGLE, GetTranslatedShaderSourceANGLE,
GetUniformBlockIndex, GetUniformBlockIndex,
...@@ -235,20 +276,58 @@ enum class EntryPoint ...@@ -235,20 +276,58 @@ enum class EntryPoint
IsTransformFeedback, IsTransformFeedback,
IsVertexArray, IsVertexArray,
IsVertexArrayOES, IsVertexArrayOES,
LightModelf,
LightModelfv,
LightModelx,
LightModelxv,
Lightf,
Lightfv,
Lightx,
Lightxv,
LineWidth, LineWidth,
LineWidthx,
LinkProgram, LinkProgram,
LoadIdentity,
LoadMatrixf,
LoadMatrixx,
LoadPaletteFromModelViewMatrixOES,
LogicOp,
MapBufferOES, MapBufferOES,
MapBufferRange, MapBufferRange,
MapBufferRangeEXT, MapBufferRangeEXT,
Materialf,
Materialfv,
Materialx,
Materialxv,
MatrixIndexPointerOES,
MatrixMode,
MemoryBarrier, MemoryBarrier,
MemoryBarrierByRegion, MemoryBarrierByRegion,
MultMatrixf,
MultMatrixx,
MultiTexCoord4f,
MultiTexCoord4x,
Normal3f,
Normal3x,
NormalPointer,
ObjectLabelKHR, ObjectLabelKHR,
ObjectPtrLabelKHR, ObjectPtrLabelKHR,
Orthof,
Orthox,
PauseTransformFeedback, PauseTransformFeedback,
PixelStorei, PixelStorei,
PointParameterf,
PointParameterfv,
PointParameterx,
PointParameterxv,
PointSize,
PointSizePointerOES,
PointSizex,
PolygonOffset, PolygonOffset,
PolygonOffsetx,
PopDebugGroupKHR, PopDebugGroupKHR,
PopGroupMarkerEXT, PopGroupMarkerEXT,
PopMatrix,
ProgramBinary, ProgramBinary,
ProgramBinaryOES, ProgramBinaryOES,
ProgramParameteri, ProgramParameteri,
...@@ -287,7 +366,9 @@ enum class EntryPoint ...@@ -287,7 +366,9 @@ enum class EntryPoint
ProgramUniformMatrix4x3fv, ProgramUniformMatrix4x3fv,
PushDebugGroupKHR, PushDebugGroupKHR,
PushGroupMarkerEXT, PushGroupMarkerEXT,
PushMatrix,
QueryCounterEXT, QueryCounterEXT,
QueryMatrixxOES,
ReadBuffer, ReadBuffer,
ReadPixels, ReadPixels,
ReadnPixelsEXT, ReadnPixelsEXT,
...@@ -296,14 +377,20 @@ enum class EntryPoint ...@@ -296,14 +377,20 @@ enum class EntryPoint
RenderbufferStorageMultisample, RenderbufferStorageMultisample,
RenderbufferStorageMultisampleANGLE, RenderbufferStorageMultisampleANGLE,
ResumeTransformFeedback, ResumeTransformFeedback,
Rotatef,
Rotatex,
SampleCoverage, SampleCoverage,
SampleCoveragex,
SampleMaski, SampleMaski,
SamplerParameterf, SamplerParameterf,
SamplerParameterfv, SamplerParameterfv,
SamplerParameteri, SamplerParameteri,
SamplerParameteriv, SamplerParameteriv,
Scalef,
Scalex,
Scissor, Scissor,
SetFenceNV, SetFenceNV,
ShadeModel,
ShaderBinary, ShaderBinary,
ShaderSource, ShaderSource,
StencilFunc, StencilFunc,
...@@ -313,12 +400,21 @@ enum class EntryPoint ...@@ -313,12 +400,21 @@ enum class EntryPoint
StencilOp, StencilOp,
StencilOpSeparate, StencilOpSeparate,
TestFenceNV, TestFenceNV,
TexCoordPointer,
TexEnvf,
TexEnvfv,
TexEnvi,
TexEnviv,
TexEnvx,
TexEnvxv,
TexImage2D, TexImage2D,
TexImage3D, TexImage3D,
TexParameterf, TexParameterf,
TexParameterfv, TexParameterfv,
TexParameteri, TexParameteri,
TexParameteriv, TexParameteriv,
TexParameterx,
TexParameterxv,
TexStorage1DEXT, TexStorage1DEXT,
TexStorage2D, TexStorage2D,
TexStorage2DEXT, TexStorage2DEXT,
...@@ -328,6 +424,8 @@ enum class EntryPoint ...@@ -328,6 +424,8 @@ enum class EntryPoint
TexSubImage2D, TexSubImage2D,
TexSubImage3D, TexSubImage3D,
TransformFeedbackVaryings, TransformFeedbackVaryings,
Translatef,
Translatex,
Uniform1f, Uniform1f,
Uniform1fv, Uniform1fv,
Uniform1i, Uniform1i,
...@@ -388,8 +486,10 @@ enum class EntryPoint ...@@ -388,8 +486,10 @@ enum class EntryPoint
VertexAttribIPointer, VertexAttribIPointer,
VertexAttribPointer, VertexAttribPointer,
VertexBindingDivisor, VertexBindingDivisor,
VertexPointer,
Viewport, Viewport,
WaitSync WaitSync,
WeightPointerOES
}; };
} // namespace gl } // namespace gl
#endif // LIBGLESV2_ENTRY_POINTS_ENUM_AUTOGEN_H_ #endif // LIBGLESV2_ENTRY_POINTS_ENUM_AUTOGEN_H_
...@@ -744,6 +744,13 @@ Error ValidateCreateContext(Display *display, Config *configuration, gl::Context ...@@ -744,6 +744,13 @@ Error ValidateCreateContext(Display *display, Config *configuration, gl::Context
switch (clientMajorVersion) switch (clientMajorVersion)
{ {
case 1:
if (clientMinorVersion != 0 && clientMinorVersion != 1)
{
return EglBadConfig();
}
break;
case 2: case 2:
if (clientMinorVersion != 0) if (clientMinorVersion != 0)
{ {
......
LIBRARY libGLESv1_CM
EXPORTS
glAlphaFunc @1
glClearColor @2
glClearDepthf @3
glClipPlanef @4
glColor4f @5
glDepthRangef @6
glFogf @7
glFogfv @8
glFrustumf @9
glGetClipPlanef @10
glGetFloatv @11
glGetLightfv @12
glGetMaterialfv @13
glGetTexEnvfv @14
glGetTexParameterfv @15
glLightModelf @16
glLightModelfv @17
glLightf @18
glLightfv @19
glLineWidth @20
glLoadMatrixf @21
glMaterialf @22
glMaterialfv @23
glMultMatrixf @24
glMultiTexCoord4f @25
glNormal3f @26
glOrthof @27
glPointParameterf @28
glPointParameterfv @29
glPointSize @30
glPolygonOffset @31
glRotatef @32
glScalef @33
glTexEnvf @34
glTexEnvfv @35
glTexParameterf @36
glTexParameterfv @37
glTranslatef @38
glActiveTexture @39
glAlphaFuncx @40
glBindBuffer @41
glBindTexture @42
glBlendFunc @43
glBufferData @44
glBufferSubData @45
glClear @46
glClearColorx @47
glClearDepthx @48
glClearStencil @49
glClientActiveTexture @50
glClipPlanex @51
glColor4ub @52
glColor4x @53
glColorMask @54
glColorPointer @55
glCompressedTexImage2D @56
glCompressedTexSubImage2D @57
glCopyTexImage2D @58
glCopyTexSubImage2D @59
glCullFace @60
glDeleteBuffers @61
glDeleteTextures @62
glDepthFunc @63
glDepthMask @64
glDepthRangex @65
glDisable @66
glDisableClientState @67
glDrawArrays @68
glDrawElements @69
glEnable @70
glEnableClientState @71
glFinish @72
glFlush @73
glFogx @74
glFogxv @75
glFrontFace @76
glFrustumx @77
glGetBooleanv @78
glGetBufferParameteriv @79
glGetClipPlanex @80
glGenBuffers @81
glGenTextures @82
glGetError @83
glGetFixedv @84
glGetIntegerv @85
glGetLightxv @86
glGetMaterialxv @87
glGetPointerv @88
glGetString @89
glGetTexEnviv @90
glGetTexEnvxv @91
glGetTexParameteriv @92
glGetTexParameterxv @93
glHint @94
glIsBuffer @95
glIsEnabled @96
glIsTexture @97
glLightModelx @98
glLightModelxv @99
glLightx @100
glLightxv @101
glLineWidthx @102
glLoadIdentity @103
glLoadMatrixx @104
glLogicOp @105
glMaterialx @106
glMaterialxv @107
glMatrixMode @108
glMultMatrixx @109
glMultiTexCoord4x @110
glNormal3x @111
glNormalPointer @112
glOrthox @113
glPixelStorei @114
glPointParameterx @115
glPointParameterxv @116
glPointSizex @117
glPolygonOffsetx @118
glPopMatrix @119
glPushMatrix @120
glReadPixels @121
glRotatex @122
glSampleCoverage @123
glSampleCoveragex @124
glScalex @125
glScissor @126
glShadeModel @127
glStencilFunc @128
glStencilMask @129
glStencilOp @130
glTexCoordPointer @131
glTexEnvi @132
glTexEnvx @133
glTexEnviv @134
glTexEnvxv @135
glTexImage2D @136
glTexParameteri @137
glTexParameterx @138
glTexParameteriv @139
glTexParameterxv @140
glTexSubImage2D @141
glTranslatex @142
glVertexPointer @143
glViewport @144
; GL_OES_draw_texture
glDrawTexfOES @145
glDrawTexfvOES @146
glDrawTexiOES @147
glDrawTexivOES @148
glDrawTexsOES @149
glDrawTexsvOES @150
glDrawTexxOES @151
glDrawTexxvOES @152
; GL_OES_matrix_palette
glCurrentPaletteMatrixOES @153
glLoadPaletteFromModelViewMatrixOES @154
glMatrixIndexPointerOES @155
glWeightPointerOES @156
; GL_OES_point_size_array
glPointSizePointerOES @157
; GL_OES_query_matrix
glQueryMatrixxOES @158
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include <windows.h>
#include "../common/version.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"#include ""../common/version.h""\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION ANGLE_MAJOR_VERSION,ANGLE_MINOR_VERSION,ANGLE_REVISION,0
PRODUCTVERSION ANGLE_MAJOR_VERSION,ANGLE_MINOR_VERSION,ANGLE_REVISION,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "ANGLE libGLESv1_CM Dynamic Link Library"
VALUE "FileVersion", ANGLE_VERSION_STRING
VALUE "InternalName", "libGLESv1_CM"
VALUE "LegalCopyright", "Copyright (C) 2015 Google Inc."
VALUE "OriginalFilename", "libGLESv1_CM.dll"
VALUE "PrivateBuild", ANGLE_VERSION_STRING
VALUE "ProductName", "ANGLE libGLESv1_CM Dynamic Link Library"
VALUE "ProductVersion", ANGLE_VERSION_STRING
VALUE "Comments", "Build Date: " ANGLE_COMMIT_DATE
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by libGLESv1_CM.rc
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
...@@ -279,6 +279,8 @@ ...@@ -279,6 +279,8 @@
'libANGLE/validationEGL.h', 'libANGLE/validationEGL.h',
'libANGLE/validationES.cpp', 'libANGLE/validationES.cpp',
'libANGLE/validationES.h', 'libANGLE/validationES.h',
'libANGLE/validationES1.cpp',
'libANGLE/validationES1.h',
'libANGLE/validationES2.cpp', 'libANGLE/validationES2.cpp',
'libANGLE/validationES2.h', 'libANGLE/validationES2.h',
'libANGLE/validationES3.cpp', 'libANGLE/validationES3.cpp',
...@@ -824,16 +826,18 @@ ...@@ -824,16 +826,18 @@
'libGLESv2/entry_points_egl.h', 'libGLESv2/entry_points_egl.h',
'libGLESv2/entry_points_egl_ext.cpp', 'libGLESv2/entry_points_egl_ext.cpp',
'libGLESv2/entry_points_egl_ext.h', 'libGLESv2/entry_points_egl_ext.h',
'libGLESv2/entry_points_gles_1_0_autogen.cpp',
'libGLESv2/entry_points_gles_1_0_autogen.h',
'libGLESv2/entry_points_gles_2_0_autogen.cpp', 'libGLESv2/entry_points_gles_2_0_autogen.cpp',
'libGLESv2/entry_points_gles_2_0_autogen.h', 'libGLESv2/entry_points_gles_2_0_autogen.h',
'libGLESv2/entry_points_gles_2_0_ext.cpp', 'libGLESv2/entry_points_gles_2_0_ext.cpp',
'libGLESv2/entry_points_gles_2_0_ext.h', 'libGLESv2/entry_points_gles_2_0_ext.h',
'libGLESv2/entry_points_gles_2_0_ext_autogen.cpp',
'libGLESv2/entry_points_gles_2_0_ext_autogen.h',
'libGLESv2/entry_points_gles_3_0_autogen.cpp', 'libGLESv2/entry_points_gles_3_0_autogen.cpp',
'libGLESv2/entry_points_gles_3_0_autogen.h', 'libGLESv2/entry_points_gles_3_0_autogen.h',
'libGLESv2/entry_points_gles_3_1_autogen.cpp', 'libGLESv2/entry_points_gles_3_1_autogen.cpp',
'libGLESv2/entry_points_gles_3_1_autogen.h', 'libGLESv2/entry_points_gles_3_1_autogen.h',
'libGLESv2/entry_points_gles_ext_autogen.cpp',
'libGLESv2/entry_points_gles_ext_autogen.h',
'libGLESv2/global_state.cpp', 'libGLESv2/global_state.cpp',
'libGLESv2/global_state.h', 'libGLESv2/global_state.h',
'libGLESv2/libGLESv2.cpp', 'libGLESv2/libGLESv2.cpp',
...@@ -843,6 +847,13 @@ ...@@ -843,6 +847,13 @@
'libGLESv2/proc_table_autogen.cpp', 'libGLESv2/proc_table_autogen.cpp',
'libGLESv2/resource.h', 'libGLESv2/resource.h',
], ],
'libglesv1_cm_sources':
[
'libGLESv1_CM/libGLESv1_CM.cpp',
'libGLESv1_CM/libGLESv1_CM.def',
'libGLESv1_CM/libGLESv1_CM.rc',
'libGLESv1_CM/resource.h',
],
'libegl_sources': 'libegl_sources':
[ [
'libEGL/libEGL.cpp', 'libEGL/libEGL.cpp',
...@@ -1001,11 +1012,13 @@ ...@@ -1001,11 +1012,13 @@
'defines': 'defines':
[ [
'GL_APICALL=', 'GL_APICALL=',
'GL_API=',
], ],
}, { }, {
'defines': 'defines':
[ [
'GL_APICALL=__attribute__((visibility("default")))', 'GL_APICALL=__attribute__((visibility("default")))',
'GL_API=__attribute__((visibility("default")))',
], ],
}], }],
['OS == "mac"', ['OS == "mac"',
...@@ -1250,5 +1263,66 @@ ...@@ -1250,5 +1263,66 @@
}], }],
], ],
}, },
{
'target_name': 'libGLESv1_CM',
'type': '<(angle_gl_library_type)',
'dependencies': [ 'libGLESv2' ],
'includes': [ '../gyp/common_defines.gypi', ],
'include_dirs':
[
'.',
'../include',
],
'sources':
[
'<@(libglesv1_cm_sources)',
],
'conditions':
[
['angle_build_winrt==1',
{
'msvs_requires_importlibrary' : 'true',
}],
['OS=="win"',
{
'defines':
[
'GL_APICALL=',
'GL_API=',
],
},
{
'defines':
[
'GL_APICALL=__attribute__((visibility("default")))',
'GL_API=__attribute__((visibility("default")))',
],
}],
],
},
{
'target_name': 'libGLESv1_CM_static',
'type': 'static_library',
'dependencies': [ 'libGLESv2_static' ],
'includes': [ '../gyp/common_defines.gypi', ],
'include_dirs':
[
'.',
'../include',
],
'sources':
[
'<@(libglesv1_cm_sources)',
],
'conditions':
[
['angle_build_winrt==1',
{
'msvs_requires_importlibrary' : 'true',
}],
],
},
], ],
} }
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
// entry_points_gles_3_0_autogen.cpp: // entry_points_gles_3_0_autogen.cpp:
// Defines the GLES 3.0 entry points. // Defines the GLES 3.0 entry points.
#include "libGLESv2/entry_points_gles_3_0_autogen.h"
#include "libANGLE/Context.h" #include "libANGLE/Context.h"
#include "libANGLE/validationES3.h" #include "libANGLE/validationES3.h"
#include "libGLESv2/global_state.h" #include "libGLESv2/global_state.h"
......
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
// entry_points_gles_3_1_autogen.cpp: // entry_points_gles_3_1_autogen.cpp:
// Defines the GLES 3.1 entry points. // Defines the GLES 3.1 entry points.
#include "libGLESv2/entry_points_gles_3_1_autogen.h"
#include "libANGLE/Context.h" #include "libANGLE/Context.h"
#include "libANGLE/validationES31.h" #include "libANGLE/validationES31.h"
#include "libGLESv2/global_state.h" #include "libGLESv2/global_state.h"
......
...@@ -5,15 +5,19 @@ ...@@ -5,15 +5,19 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// //
// entry_points_gles_2_0_ext_autogen.cpp: // entry_points_gles_ext_autogen.cpp:
// Defines the GLES extension entry points. // Defines the GLES extension entry points.
#include "libGLESv2/entry_points_gles_ext_autogen.h"
#include "libANGLE/Context.h" #include "libANGLE/Context.h"
#include "libANGLE/validationES.h" #include "libANGLE/validationES.h"
#include "libANGLE/validationES2.h" #include "libGLESv2/global_state.h"
#include "libANGLE/validationES.h"
#include "libANGLE/validationES1.h"
#include "libANGLE/validationES3.h" #include "libANGLE/validationES3.h"
#include "libANGLE/validationES31.h" #include "libANGLE/validationES31.h"
#include "libGLESv2/global_state.h"
namespace gl namespace gl
{ {
...@@ -1051,6 +1055,143 @@ void GL_APIENTRY EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image) ...@@ -1051,6 +1055,143 @@ void GL_APIENTRY EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image)
} }
} }
// GL_OES_draw_texture
void GL_APIENTRY DrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height)
{
EVENT(
"(GLfloat x = %f, GLfloat y = %f, GLfloat z = %f, GLfloat width = %f, GLfloat height = %f)",
x, y, z, width, height);
Context *context = GetValidGlobalContext();
if (context)
{
context->gatherParams<EntryPoint::DrawTexfOES>(x, y, z, width, height);
if (context->skipValidation() || ValidateDrawTexfOES(context, x, y, z, width, height))
{
context->drawTexf(x, y, z, width, height);
}
}
}
void GL_APIENTRY DrawTexfvOES(const GLfloat *coords)
{
EVENT("(const GLfloat *coords = 0x%0.8p)", coords);
Context *context = GetValidGlobalContext();
if (context)
{
context->gatherParams<EntryPoint::DrawTexfvOES>(coords);
if (context->skipValidation() || ValidateDrawTexfvOES(context, coords))
{
context->drawTexfv(coords);
}
}
}
void GL_APIENTRY DrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height)
{
EVENT("(GLint x = %d, GLint y = %d, GLint z = %d, GLint width = %d, GLint height = %d)", x, y,
z, width, height);
Context *context = GetValidGlobalContext();
if (context)
{
context->gatherParams<EntryPoint::DrawTexiOES>(x, y, z, width, height);
if (context->skipValidation() || ValidateDrawTexiOES(context, x, y, z, width, height))
{
context->drawTexi(x, y, z, width, height);
}
}
}
void GL_APIENTRY DrawTexivOES(const GLint *coords)
{
EVENT("(const GLint *coords = 0x%0.8p)", coords);
Context *context = GetValidGlobalContext();
if (context)
{
context->gatherParams<EntryPoint::DrawTexivOES>(coords);
if (context->skipValidation() || ValidateDrawTexivOES(context, coords))
{
context->drawTexiv(coords);
}
}
}
void GL_APIENTRY DrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height)
{
EVENT(
"(GLshort x = %d, GLshort y = %d, GLshort z = %d, GLshort width = %d, GLshort height = %d)",
x, y, z, width, height);
Context *context = GetValidGlobalContext();
if (context)
{
context->gatherParams<EntryPoint::DrawTexsOES>(x, y, z, width, height);
if (context->skipValidation() || ValidateDrawTexsOES(context, x, y, z, width, height))
{
context->drawTexs(x, y, z, width, height);
}
}
}
void GL_APIENTRY DrawTexsvOES(const GLshort *coords)
{
EVENT("(const GLshort *coords = 0x%0.8p)", coords);
Context *context = GetValidGlobalContext();
if (context)
{
context->gatherParams<EntryPoint::DrawTexsvOES>(coords);
if (context->skipValidation() || ValidateDrawTexsvOES(context, coords))
{
context->drawTexsv(coords);
}
}
}
void GL_APIENTRY DrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height)
{
EVENT(
"(GLfixed x = 0x%X, GLfixed y = 0x%X, GLfixed z = 0x%X, GLfixed width = 0x%X, GLfixed "
"height = 0x%X)",
x, y, z, width, height);
Context *context = GetValidGlobalContext();
if (context)
{
context->gatherParams<EntryPoint::DrawTexxOES>(x, y, z, width, height);
if (context->skipValidation() || ValidateDrawTexxOES(context, x, y, z, width, height))
{
context->drawTexx(x, y, z, width, height);
}
}
}
void GL_APIENTRY DrawTexxvOES(const GLfixed *coords)
{
EVENT("(const GLfixed *coords = 0x%0.8p)", coords);
Context *context = GetValidGlobalContext();
if (context)
{
context->gatherParams<EntryPoint::DrawTexxvOES>(coords);
if (context->skipValidation() || ValidateDrawTexxvOES(context, coords))
{
context->drawTexxv(coords);
}
}
}
// GL_OES_get_program_binary // GL_OES_get_program_binary
void GL_APIENTRY GetProgramBinaryOES(GLuint program, void GL_APIENTRY GetProgramBinaryOES(GLuint program,
GLsizei bufSize, GLsizei bufSize,
...@@ -1158,6 +1299,116 @@ GLboolean GL_APIENTRY UnmapBufferOES(GLenum target) ...@@ -1158,6 +1299,116 @@ GLboolean GL_APIENTRY UnmapBufferOES(GLenum target)
return GetDefaultReturnValue<EntryPoint::UnmapBufferOES, GLboolean>(); return GetDefaultReturnValue<EntryPoint::UnmapBufferOES, GLboolean>();
} }
// GL_OES_matrix_palette
void GL_APIENTRY CurrentPaletteMatrixOES(GLuint matrixpaletteindex)
{
EVENT("(GLuint matrixpaletteindex = %u)", matrixpaletteindex);
Context *context = GetValidGlobalContext();
if (context)
{
context->gatherParams<EntryPoint::CurrentPaletteMatrixOES>(matrixpaletteindex);
if (context->skipValidation() ||
ValidateCurrentPaletteMatrixOES(context, matrixpaletteindex))
{
context->currentPaletteMatrix(matrixpaletteindex);
}
}
}
void GL_APIENTRY LoadPaletteFromModelViewMatrixOES()
{
EVENT("()");
Context *context = GetValidGlobalContext();
if (context)
{
context->gatherParams<EntryPoint::LoadPaletteFromModelViewMatrixOES>();
if (context->skipValidation() || ValidateLoadPaletteFromModelViewMatrixOES(context))
{
context->loadPaletteFromModelViewMatrix();
}
}
}
void GL_APIENTRY MatrixIndexPointerOES(GLint size, GLenum type, GLsizei stride, const void *pointer)
{
EVENT(
"(GLint size = %d, GLenum type = 0x%X, GLsizei stride = %d, const void *pointer = 0x%0.8p)",
size, type, stride, pointer);
Context *context = GetValidGlobalContext();
if (context)
{
context->gatherParams<EntryPoint::MatrixIndexPointerOES>(size, type, stride, pointer);
if (context->skipValidation() ||
ValidateMatrixIndexPointerOES(context, size, type, stride, pointer))
{
context->matrixIndexPointer(size, type, stride, pointer);
}
}
}
void GL_APIENTRY WeightPointerOES(GLint size, GLenum type, GLsizei stride, const void *pointer)
{
EVENT(
"(GLint size = %d, GLenum type = 0x%X, GLsizei stride = %d, const void *pointer = 0x%0.8p)",
size, type, stride, pointer);
Context *context = GetValidGlobalContext();
if (context)
{
context->gatherParams<EntryPoint::WeightPointerOES>(size, type, stride, pointer);
if (context->skipValidation() ||
ValidateWeightPointerOES(context, size, type, stride, pointer))
{
context->weightPointer(size, type, stride, pointer);
}
}
}
// GL_OES_point_size_array
void GL_APIENTRY PointSizePointerOES(GLenum type, GLsizei stride, const void *pointer)
{
EVENT("(GLenum type = 0x%X, GLsizei stride = %d, const void *pointer = 0x%0.8p)", type, stride,
pointer);
Context *context = GetValidGlobalContext();
if (context)
{
context->gatherParams<EntryPoint::PointSizePointerOES>(type, stride, pointer);
if (context->skipValidation() ||
ValidatePointSizePointerOES(context, type, stride, pointer))
{
context->pointSizePointer(type, stride, pointer);
}
}
}
// GL_OES_query_matrix
GLbitfield GL_APIENTRY QueryMatrixxOES(GLfixed *mantissa, GLint *exponent)
{
EVENT("(GLfixed *mantissa = 0x%0.8p, GLint *exponent = 0x%0.8p)", mantissa, exponent);
Context *context = GetValidGlobalContext();
if (context)
{
context->gatherParams<EntryPoint::QueryMatrixxOES>(mantissa, exponent);
if (context->skipValidation() || ValidateQueryMatrixxOES(context, mantissa, exponent))
{
return context->queryMatrixx(mantissa, exponent);
}
}
return GetDefaultReturnValue<EntryPoint::QueryMatrixxOES, GLbitfield>();
}
// GL_OES_vertex_array_object // GL_OES_vertex_array_object
void GL_APIENTRY BindVertexArrayOES(GLuint array) void GL_APIENTRY BindVertexArrayOES(GLuint array)
{ {
......
...@@ -5,13 +5,16 @@ ...@@ -5,13 +5,16 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// //
// entry_points_gles_2_0_ext_autogen.h: // entry_points_gles_ext_autogen.h:
// Defines the GLES extension entry points. // Defines the GLES extension entry points.
#ifndef LIBGLESV2_ENTRY_POINTS_GLES_2_0_EXT_AUTOGEN_H_ #ifndef LIBGLESV2_ENTRY_POINTS_GLES_EXT_AUTOGEN_H_
#define LIBGLESV2_ENTRY_POINTS_GLES_2_0_EXT_AUTOGEN_H_ #define LIBGLESV2_ENTRY_POINTS_GLES_EXT_AUTOGEN_H_
#include <GLES/gl.h>
#include <GLES/glext.h>
#include <GLES2/gl2.h> #include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#include <export.h> #include <export.h>
namespace gl namespace gl
...@@ -184,6 +187,19 @@ ANGLE_EXPORT void GL_APIENTRY EGLImageTargetRenderbufferStorageOES(GLenum target ...@@ -184,6 +187,19 @@ ANGLE_EXPORT void GL_APIENTRY EGLImageTargetRenderbufferStorageOES(GLenum target
GLeglImageOES image); GLeglImageOES image);
ANGLE_EXPORT void GL_APIENTRY EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image); ANGLE_EXPORT void GL_APIENTRY EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image);
// GL_OES_draw_texture
ANGLE_EXPORT void GL_APIENTRY
DrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height);
ANGLE_EXPORT void GL_APIENTRY DrawTexfvOES(const GLfloat *coords);
ANGLE_EXPORT void GL_APIENTRY DrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height);
ANGLE_EXPORT void GL_APIENTRY DrawTexivOES(const GLint *coords);
ANGLE_EXPORT void GL_APIENTRY
DrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height);
ANGLE_EXPORT void GL_APIENTRY DrawTexsvOES(const GLshort *coords);
ANGLE_EXPORT void GL_APIENTRY
DrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);
ANGLE_EXPORT void GL_APIENTRY DrawTexxvOES(const GLfixed *coords);
// GL_OES_get_program_binary // GL_OES_get_program_binary
ANGLE_EXPORT void GL_APIENTRY GetProgramBinaryOES(GLuint program, ANGLE_EXPORT void GL_APIENTRY GetProgramBinaryOES(GLuint program,
GLsizei bufSize, GLsizei bufSize,
...@@ -200,6 +216,24 @@ ANGLE_EXPORT void GL_APIENTRY GetBufferPointervOES(GLenum target, GLenum pname, ...@@ -200,6 +216,24 @@ ANGLE_EXPORT void GL_APIENTRY GetBufferPointervOES(GLenum target, GLenum pname,
ANGLE_EXPORT void *GL_APIENTRY MapBufferOES(GLenum target, GLenum access); ANGLE_EXPORT void *GL_APIENTRY MapBufferOES(GLenum target, GLenum access);
ANGLE_EXPORT GLboolean GL_APIENTRY UnmapBufferOES(GLenum target); ANGLE_EXPORT GLboolean GL_APIENTRY UnmapBufferOES(GLenum target);
// GL_OES_matrix_palette
ANGLE_EXPORT void GL_APIENTRY CurrentPaletteMatrixOES(GLuint matrixpaletteindex);
ANGLE_EXPORT void GL_APIENTRY LoadPaletteFromModelViewMatrixOES();
ANGLE_EXPORT void GL_APIENTRY MatrixIndexPointerOES(GLint size,
GLenum type,
GLsizei stride,
const void *pointer);
ANGLE_EXPORT void GL_APIENTRY WeightPointerOES(GLint size,
GLenum type,
GLsizei stride,
const void *pointer);
// GL_OES_point_size_array
ANGLE_EXPORT void GL_APIENTRY PointSizePointerOES(GLenum type, GLsizei stride, const void *pointer);
// GL_OES_query_matrix
ANGLE_EXPORT GLbitfield GL_APIENTRY QueryMatrixxOES(GLfixed *mantissa, GLint *exponent);
// GL_OES_vertex_array_object // GL_OES_vertex_array_object
ANGLE_EXPORT void GL_APIENTRY BindVertexArrayOES(GLuint array); ANGLE_EXPORT void GL_APIENTRY BindVertexArrayOES(GLuint array);
ANGLE_EXPORT void GL_APIENTRY DeleteVertexArraysOES(GLsizei n, const GLuint *arrays); ANGLE_EXPORT void GL_APIENTRY DeleteVertexArraysOES(GLsizei n, const GLuint *arrays);
...@@ -207,4 +241,4 @@ ANGLE_EXPORT void GL_APIENTRY GenVertexArraysOES(GLsizei n, GLuint *arrays); ...@@ -207,4 +241,4 @@ ANGLE_EXPORT void GL_APIENTRY GenVertexArraysOES(GLsizei n, GLuint *arrays);
ANGLE_EXPORT GLboolean GL_APIENTRY IsVertexArrayOES(GLuint array); ANGLE_EXPORT GLboolean GL_APIENTRY IsVertexArrayOES(GLuint array);
} // namespace gl } // namespace gl
#endif // LIBGLESV2_ENTRY_POINTS_GLES_2_0_EXT_AUTOGEN_H_ #endif // LIBGLESV2_ENTRY_POINTS_GLES_EXT_AUTOGEN_H_
...@@ -29,11 +29,12 @@ template_cpp = """// GENERATED FILE - DO NOT EDIT. ...@@ -29,11 +29,12 @@ template_cpp = """// GENERATED FILE - DO NOT EDIT.
#include "libGLESv2/entry_points_egl.h" #include "libGLESv2/entry_points_egl.h"
#include "libGLESv2/entry_points_egl_ext.h" #include "libGLESv2/entry_points_egl_ext.h"
#include "libGLESv2/entry_points_gles_1_0_autogen.h"
#include "libGLESv2/entry_points_gles_2_0_autogen.h" #include "libGLESv2/entry_points_gles_2_0_autogen.h"
#include "libGLESv2/entry_points_gles_2_0_ext.h" #include "libGLESv2/entry_points_gles_2_0_ext.h"
#include "libGLESv2/entry_points_gles_2_0_ext_autogen.h"
#include "libGLESv2/entry_points_gles_3_0_autogen.h" #include "libGLESv2/entry_points_gles_3_0_autogen.h"
#include "libGLESv2/entry_points_gles_3_1_autogen.h" #include "libGLESv2/entry_points_gles_3_1_autogen.h"
#include "libGLESv2/entry_points_gles_ext_autogen.h"
#include "platform/Platform.h" #include "platform/Platform.h"
#define P(FUNC) reinterpret_cast<__eglMustCastToProperFunctionPointerType>(FUNC) #define P(FUNC) reinterpret_cast<__eglMustCastToProperFunctionPointerType>(FUNC)
......
...@@ -6,11 +6,14 @@ ...@@ -6,11 +6,14 @@
// libGLESv2.cpp: Implements the exported OpenGL ES 2.0 functions. // libGLESv2.cpp: Implements the exported OpenGL ES 2.0 functions.
#include "angle_gl.h"
#include "libGLESv2/entry_points_gles_1_0_autogen.h"
#include "libGLESv2/entry_points_gles_2_0_autogen.h" #include "libGLESv2/entry_points_gles_2_0_autogen.h"
#include "libGLESv2/entry_points_gles_2_0_ext.h" #include "libGLESv2/entry_points_gles_2_0_ext.h"
#include "libGLESv2/entry_points_gles_2_0_ext_autogen.h"
#include "libGLESv2/entry_points_gles_3_0_autogen.h" #include "libGLESv2/entry_points_gles_3_0_autogen.h"
#include "libGLESv2/entry_points_gles_3_1_autogen.h" #include "libGLESv2/entry_points_gles_3_1_autogen.h"
#include "libGLESv2/entry_points_gles_ext_autogen.h"
#include "common/event_tracer.h" #include "common/event_tracer.h"
......
{ {
"GLES1 core": [
"glAlphaFunc",
"glClearColor",
"glClearDepthf",
"glClipPlanef",
"glColor4f",
"glDepthRangef",
"glFogf",
"glFogfv",
"glFrustumf",
"glGetClipPlanef",
"glGetFloatv",
"glGetLightfv",
"glGetMaterialfv",
"glGetTexEnvfv",
"glGetTexParameterfv",
"glLightModelf",
"glLightModelfv",
"glLightf",
"glLightfv",
"glLineWidth",
"glLoadMatrixf",
"glMaterialf",
"glMaterialfv",
"glMultMatrixf",
"glMultiTexCoord4f",
"glNormal3f",
"glOrthof",
"glPointParameterf",
"glPointParameterfv",
"glPointSize",
"glPolygonOffset",
"glRotatef",
"glScalef",
"glTexEnvf",
"glTexEnvfv",
"glTexParameterf",
"glTexParameterfv",
"glTranslatef",
"glActiveTexture",
"glAlphaFuncx",
"glBindBuffer",
"glBindTexture",
"glBlendFunc",
"glBufferData",
"glBufferSubData",
"glClear",
"glClearColorx",
"glClearDepthx",
"glClearStencil",
"glClientActiveTexture",
"glClipPlanex",
"glColor4ub",
"glColor4x",
"glColorMask",
"glColorPointer",
"glCompressedTexImage2D",
"glCompressedTexSubImage2D",
"glCopyTexImage2D",
"glCopyTexSubImage2D",
"glCullFace",
"glDeleteBuffers",
"glDeleteTextures",
"glDepthFunc",
"glDepthMask",
"glDepthRangex",
"glDisable",
"glDisableClientState",
"glDrawArrays",
"glDrawElements",
"glEnable",
"glEnableClientState",
"glFinish",
"glFlush",
"glFogx",
"glFogxv",
"glFrontFace",
"glFrustumx",
"glGetBooleanv",
"glGetBufferParameteriv",
"glGetClipPlanex",
"glGenBuffers",
"glGenTextures",
"glGetError",
"glGetFixedv",
"glGetIntegerv",
"glGetLightxv",
"glGetMaterialxv",
"glGetPointerv",
"glGetString",
"glGetTexEnviv",
"glGetTexEnvxv",
"glGetTexParameteriv",
"glGetTexParameterxv",
"glHint",
"glIsBuffer",
"glIsEnabled",
"glIsTexture",
"glLightModelx",
"glLightModelxv",
"glLightx",
"glLightxv",
"glLineWidthx",
"glLoadIdentity",
"glLoadMatrixx",
"glLogicOp",
"glMaterialx",
"glMaterialxv",
"glMatrixMode",
"glMultMatrixx",
"glMultiTexCoord4x",
"glNormal3x",
"glNormalPointer",
"glOrthox",
"glPixelStorei",
"glPointParameterx",
"glPointParameterxv",
"glPointSizex",
"glPolygonOffsetx",
"glPopMatrix",
"glPushMatrix",
"glReadPixels",
"glRotatex",
"glSampleCoverage",
"glSampleCoveragex",
"glScalex",
"glScissor",
"glShadeModel",
"glStencilFunc",
"glStencilMask",
"glStencilOp",
"glTexCoordPointer",
"glTexEnvi",
"glTexEnvx",
"glTexEnviv",
"glTexEnvxv",
"glTexImage2D",
"glTexParameteri",
"glTexParameterx",
"glTexParameteriv",
"glTexParameterxv",
"glTexSubImage2D",
"glTranslatex",
"glVertexPointer",
"glViewport"
],
"GL_OES_draw_texture": [
"glDrawTexsOES",
"glDrawTexiOES",
"glDrawTexxOES",
"glDrawTexsvOES",
"glDrawTexivOES",
"glDrawTexxvOES",
"glDrawTexfOES",
"glDrawTexfvOES"
],
"GL_OES_matrix_palette": [
"glCurrentPaletteMatrixOES",
"glLoadPaletteFromModelViewMatrixOES",
"glMatrixIndexPointerOES",
"glWeightPointerOES"
],
"GL_OES_point_size_array": [
"glPointSizePointerOES"
],
"GL_OES_query_matrix": [
"glQueryMatrixxOES"
],
"GLES2 core": [ "GLES2 core": [
"glActiveTexture", "glActiveTexture",
"glAttachShader", "glAttachShader",
......
...@@ -148,3 +148,8 @@ ...@@ -148,3 +148,8 @@
1340 WIN : dEQP-EGL.functional.preserve_swap.preserve.read_before_swap.* = SKIP 1340 WIN : dEQP-EGL.functional.preserve_swap.preserve.read_before_swap.* = SKIP
1340 WIN : dEQP-EGL.functional.resize.back_buffer.* = SKIP 1340 WIN : dEQP-EGL.functional.resize.back_buffer.* = SKIP
1340 WIN : dEQP-EGL.functional.resize.pixel_density.* = SKIP 1340 WIN : dEQP-EGL.functional.resize.pixel_density.* = SKIP
// ES 1 tests
2306 WIN MAC LINUX : dEQP-EGL.functional.color_clears.single_context.gles1* = FAIL
2306 WIN MAC LINUX : dEQP-EGL.functional.color_clears.multi_context.gles1* = FAIL
2306 WIN MAC LINUX : dEQP-EGL.functional.color_clears.multi_thread.gles1* = FAIL
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