Commit 7558e836 by Clemen Deng Committed by Commit Bot

Windows Desktop GL Implementation

Bug: angleproject:3620 Change-Id: I4ef4ab3ee145e5ce9b1ebf0c2d61d0777db72c43 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1678405Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent d822e560
......@@ -765,6 +765,30 @@ angle_shared_library("libGLESv2") {
]
}
if (is_win) {
angle_shared_library("openGL32") {
sources = opengl32_sources
output_name = "openGL32${angle_libs_suffix}"
configs += [
":angle_gl_visibility_config",
":debug_annotations_config",
":gl_prototypes",
]
defines = [ "OPENGL32_IMPLEMENTATION" ]
deps = [
":includes",
":libANGLE",
]
public_deps = [
":angle_version",
]
}
}
angle_static_library("libGLESv2_static") {
sources = libglesv2_sources
configs += [ ":debug_annotations_config" ]
......
......@@ -271,9 +271,15 @@
"glGetTexParameterIuivRobustANGLE": {
"target": "TextureType"
},
"glGetTexParameterIiv": {
"target": "TextureType"
},
"glGetTexParameterIivOES": {
"target": "TextureType"
},
"glGetTexParameterIuiv": {
"target": "TextureType"
},
"glGetTexParameterIuivOES": {
"target": "TextureType"
},
......@@ -335,12 +341,19 @@
"glMatrixMode": {
"mode": "MatrixType"
},
"glMultiDrawArrays": {
"mode": "PrimitiveMode"
},
"glMultiDrawArraysANGLE": {
"mode": "PrimitiveMode"
},
"glMultiDrawArraysInstancedANGLE": {
"mode": "PrimitiveMode"
},
"glMultiDrawElements": {
"mode": "PrimitiveMode",
"type": "DrawElementsType"
},
"glMultiDrawElementsANGLE": {
"mode": "PrimitiveMode",
"type": "DrawElementsType"
......@@ -445,9 +458,15 @@
"glTexParameterIuivRobustANGLE": {
"target": "TextureType"
},
"glTexParameterIiv": {
"target": "TextureType"
},
"glTexParameterIivOES": {
"target": "TextureType"
},
"glTexParameterIuiv": {
"target": "TextureType"
},
"glTexParameterIuivOES": {
"target": "TextureType"
},
......
......@@ -7,19 +7,20 @@
# Code generation for entry point loading tables.
# NOTE: don't run this script directly. Run scripts/run_code_generation.py.
# TODO(jmadill): Should be part of entry point generation.
import sys
from datetime import date
sys.path.append('../../scripts')
import registry_xml
out_file_name = "proc_table_autogen.cpp"
out_file_name_gles = "../src/libGLESv2/proc_table_egl_autogen.cpp"
out_file_name_wgl = "../src/openGL32/proc_table_wgl_autogen.cpp"
# The EGL_ANGLE_explicit_context extension is generated differently from other extensions.
# Toggle generation here.
# Only for GLES
support_egl_ANGLE_explicit_context = True
strip_suffixes = ["ANGLE", "EXT", "KHR", "OES", "CHROMIUM", "OVR"]
template_cpp = """// GENERATED FILE - DO NOT EDIT.
// Generated by {script_name} using data from {data_source_name}.
//
......@@ -31,7 +32,20 @@ template_cpp = """// GENERATED FILE - DO NOT EDIT.
// Mapping from a string entry point name to function address.
//
#include "libGLESv2/proc_table.h"
{includes}
#define P(FUNC) reinterpret_cast<{cast}>(FUNC)
namespace {namespace}
{{
ProcEntry g_procTable[] = {{
{proc_data}
}};
size_t g_numProcs = {num_procs};
}} // namespace {namespace}
"""
includes_gles = """#include "libGLESv2/proc_table_egl.h"
#include "libGLESv2/entry_points_egl.h"
#include "libGLESv2/entry_points_egl_ext.h"
......@@ -41,20 +55,25 @@ template_cpp = """// GENERATED FILE - DO NOT EDIT.
#include "libGLESv2/entry_points_gles_3_1_autogen.h"
#include "libGLESv2/entry_points_gles_ext_autogen.h"
#include "platform/Platform.h"
"""
#define P(FUNC) reinterpret_cast<__eglMustCastToProperFunctionPointerType>(FUNC)
namespace egl
{{
ProcEntry g_procTable[] = {{
{proc_data}
}};
size_t g_numProcs = {num_procs};
}} // namespace egl
includes_wgl = """#include "openGL32/proc_table_wgl.h"
#include "openGL32/entry_points_wgl.h"
#include "openGL32/entry_points_gl_1_0_autogen.h"
#include "openGL32/entry_points_gl_1_1_autogen.h"
#include "openGL32/entry_points_gl_1_2_autogen.h"
#include "openGL32/entry_points_gl_1_3_autogen.h"
#include "openGL32/entry_points_gl_1_4_autogen.h"
#include "openGL32/entry_points_gl_1_5_autogen.h"
#include "openGL32/entry_points_gl_2_0_autogen.h"
#include "openGL32/entry_points_gl_2_1_autogen.h"
#include "openGL32/entry_points_gl_3_0_autogen.h"
#include "openGL32/entry_points_gl_3_1_autogen.h"
#include "platform/Platform.h"
"""
sys.path.append('../libANGLE/renderer')
sys.path.append('../src/libANGLE/renderer')
import angle_format
......@@ -62,8 +81,8 @@ def main():
# auto_script parameters.
if len(sys.argv) > 1:
inputs = ['../../scripts/' + source for source in registry_xml.xml_inputs]
outputs = [out_file_name]
inputs = [source for source in registry_xml.xml_inputs]
outputs = [out_file_name_gles, out_file_name_wgl]
if sys.argv[1] == 'inputs':
print ','.join(inputs)
elif sys.argv[1] == 'outputs':
......@@ -73,7 +92,11 @@ def main():
return 1
return 0
glxml = registry_xml.RegistryXML('../../scripts/gl.xml', '../../scripts/gl_angle_ext.xml')
glesxml = registry_xml.RegistryXML('gl.xml', 'gl_angle_ext.xml')
# Track the GLES commands so we don't add them to wgl proc table
gles_commands = []
gles_commands = []
for annotation in ["2_0", "3_0", "3_1", "1_0"]:
......@@ -81,32 +104,43 @@ def main():
if annotation[0] == '1':
name_prefix = "GL_VERSION_ES_CM_"
feature_name = "{}{}".format(name_prefix, annotation)
glesxml.AddCommands(feature_name, annotation)
glxml.AddCommands(feature_name, annotation)
gles_commands.extend(glesxml.commands[annotation])
glesxml.AddExtensionCommands(registry_xml.supported_extensions, ['gles2', 'gles1'])
glxml.AddExtensionCommands(registry_xml.supported_extensions, ['gles2', 'gles1'])
# Also don't add GLES extension commands to wgl proc table
extension_commands = []
for extension_name, ext_cmd_names in sorted(glesxml.ext_data.iteritems()):
extension_commands.extend(glesxml.ext_data[extension_name])
for name in extension_commands:
name_no_suffix = name
for suffix in strip_suffixes:
if name_no_suffix.endswith(suffix):
name_no_suffix = name_no_suffix[0:-len(suffix)]
gles_commands.append(name_no_suffix)
data = glxml.all_cmd_names.get_all_commands()
gles_data = glesxml.all_cmd_names.get_all_commands()
eglxml = registry_xml.RegistryXML('../../scripts/egl.xml', '../../scripts/egl_angle_ext.xml')
eglxml = registry_xml.RegistryXML('egl.xml', 'egl_angle_ext.xml')
for annotation in ["1_0", "1_1", "1_2", "1_3", "1_4", "1_5"]:
name_prefix = "EGL_VERSION_"
feature_name = "{}{}".format(name_prefix, annotation)
eglxml.AddCommands(feature_name, annotation)
eglxml.AddExtensionCommands(registry_xml.supported_egl_extensions, ['gles2', 'gles1'])
data.extend(eglxml.all_cmd_names.get_all_commands())
gles_data.extend(eglxml.all_cmd_names.get_all_commands())
data.append("ANGLEGetDisplayPlatform")
data.append("ANGLEResetDisplayPlatform")
gles_data.append("ANGLEGetDisplayPlatform")
gles_data.append("ANGLEResetDisplayPlatform")
all_functions = {}
for function in data:
for function in gles_data:
if function.startswith("gl"):
all_functions[function] = "gl::" + function[2:]
# Special handling for EGL_ANGLE_explicit_context extension
......@@ -120,11 +154,60 @@ def main():
proc_data = [(' {"%s", P(%s)}' % (func, angle_func))
for func, angle_func in sorted(all_functions.iteritems())]
with open(out_file_name, 'w') as out_file:
with open(out_file_name_gles, 'w') as out_file:
output_cpp = template_cpp.format(
script_name=sys.argv[0],
data_source_name="gl.xml, gl_angle_ext.xml, egl.xml, egl_angle_ext.xml",
copyright_year=date.today().year,
includes=includes_gles,
cast="__eglMustCastToProperFunctionPointerType",
namespace="egl",
proc_data=",\n".join(proc_data),
num_procs=len(proc_data))
out_file.write(output_cpp)
out_file.close()
# WGL proc table
glxml = registry_xml.RegistryXML('gl.xml')
for annotation in ["1_0", "1_1", "1_2", "1_3", "1_4", "1_5", "2_0", "2_1", "3_0", "3_1"]:
name_prefix = "GL_VERSION_"
feature_name = "{}{}".format(name_prefix, annotation)
glxml.AddCommands(feature_name, annotation)
wgl_data = [cmd for cmd in glxml.all_cmd_names.get_all_commands() if cmd not in gles_commands]
wglxml = registry_xml.RegistryXML('wgl.xml')
for annotation in ["1_0"]:
name_prefix = "WGL_VERSION_"
feature_name = "{}{}".format(name_prefix, annotation)
wglxml.AddCommands(feature_name, annotation)
wgl_commands = wglxml.all_cmd_names.get_all_commands()
wgl_data.extend([cmd if cmd[:3] == 'wgl' else 'wgl' + cmd for cmd in wgl_commands])
all_functions = {}
for function in wgl_data:
if function.startswith("gl"):
all_functions[function] = "gl::" + function[2:]
else:
all_functions[function] = function
proc_data = [(' {"%s", P(%s)}' % (func, angle_func))
for func, angle_func in sorted(all_functions.iteritems())]
with open(out_file_name_wgl, 'w') as out_file:
output_cpp = template_cpp.format(
script_name=sys.argv[0],
data_source_name="gl.xml, wgl.xml",
copyright_year=date.today().year,
includes=includes_wgl,
cast="PROC",
namespace="wgl",
proc_data=",\n".join(proc_data),
num_procs=len(proc_data))
out_file.write(output_cpp)
......
......@@ -18,6 +18,7 @@ xml_inputs = [
'gl_angle_ext.xml',
'egl.xml',
'egl_angle_ext.xml',
'wgl.xml',
'registry_xml.py',
]
......
......@@ -85,7 +85,7 @@ generators = {
'packed enum':
'src/common/gen_packed_gl_enums.py',
'proc table':
'src/libGLESv2/gen_proc_table.py',
'scripts/gen_proc_table.py',
'Vulkan format':
'src/libANGLE/renderer/vulkan/gen_vk_format_table.py',
'Vulkan mandatory format support table':
......
......@@ -92,15 +92,37 @@
"GL/EGL entry points:scripts/egl_angle_ext.xml":
"fc2e249239fb1365f6d145cdf1a3cfcf",
"GL/EGL entry points:scripts/entry_point_packed_gl_enums.json":
"6e27999e187876d388b365676b2e3cc6",
"08665ca9ebf22fa759c1ce0e965a200d",
"GL/EGL entry points:scripts/generate_entry_points.py":
"1e493331ee0ab7d5e210a125cb248f0b",
"d4b4c2c5a2a0ad11eda1f7516076e4aa",
"GL/EGL entry points:scripts/gl.xml":
"b470cb06b06cbbe7adb2c8129ec85708",
"GL/EGL entry points:scripts/gl_angle_ext.xml":
"bed6b56a38621721e689ebc19601a556",
"GL/EGL entry points:scripts/registry_xml.py":
"044c8cd6601271bef56d257ff401597c",
"683a498150204f16c44264714e2bed07",
"GL/EGL entry points:scripts/wgl.xml":
"aa96419c582af2f6673430e2847693f4",
"GL/EGL entry points:src/libANGLE/Context_gl_1_0_autogen.h":
"57231b5bc958327034059eb7e5cd6636",
"GL/EGL entry points:src/libANGLE/Context_gl_1_1_autogen.h":
"4a6f7633d3b234a98c33fef4a6a1c89e",
"GL/EGL entry points:src/libANGLE/Context_gl_1_2_autogen.h":
"e648c6c4ff40b7d2d709ef7635262226",
"GL/EGL entry points:src/libANGLE/Context_gl_1_3_autogen.h":
"a7bb49f5075a44aaee7a9531372b8731",
"GL/EGL entry points:src/libANGLE/Context_gl_1_4_autogen.h":
"07a56e633a2ef0467e97ae327c832324",
"GL/EGL entry points:src/libANGLE/Context_gl_1_5_autogen.h":
"96bf69258d08cef55abcfe08527ac1f3",
"GL/EGL entry points:src/libANGLE/Context_gl_2_0_autogen.h":
"fc3dc3bca5024a4c97878b064365efe8",
"GL/EGL entry points:src/libANGLE/Context_gl_2_1_autogen.h":
"0538549cfb385ab7866a2978fe0a3f65",
"GL/EGL entry points:src/libANGLE/Context_gl_3_0_autogen.h":
"46a55343d5ff3d79ac63b8887dc90ce3",
"GL/EGL entry points:src/libANGLE/Context_gl_3_1_autogen.h":
"391170a24ea544e6de99051e4d8d4aa1",
"GL/EGL entry points:src/libANGLE/Context_gles_1_0_autogen.h":
"f30ed90e4ec23f886bda9344d82dd529",
"GL/EGL entry points:src/libANGLE/Context_gles_2_0_autogen.h":
......@@ -121,6 +143,26 @@
"4617942e5bf67fa5e35675daf66afc5c",
"GL/EGL entry points:src/libANGLE/validationESEXT_autogen.h":
"e467045ae1b9f8671ced8aef794f06e0",
"GL/EGL entry points:src/libANGLE/validationGL11_autogen.h":
"c5ac1ca523a39df2621d11e92c9c821a",
"GL/EGL entry points:src/libANGLE/validationGL12_autogen.h":
"d00e743582693425eb8e5221bdfadc7c",
"GL/EGL entry points:src/libANGLE/validationGL13_autogen.h":
"3cc3a79b3f39f7e7267ac4ff5b51a198",
"GL/EGL entry points:src/libANGLE/validationGL14_autogen.h":
"d58f8aa392b34a15cd5ddfea3142bca4",
"GL/EGL entry points:src/libANGLE/validationGL15_autogen.h":
"803c78e151ba6e71be81ed38decacf1d",
"GL/EGL entry points:src/libANGLE/validationGL1_autogen.h":
"9f6aca8bc4d4f8f74d0a74a781eec5b4",
"GL/EGL entry points:src/libANGLE/validationGL21_autogen.h":
"0db791d425850e654aa36b6241891525",
"GL/EGL entry points:src/libANGLE/validationGL2_autogen.h":
"bbbdee2a2aaed049bfe243197a633b1b",
"GL/EGL entry points:src/libANGLE/validationGL31_autogen.h":
"8eb20c13d38138483d42f898400ef176",
"GL/EGL entry points:src/libANGLE/validationGL3_autogen.h":
"1bd2846baa868d579bc4f619dc59a93c",
"GL/EGL entry points:src/libGLESv2/entry_points_enum_autogen.h":
"f8340d0bfde6bc581a508a47a54a6678",
"GL/EGL entry points:src/libGLESv2/entry_points_gles_1_0_autogen.cpp":
......@@ -147,6 +189,52 @@
"229577015686414a6d094533c2210cea",
"GL/EGL entry points:src/libGLESv2/libGLESv2_autogen.def":
"5973958936850835cc48a57bba9bd33a",
"GL/EGL entry points:src/openGL32/entry_points_enum_autogen.h":
"15fd8df38c1d074ae576d30cfd6ebad9",
"GL/EGL entry points:src/openGL32/entry_points_gl_1_0_autogen.cpp":
"784766d4bc99e9a05af00b75fc0d4a73",
"GL/EGL entry points:src/openGL32/entry_points_gl_1_0_autogen.h":
"8e91307664a1049e2db42d651fd42be7",
"GL/EGL entry points:src/openGL32/entry_points_gl_1_1_autogen.cpp":
"39b84189e7dea4ba6a2c9fc11722e143",
"GL/EGL entry points:src/openGL32/entry_points_gl_1_1_autogen.h":
"0f011b953435f9e83e61b6826209753b",
"GL/EGL entry points:src/openGL32/entry_points_gl_1_2_autogen.cpp":
"5c199abe61ddbd6427911107c2106452",
"GL/EGL entry points:src/openGL32/entry_points_gl_1_2_autogen.h":
"1a6a2956bc3dbb4703378b3142778ff2",
"GL/EGL entry points:src/openGL32/entry_points_gl_1_3_autogen.cpp":
"db6ffa9498a01913b626b49d0ca312c5",
"GL/EGL entry points:src/openGL32/entry_points_gl_1_3_autogen.h":
"1e0fd2fdb8e46c635432c4f558f1bdf3",
"GL/EGL entry points:src/openGL32/entry_points_gl_1_4_autogen.cpp":
"4a1803fbcc9392201a88be8db3f5da1d",
"GL/EGL entry points:src/openGL32/entry_points_gl_1_4_autogen.h":
"54fef88d63c0c0e99489120d2d16109a",
"GL/EGL entry points:src/openGL32/entry_points_gl_1_5_autogen.cpp":
"98a022b0258510b9d11408082145f1be",
"GL/EGL entry points:src/openGL32/entry_points_gl_1_5_autogen.h":
"13f8c37ceaea5fd4bda59ddc8a0fe7b2",
"GL/EGL entry points:src/openGL32/entry_points_gl_2_0_autogen.cpp":
"19e975c1a97da842eb32aebba77b33d5",
"GL/EGL entry points:src/openGL32/entry_points_gl_2_0_autogen.h":
"127e74bf62c027d9e45b5639bef75901",
"GL/EGL entry points:src/openGL32/entry_points_gl_2_1_autogen.cpp":
"e7417d5857f32edb3e35cb877cd6035d",
"GL/EGL entry points:src/openGL32/entry_points_gl_2_1_autogen.h":
"11b3e2a032ad44b6cdd977e3d2c81232",
"GL/EGL entry points:src/openGL32/entry_points_gl_3_0_autogen.cpp":
"9107d4128d3d21dde0d18bd7e5a00857",
"GL/EGL entry points:src/openGL32/entry_points_gl_3_0_autogen.h":
"e57885db7752cfa8304975e487f652cf",
"GL/EGL entry points:src/openGL32/entry_points_gl_3_1_autogen.cpp":
"ebcbb6d7833672e3ec2244190483ae1d",
"GL/EGL entry points:src/openGL32/entry_points_gl_3_1_autogen.h":
"7e52688552b82d6aaff263a63de9018d",
"GL/EGL entry points:src/openGL32/openGL32_autogen.cpp":
"e61b400467d91519d168a9544f863c6d",
"GL/EGL entry points:src/openGL32/openGL32_autogen.def":
"927bd64e7971581eb2d0042f69e8975c",
"GL/EGL/WGL loader:scripts/egl.xml":
"842e24514c4cfe09fba703c17a0fd292",
"GL/EGL/WGL loader:scripts/egl_angle_ext.xml":
......@@ -154,7 +242,7 @@
"GL/EGL/WGL loader:scripts/generate_loader.py":
"5a7cd014230fe04664d9613e65399d42",
"GL/EGL/WGL loader:scripts/registry_xml.py":
"044c8cd6601271bef56d257ff401597c",
"683a498150204f16c44264714e2bed07",
"GL/EGL/WGL loader:scripts/wgl.xml":
"aa96419c582af2f6673430e2847693f4",
"GL/EGL/WGL loader:src/libEGL/egl_loader_autogen.cpp":
......@@ -455,16 +543,20 @@
"842e24514c4cfe09fba703c17a0fd292",
"proc table:scripts/egl_angle_ext.xml":
"fc2e249239fb1365f6d145cdf1a3cfcf",
"proc table:scripts/gen_proc_table.py":
"445b0784415ea3808ddd276af7a5d775",
"proc table:scripts/gl.xml":
"b470cb06b06cbbe7adb2c8129ec85708",
"proc table:scripts/gl_angle_ext.xml":
"bed6b56a38621721e689ebc19601a556",
"proc table:scripts/registry_xml.py":
"044c8cd6601271bef56d257ff401597c",
"proc table:src/libGLESv2/gen_proc_table.py":
"c3e4abfa19077cea098cb19bbfed4471",
"proc table:src/libGLESv2/proc_table_autogen.cpp":
"eaedb2059fc6e499760a2b90da0510cf",
"683a498150204f16c44264714e2bed07",
"proc table:scripts/wgl.xml":
"aa96419c582af2f6673430e2847693f4",
"proc table:src/libGLESv2/proc_table_egl_autogen.cpp":
"6ab624dce9ebcdeaea091b27d98ed1ce",
"proc table:src/openGL32/proc_table_wgl_autogen.cpp":
"5e872d3b18d35da12b103bc56dbc121c",
"uniform type:src/common/gen_uniform_type_table.py":
"a741cc301b1617ab0e4d29b35f1d3b96",
"uniform type:src/common/uniform_type_info_autogen.cpp":
......
......@@ -19,6 +19,16 @@
#include "common/angleutils.h"
#include "libANGLE/Caps.h"
#include "libANGLE/Constants.h"
#include "libANGLE/Context_gl_1_0_autogen.h"
#include "libANGLE/Context_gl_1_1_autogen.h"
#include "libANGLE/Context_gl_1_2_autogen.h"
#include "libANGLE/Context_gl_1_3_autogen.h"
#include "libANGLE/Context_gl_1_4_autogen.h"
#include "libANGLE/Context_gl_1_5_autogen.h"
#include "libANGLE/Context_gl_2_0_autogen.h"
#include "libANGLE/Context_gl_2_1_autogen.h"
#include "libANGLE/Context_gl_3_0_autogen.h"
#include "libANGLE/Context_gl_3_1_autogen.h"
#include "libANGLE/Context_gles_1_0_autogen.h"
#include "libANGLE/Context_gles_2_0_autogen.h"
#include "libANGLE/Context_gles_3_0_autogen.h"
......@@ -376,6 +386,18 @@ class Context final : public egl::LabeledObject, angle::NonCopyable, public angl
bool hasActiveTransformFeedback(GLuint program) const;
// GL emulation: Interface to entry points
ANGLE_GL_1_0_CONTEXT_API
ANGLE_GL_1_1_CONTEXT_API
ANGLE_GL_1_2_CONTEXT_API
ANGLE_GL_1_3_CONTEXT_API
ANGLE_GL_1_4_CONTEXT_API
ANGLE_GL_1_5_CONTEXT_API
ANGLE_GL_2_0_CONTEXT_API
ANGLE_GL_2_1_CONTEXT_API
ANGLE_GL_3_0_CONTEXT_API
ANGLE_GL_3_1_CONTEXT_API
// GLES emulation: Interface to entry points
ANGLE_GLES_1_0_CONTEXT_API
ANGLE_GLES_2_0_CONTEXT_API
......
// 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_gl_1_1_autogen.h: Creates a macro for interfaces in Context.
#ifndef ANGLE_CONTEXT_GL_1_1_AUTOGEN_H_
#define ANGLE_CONTEXT_GL_1_1_AUTOGEN_H_
#define ANGLE_GL_1_1_CONTEXT_API \
GLboolean areTexturesResident(GLsizei n, const GLuint *textures, GLboolean *residences); \
void arrayElement(GLint i); \
void copyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, \
GLsizei width, GLint border); \
void copyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, \
GLsizei width); \
void edgeFlagPointer(GLsizei stride, const void *pointer); \
void indexPointer(GLenum type, GLsizei stride, const void *pointer); \
void indexub(GLubyte c); \
void indexubv(const GLubyte *c); \
void interleavedArrays(GLenum format, GLsizei stride, const void *pointer); \
void popClientAttrib(); \
void prioritizeTextures(GLsizei n, const GLuint *textures, const GLfloat *priorities); \
void pushClientAttrib(GLbitfield mask); \
void texSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, \
GLenum type, const void *pixels);
#endif // ANGLE_CONTEXT_API_1_1_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_gl_1_2_autogen.h: Creates a macro for interfaces in Context.
#ifndef ANGLE_CONTEXT_GL_1_2_AUTOGEN_H_
#define ANGLE_CONTEXT_GL_1_2_AUTOGEN_H_
#define ANGLE_GL_1_2_CONTEXT_API
#endif // ANGLE_CONTEXT_API_1_2_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_gl_1_3_autogen.h: Creates a macro for interfaces in Context.
#ifndef ANGLE_CONTEXT_GL_1_3_AUTOGEN_H_
#define ANGLE_CONTEXT_GL_1_3_AUTOGEN_H_
#define ANGLE_GL_1_3_CONTEXT_API \
void compressedTexImage1D(GLenum target, GLint level, GLenum internalformat, GLsizei width, \
GLint border, GLsizei imageSize, const void *data); \
void compressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, \
GLenum format, GLsizei imageSize, const void *data); \
void getCompressedTexImage(GLenum target, GLint level, void *img); \
void loadTransposeMatrixd(const GLdouble *m); \
void loadTransposeMatrixf(const GLfloat *m); \
void multTransposeMatrixd(const GLdouble *m); \
void multTransposeMatrixf(const GLfloat *m); \
void multiTexCoord1d(GLenum target, GLdouble s); \
void multiTexCoord1dv(GLenum target, const GLdouble *v); \
void multiTexCoord1f(GLenum target, GLfloat s); \
void multiTexCoord1fv(GLenum target, const GLfloat *v); \
void multiTexCoord1i(GLenum target, GLint s); \
void multiTexCoord1iv(GLenum target, const GLint *v); \
void multiTexCoord1s(GLenum target, GLshort s); \
void multiTexCoord1sv(GLenum target, const GLshort *v); \
void multiTexCoord2d(GLenum target, GLdouble s, GLdouble t); \
void multiTexCoord2dv(GLenum target, const GLdouble *v); \
void multiTexCoord2f(GLenum target, GLfloat s, GLfloat t); \
void multiTexCoord2fv(GLenum target, const GLfloat *v); \
void multiTexCoord2i(GLenum target, GLint s, GLint t); \
void multiTexCoord2iv(GLenum target, const GLint *v); \
void multiTexCoord2s(GLenum target, GLshort s, GLshort t); \
void multiTexCoord2sv(GLenum target, const GLshort *v); \
void multiTexCoord3d(GLenum target, GLdouble s, GLdouble t, GLdouble r); \
void multiTexCoord3dv(GLenum target, const GLdouble *v); \
void multiTexCoord3f(GLenum target, GLfloat s, GLfloat t, GLfloat r); \
void multiTexCoord3fv(GLenum target, const GLfloat *v); \
void multiTexCoord3i(GLenum target, GLint s, GLint t, GLint r); \
void multiTexCoord3iv(GLenum target, const GLint *v); \
void multiTexCoord3s(GLenum target, GLshort s, GLshort t, GLshort r); \
void multiTexCoord3sv(GLenum target, const GLshort *v); \
void multiTexCoord4d(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); \
void multiTexCoord4dv(GLenum target, const GLdouble *v); \
void multiTexCoord4fv(GLenum target, const GLfloat *v); \
void multiTexCoord4i(GLenum target, GLint s, GLint t, GLint r, GLint q); \
void multiTexCoord4iv(GLenum target, const GLint *v); \
void multiTexCoord4s(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); \
void multiTexCoord4sv(GLenum target, const GLshort *v);
#endif // ANGLE_CONTEXT_API_1_3_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_gl_1_4_autogen.h: Creates a macro for interfaces in Context.
#ifndef ANGLE_CONTEXT_GL_1_4_AUTOGEN_H_
#define ANGLE_CONTEXT_GL_1_4_AUTOGEN_H_
#define ANGLE_GL_1_4_CONTEXT_API \
void fogCoordPointer(GLenum type, GLsizei stride, const void *pointer); \
void fogCoordd(GLdouble coord); \
void fogCoorddv(const GLdouble *coord); \
void fogCoordf(GLfloat coord); \
void fogCoordfv(const GLfloat *coord); \
void pointParameteri(GLenum pname, GLint param); \
void pointParameteriv(GLenum pname, const GLint *params); \
void secondaryColor3b(GLbyte red, GLbyte green, GLbyte blue); \
void secondaryColor3bv(const GLbyte *v); \
void secondaryColor3d(GLdouble red, GLdouble green, GLdouble blue); \
void secondaryColor3dv(const GLdouble *v); \
void secondaryColor3f(GLfloat red, GLfloat green, GLfloat blue); \
void secondaryColor3fv(const GLfloat *v); \
void secondaryColor3i(GLint red, GLint green, GLint blue); \
void secondaryColor3iv(const GLint *v); \
void secondaryColor3s(GLshort red, GLshort green, GLshort blue); \
void secondaryColor3sv(const GLshort *v); \
void secondaryColor3ub(GLubyte red, GLubyte green, GLubyte blue); \
void secondaryColor3ubv(const GLubyte *v); \
void secondaryColor3ui(GLuint red, GLuint green, GLuint blue); \
void secondaryColor3uiv(const GLuint *v); \
void secondaryColor3us(GLushort red, GLushort green, GLushort blue); \
void secondaryColor3usv(const GLushort *v); \
void secondaryColorPointer(GLint size, GLenum type, GLsizei stride, const void *pointer); \
void windowPos2d(GLdouble x, GLdouble y); \
void windowPos2dv(const GLdouble *v); \
void windowPos2f(GLfloat x, GLfloat y); \
void windowPos2fv(const GLfloat *v); \
void windowPos2i(GLint x, GLint y); \
void windowPos2iv(const GLint *v); \
void windowPos2s(GLshort x, GLshort y); \
void windowPos2sv(const GLshort *v); \
void windowPos3d(GLdouble x, GLdouble y, GLdouble z); \
void windowPos3dv(const GLdouble *v); \
void windowPos3f(GLfloat x, GLfloat y, GLfloat z); \
void windowPos3fv(const GLfloat *v); \
void windowPos3i(GLint x, GLint y, GLint z); \
void windowPos3iv(const GLint *v); \
void windowPos3s(GLshort x, GLshort y, GLshort z); \
void windowPos3sv(const GLshort *v);
#endif // ANGLE_CONTEXT_API_1_4_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_gl_1_5_autogen.h: Creates a macro for interfaces in Context.
#ifndef ANGLE_CONTEXT_GL_1_5_AUTOGEN_H_
#define ANGLE_CONTEXT_GL_1_5_AUTOGEN_H_
#define ANGLE_GL_1_5_CONTEXT_API \
void getBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, void *data);
#endif // ANGLE_CONTEXT_API_1_5_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_gl_2_0_autogen.h: Creates a macro for interfaces in Context.
#ifndef ANGLE_CONTEXT_GL_2_0_AUTOGEN_H_
#define ANGLE_CONTEXT_GL_2_0_AUTOGEN_H_
#define ANGLE_GL_2_0_CONTEXT_API \
void getVertexAttribdv(GLuint index, GLenum pname, GLdouble *params); \
void vertexAttrib1d(GLuint index, GLdouble x); \
void vertexAttrib1dv(GLuint index, const GLdouble *v); \
void vertexAttrib1s(GLuint index, GLshort x); \
void vertexAttrib1sv(GLuint index, const GLshort *v); \
void vertexAttrib2d(GLuint index, GLdouble x, GLdouble y); \
void vertexAttrib2dv(GLuint index, const GLdouble *v); \
void vertexAttrib2s(GLuint index, GLshort x, GLshort y); \
void vertexAttrib2sv(GLuint index, const GLshort *v); \
void vertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z); \
void vertexAttrib3dv(GLuint index, const GLdouble *v); \
void vertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z); \
void vertexAttrib3sv(GLuint index, const GLshort *v); \
void vertexAttrib4Nbv(GLuint index, const GLbyte *v); \
void vertexAttrib4Niv(GLuint index, const GLint *v); \
void vertexAttrib4Nsv(GLuint index, const GLshort *v); \
void vertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); \
void vertexAttrib4Nubv(GLuint index, const GLubyte *v); \
void vertexAttrib4Nuiv(GLuint index, const GLuint *v); \
void vertexAttrib4Nusv(GLuint index, const GLushort *v); \
void vertexAttrib4bv(GLuint index, const GLbyte *v); \
void vertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); \
void vertexAttrib4dv(GLuint index, const GLdouble *v); \
void vertexAttrib4iv(GLuint index, const GLint *v); \
void vertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); \
void vertexAttrib4sv(GLuint index, const GLshort *v); \
void vertexAttrib4ubv(GLuint index, const GLubyte *v); \
void vertexAttrib4uiv(GLuint index, const GLuint *v); \
void vertexAttrib4usv(GLuint index, const GLushort *v);
#endif // ANGLE_CONTEXT_API_2_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_gl_2_1_autogen.h: Creates a macro for interfaces in Context.
#ifndef ANGLE_CONTEXT_GL_2_1_AUTOGEN_H_
#define ANGLE_CONTEXT_GL_2_1_AUTOGEN_H_
#define ANGLE_GL_2_1_CONTEXT_API
#endif // ANGLE_CONTEXT_API_2_1_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_gl_3_0_autogen.h: Creates a macro for interfaces in Context.
#ifndef ANGLE_CONTEXT_GL_3_0_AUTOGEN_H_
#define ANGLE_CONTEXT_GL_3_0_AUTOGEN_H_
#define ANGLE_GL_3_0_CONTEXT_API \
void beginConditionalRender(GLuint id, GLenum mode); \
void clampColor(GLenum target, GLenum clamp); \
void colorMaski(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); \
void disablei(GLenum target, GLuint index); \
void enablei(GLenum target, GLuint index); \
void endConditionalRender(); \
void framebufferTexture1D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, \
GLint level); \
GLboolean isEnabledi(GLenum target, GLuint index); \
void vertexAttribI1i(GLuint index, GLint x); \
void vertexAttribI1iv(GLuint index, const GLint *v); \
void vertexAttribI1ui(GLuint index, GLuint x); \
void vertexAttribI1uiv(GLuint index, const GLuint *v); \
void vertexAttribI2i(GLuint index, GLint x, GLint y); \
void vertexAttribI2iv(GLuint index, const GLint *v); \
void vertexAttribI2ui(GLuint index, GLuint x, GLuint y); \
void vertexAttribI2uiv(GLuint index, const GLuint *v); \
void vertexAttribI3i(GLuint index, GLint x, GLint y, GLint z); \
void vertexAttribI3iv(GLuint index, const GLint *v); \
void vertexAttribI3ui(GLuint index, GLuint x, GLuint y, GLuint z); \
void vertexAttribI3uiv(GLuint index, const GLuint *v); \
void vertexAttribI4bv(GLuint index, const GLbyte *v); \
void vertexAttribI4sv(GLuint index, const GLshort *v); \
void vertexAttribI4ubv(GLuint index, const GLubyte *v); \
void vertexAttribI4usv(GLuint index, const GLushort *v);
#endif // ANGLE_CONTEXT_API_3_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_gl_3_1_autogen.h: Creates a macro for interfaces in Context.
#ifndef ANGLE_CONTEXT_GL_3_1_AUTOGEN_H_
#define ANGLE_CONTEXT_GL_3_1_AUTOGEN_H_
#define ANGLE_GL_3_1_CONTEXT_API \
void getActiveUniformName(GLuint program, GLuint uniformIndex, GLsizei bufSize, \
GLsizei *length, GLchar *uniformName); \
void primitiveRestartIndex(GLuint index); \
void texBuffer(GLenum target, GLenum internalformat, GLuint buffer);
#endif // ANGLE_CONTEXT_API_3_1_AUTOGEN_H_
//
// 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.
//
// validationGL11.cpp: Validation functions for OpenGL 1.1 entry point parameters
#include "libANGLE/validationGL11_autogen.h"
namespace gl
{
bool ValidateAreTexturesResident(Context *context,
GLsizei n,
const GLuint *textures,
GLboolean *residences)
{
return true;
}
bool ValidateArrayElement(Context *context, GLint i)
{
return true;
}
bool ValidateCopyTexImage1D(Context *context,
GLenum target,
GLint level,
GLenum internalformat,
GLint x,
GLint y,
GLsizei width,
GLint border)
{
return true;
}
bool ValidateCopyTexSubImage1D(Context *context,
GLenum target,
GLint level,
GLint xoffset,
GLint x,
GLint y,
GLsizei width)
{
return true;
}
bool ValidateEdgeFlagPointer(Context *context, GLsizei stride, const void *pointer)
{
return true;
}
bool ValidateIndexPointer(Context *context, GLenum type, GLsizei stride, const void *pointer)
{
return true;
}
bool ValidateIndexub(Context *context, GLubyte c)
{
return true;
}
bool ValidateIndexubv(Context *context, const GLubyte *c)
{
return true;
}
bool ValidateInterleavedArrays(Context *context, GLenum format, GLsizei stride, const void *pointer)
{
return true;
}
bool ValidatePopClientAttrib(Context *context)
{
return true;
}
bool ValidatePrioritizeTextures(Context *context,
GLsizei n,
const GLuint *textures,
const GLfloat *priorities)
{
return true;
}
bool ValidatePushClientAttrib(Context *context, GLbitfield mask)
{
return true;
}
bool ValidateTexSubImage1D(Context *context,
GLenum target,
GLint level,
GLint xoffset,
GLsizei width,
GLenum format,
GLenum type,
const void *pixels)
{
return true;
}
} // namespace gl
// GENERATED FILE - DO NOT EDIT.
// Generated by generate_entry_points.py using data from gl.xml and wgl.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.
//
// validationGL11_autogen.h:
// Validation functions for the OpenGL 1.1 entry points.
#ifndef LIBANGLE_VALIDATION_GL11_AUTOGEN_H_
#define LIBANGLE_VALIDATION_GL11_AUTOGEN_H_
#include "common/PackedEnums.h"
namespace gl
{
class Context;
bool ValidateAreTexturesResident(Context *context,
GLsizei n,
const GLuint *textures,
GLboolean *residences);
bool ValidateArrayElement(Context *context, GLint i);
bool ValidateCopyTexImage1D(Context *context,
GLenum target,
GLint level,
GLenum internalformat,
GLint x,
GLint y,
GLsizei width,
GLint border);
bool ValidateCopyTexSubImage1D(Context *context,
GLenum target,
GLint level,
GLint xoffset,
GLint x,
GLint y,
GLsizei width);
bool ValidateEdgeFlagPointer(Context *context, GLsizei stride, const void *pointer);
bool ValidateIndexPointer(Context *context, GLenum type, GLsizei stride, const void *pointer);
bool ValidateIndexub(Context *context, GLubyte c);
bool ValidateIndexubv(Context *context, const GLubyte *c);
bool ValidateInterleavedArrays(Context *context,
GLenum format,
GLsizei stride,
const void *pointer);
bool ValidatePopClientAttrib(Context *context);
bool ValidatePrioritizeTextures(Context *context,
GLsizei n,
const GLuint *textures,
const GLfloat *priorities);
bool ValidatePushClientAttrib(Context *context, GLbitfield mask);
bool ValidateTexSubImage1D(Context *context,
GLenum target,
GLint level,
GLint xoffset,
GLsizei width,
GLenum format,
GLenum type,
const void *pixels);
} // namespace gl
#endif // LIBANGLE_VALIDATION_GL11_AUTOGEN_H_
//
// 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.
//
// validationGL12.cpp: Validation functions for OpenGL 1.2 entry point parameters
#include "libANGLE/validationGL12_autogen.h"
namespace gl
{} // namespace gl
// GENERATED FILE - DO NOT EDIT.
// Generated by generate_entry_points.py using data from gl.xml and wgl.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.
//
// validationGL12_autogen.h:
// Validation functions for the OpenGL 1.2 entry points.
#ifndef LIBANGLE_VALIDATION_GL12_AUTOGEN_H_
#define LIBANGLE_VALIDATION_GL12_AUTOGEN_H_
#include "common/PackedEnums.h"
namespace gl
{
class Context;
} // namespace gl
#endif // LIBANGLE_VALIDATION_GL12_AUTOGEN_H_
//
// 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.
//
// validationGL13.cpp: Validation functions for OpenGL 1.3 entry point parameters
#include "libANGLE/validationGL13_autogen.h"
namespace gl
{
bool ValidateCompressedTexImage1D(Context *context,
GLenum target,
GLint level,
GLenum internalformat,
GLsizei width,
GLint border,
GLsizei imageSize,
const void *data)
{
return true;
}
bool ValidateCompressedTexSubImage1D(Context *context,
GLenum target,
GLint level,
GLint xoffset,
GLsizei width,
GLenum format,
GLsizei imageSize,
const void *data)
{
return true;
}
bool ValidateGetCompressedTexImage(Context *context, GLenum target, GLint level, void *img)
{
return true;
}
bool ValidateLoadTransposeMatrixd(Context *context, const GLdouble *m)
{
return true;
}
bool ValidateLoadTransposeMatrixf(Context *context, const GLfloat *m)
{
return true;
}
bool ValidateMultTransposeMatrixd(Context *context, const GLdouble *m)
{
return true;
}
bool ValidateMultTransposeMatrixf(Context *context, const GLfloat *m)
{
return true;
}
bool ValidateMultiTexCoord1d(Context *context, GLenum target, GLdouble s)
{
return true;
}
bool ValidateMultiTexCoord1dv(Context *context, GLenum target, const GLdouble *v)
{
return true;
}
bool ValidateMultiTexCoord1f(Context *context, GLenum target, GLfloat s)
{
return true;
}
bool ValidateMultiTexCoord1fv(Context *context, GLenum target, const GLfloat *v)
{
return true;
}
bool ValidateMultiTexCoord1i(Context *context, GLenum target, GLint s)
{
return true;
}
bool ValidateMultiTexCoord1iv(Context *context, GLenum target, const GLint *v)
{
return true;
}
bool ValidateMultiTexCoord1s(Context *context, GLenum target, GLshort s)
{
return true;
}
bool ValidateMultiTexCoord1sv(Context *context, GLenum target, const GLshort *v)
{
return true;
}
bool ValidateMultiTexCoord2d(Context *context, GLenum target, GLdouble s, GLdouble t)
{
return true;
}
bool ValidateMultiTexCoord2dv(Context *context, GLenum target, const GLdouble *v)
{
return true;
}
bool ValidateMultiTexCoord2f(Context *context, GLenum target, GLfloat s, GLfloat t)
{
return true;
}
bool ValidateMultiTexCoord2fv(Context *context, GLenum target, const GLfloat *v)
{
return true;
}
bool ValidateMultiTexCoord2i(Context *context, GLenum target, GLint s, GLint t)
{
return true;
}
bool ValidateMultiTexCoord2iv(Context *context, GLenum target, const GLint *v)
{
return true;
}
bool ValidateMultiTexCoord2s(Context *context, GLenum target, GLshort s, GLshort t)
{
return true;
}
bool ValidateMultiTexCoord2sv(Context *context, GLenum target, const GLshort *v)
{
return true;
}
bool ValidateMultiTexCoord3d(Context *context, GLenum target, GLdouble s, GLdouble t, GLdouble r)
{
return true;
}
bool ValidateMultiTexCoord3dv(Context *context, GLenum target, const GLdouble *v)
{
return true;
}
bool ValidateMultiTexCoord3f(Context *context, GLenum target, GLfloat s, GLfloat t, GLfloat r)
{
return true;
}
bool ValidateMultiTexCoord3fv(Context *context, GLenum target, const GLfloat *v)
{
return true;
}
bool ValidateMultiTexCoord3i(Context *context, GLenum target, GLint s, GLint t, GLint r)
{
return true;
}
bool ValidateMultiTexCoord3iv(Context *context, GLenum target, const GLint *v)
{
return true;
}
bool ValidateMultiTexCoord3s(Context *context, GLenum target, GLshort s, GLshort t, GLshort r)
{
return true;
}
bool ValidateMultiTexCoord3sv(Context *context, GLenum target, const GLshort *v)
{
return true;
}
bool ValidateMultiTexCoord4d(Context *context,
GLenum target,
GLdouble s,
GLdouble t,
GLdouble r,
GLdouble q)
{
return true;
}
bool ValidateMultiTexCoord4dv(Context *context, GLenum target, const GLdouble *v)
{
return true;
}
bool ValidateMultiTexCoord4fv(Context *context, GLenum target, const GLfloat *v)
{
return true;
}
bool ValidateMultiTexCoord4i(Context *context, GLenum target, GLint s, GLint t, GLint r, GLint q)
{
return true;
}
bool ValidateMultiTexCoord4iv(Context *context, GLenum target, const GLint *v)
{
return true;
}
bool ValidateMultiTexCoord4s(Context *context,
GLenum target,
GLshort s,
GLshort t,
GLshort r,
GLshort q)
{
return true;
}
bool ValidateMultiTexCoord4sv(Context *context, GLenum target, const GLshort *v)
{
return true;
}
} // namespace gl
// GENERATED FILE - DO NOT EDIT.
// Generated by generate_entry_points.py using data from gl.xml and wgl.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.
//
// validationGL13_autogen.h:
// Validation functions for the OpenGL 1.3 entry points.
#ifndef LIBANGLE_VALIDATION_GL13_AUTOGEN_H_
#define LIBANGLE_VALIDATION_GL13_AUTOGEN_H_
#include "common/PackedEnums.h"
namespace gl
{
class Context;
bool ValidateCompressedTexImage1D(Context *context,
GLenum target,
GLint level,
GLenum internalformat,
GLsizei width,
GLint border,
GLsizei imageSize,
const void *data);
bool ValidateCompressedTexSubImage1D(Context *context,
GLenum target,
GLint level,
GLint xoffset,
GLsizei width,
GLenum format,
GLsizei imageSize,
const void *data);
bool ValidateGetCompressedTexImage(Context *context, GLenum target, GLint level, void *img);
bool ValidateLoadTransposeMatrixd(Context *context, const GLdouble *m);
bool ValidateLoadTransposeMatrixf(Context *context, const GLfloat *m);
bool ValidateMultTransposeMatrixd(Context *context, const GLdouble *m);
bool ValidateMultTransposeMatrixf(Context *context, const GLfloat *m);
bool ValidateMultiTexCoord1d(Context *context, GLenum target, GLdouble s);
bool ValidateMultiTexCoord1dv(Context *context, GLenum target, const GLdouble *v);
bool ValidateMultiTexCoord1f(Context *context, GLenum target, GLfloat s);
bool ValidateMultiTexCoord1fv(Context *context, GLenum target, const GLfloat *v);
bool ValidateMultiTexCoord1i(Context *context, GLenum target, GLint s);
bool ValidateMultiTexCoord1iv(Context *context, GLenum target, const GLint *v);
bool ValidateMultiTexCoord1s(Context *context, GLenum target, GLshort s);
bool ValidateMultiTexCoord1sv(Context *context, GLenum target, const GLshort *v);
bool ValidateMultiTexCoord2d(Context *context, GLenum target, GLdouble s, GLdouble t);
bool ValidateMultiTexCoord2dv(Context *context, GLenum target, const GLdouble *v);
bool ValidateMultiTexCoord2f(Context *context, GLenum target, GLfloat s, GLfloat t);
bool ValidateMultiTexCoord2fv(Context *context, GLenum target, const GLfloat *v);
bool ValidateMultiTexCoord2i(Context *context, GLenum target, GLint s, GLint t);
bool ValidateMultiTexCoord2iv(Context *context, GLenum target, const GLint *v);
bool ValidateMultiTexCoord2s(Context *context, GLenum target, GLshort s, GLshort t);
bool ValidateMultiTexCoord2sv(Context *context, GLenum target, const GLshort *v);
bool ValidateMultiTexCoord3d(Context *context, GLenum target, GLdouble s, GLdouble t, GLdouble r);
bool ValidateMultiTexCoord3dv(Context *context, GLenum target, const GLdouble *v);
bool ValidateMultiTexCoord3f(Context *context, GLenum target, GLfloat s, GLfloat t, GLfloat r);
bool ValidateMultiTexCoord3fv(Context *context, GLenum target, const GLfloat *v);
bool ValidateMultiTexCoord3i(Context *context, GLenum target, GLint s, GLint t, GLint r);
bool ValidateMultiTexCoord3iv(Context *context, GLenum target, const GLint *v);
bool ValidateMultiTexCoord3s(Context *context, GLenum target, GLshort s, GLshort t, GLshort r);
bool ValidateMultiTexCoord3sv(Context *context, GLenum target, const GLshort *v);
bool ValidateMultiTexCoord4d(Context *context,
GLenum target,
GLdouble s,
GLdouble t,
GLdouble r,
GLdouble q);
bool ValidateMultiTexCoord4dv(Context *context, GLenum target, const GLdouble *v);
bool ValidateMultiTexCoord4fv(Context *context, GLenum target, const GLfloat *v);
bool ValidateMultiTexCoord4i(Context *context, GLenum target, GLint s, GLint t, GLint r, GLint q);
bool ValidateMultiTexCoord4iv(Context *context, GLenum target, const GLint *v);
bool ValidateMultiTexCoord4s(Context *context,
GLenum target,
GLshort s,
GLshort t,
GLshort r,
GLshort q);
bool ValidateMultiTexCoord4sv(Context *context, GLenum target, const GLshort *v);
} // namespace gl
#endif // LIBANGLE_VALIDATION_GL13_AUTOGEN_H_
//
// 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.
//
// validationGL14.cpp: Validation functions for OpenGL 1.4 entry point parameters
#include "libANGLE/validationGL14_autogen.h"
namespace gl
{
bool ValidateFogCoordPointer(Context *context, GLenum type, GLsizei stride, const void *pointer)
{
return true;
}
bool ValidateFogCoordd(Context *context, GLdouble coord)
{
return true;
}
bool ValidateFogCoorddv(Context *context, const GLdouble *coord)
{
return true;
}
bool ValidateFogCoordf(Context *context, GLfloat coord)
{
return true;
}
bool ValidateFogCoordfv(Context *context, const GLfloat *coord)
{
return true;
}
bool ValidateMultiDrawArrays(Context *context,
PrimitiveMode modePacked,
const GLint *first,
const GLsizei *count,
GLsizei drawcount)
{
return true;
}
bool ValidateMultiDrawElements(Context *context,
PrimitiveMode modePacked,
const GLsizei *count,
DrawElementsType typePacked,
const void *const *indices,
GLsizei drawcount)
{
return true;
}
bool ValidatePointParameteri(Context *context, GLenum pname, GLint param)
{
return true;
}
bool ValidatePointParameteriv(Context *context, GLenum pname, const GLint *params)
{
return true;
}
bool ValidateSecondaryColor3b(Context *context, GLbyte red, GLbyte green, GLbyte blue)
{
return true;
}
bool ValidateSecondaryColor3bv(Context *context, const GLbyte *v)
{
return true;
}
bool ValidateSecondaryColor3d(Context *context, GLdouble red, GLdouble green, GLdouble blue)
{
return true;
}
bool ValidateSecondaryColor3dv(Context *context, const GLdouble *v)
{
return true;
}
bool ValidateSecondaryColor3f(Context *context, GLfloat red, GLfloat green, GLfloat blue)
{
return true;
}
bool ValidateSecondaryColor3fv(Context *context, const GLfloat *v)
{
return true;
}
bool ValidateSecondaryColor3i(Context *context, GLint red, GLint green, GLint blue)
{
return true;
}
bool ValidateSecondaryColor3iv(Context *context, const GLint *v)
{
return true;
}
bool ValidateSecondaryColor3s(Context *context, GLshort red, GLshort green, GLshort blue)
{
return true;
}
bool ValidateSecondaryColor3sv(Context *context, const GLshort *v)
{
return true;
}
bool ValidateSecondaryColor3ub(Context *context, GLubyte red, GLubyte green, GLubyte blue)
{
return true;
}
bool ValidateSecondaryColor3ubv(Context *context, const GLubyte *v)
{
return true;
}
bool ValidateSecondaryColor3ui(Context *context, GLuint red, GLuint green, GLuint blue)
{
return true;
}
bool ValidateSecondaryColor3uiv(Context *context, const GLuint *v)
{
return true;
}
bool ValidateSecondaryColor3us(Context *context, GLushort red, GLushort green, GLushort blue)
{
return true;
}
bool ValidateSecondaryColor3usv(Context *context, const GLushort *v)
{
return true;
}
bool ValidateSecondaryColorPointer(Context *context,
GLint size,
GLenum type,
GLsizei stride,
const void *pointer)
{
return true;
}
bool ValidateWindowPos2d(Context *context, GLdouble x, GLdouble y)
{
return true;
}
bool ValidateWindowPos2dv(Context *context, const GLdouble *v)
{
return true;
}
bool ValidateWindowPos2f(Context *context, GLfloat x, GLfloat y)
{
return true;
}
bool ValidateWindowPos2fv(Context *context, const GLfloat *v)
{
return true;
}
bool ValidateWindowPos2i(Context *context, GLint x, GLint y)
{
return true;
}
bool ValidateWindowPos2iv(Context *context, const GLint *v)
{
return true;
}
bool ValidateWindowPos2s(Context *context, GLshort x, GLshort y)
{
return true;
}
bool ValidateWindowPos2sv(Context *context, const GLshort *v)
{
return true;
}
bool ValidateWindowPos3d(Context *context, GLdouble x, GLdouble y, GLdouble z)
{
return true;
}
bool ValidateWindowPos3dv(Context *context, const GLdouble *v)
{
return true;
}
bool ValidateWindowPos3f(Context *context, GLfloat x, GLfloat y, GLfloat z)
{
return true;
}
bool ValidateWindowPos3fv(Context *context, const GLfloat *v)
{
return true;
}
bool ValidateWindowPos3i(Context *context, GLint x, GLint y, GLint z)
{
return true;
}
bool ValidateWindowPos3iv(Context *context, const GLint *v)
{
return true;
}
bool ValidateWindowPos3s(Context *context, GLshort x, GLshort y, GLshort z)
{
return true;
}
bool ValidateWindowPos3sv(Context *context, const GLshort *v)
{
return true;
}
} // namespace gl
// GENERATED FILE - DO NOT EDIT.
// Generated by generate_entry_points.py using data from gl.xml and wgl.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.
//
// validationGL14_autogen.h:
// Validation functions for the OpenGL 1.4 entry points.
#ifndef LIBANGLE_VALIDATION_GL14_AUTOGEN_H_
#define LIBANGLE_VALIDATION_GL14_AUTOGEN_H_
#include "common/PackedEnums.h"
namespace gl
{
class Context;
bool ValidateFogCoordPointer(Context *context, GLenum type, GLsizei stride, const void *pointer);
bool ValidateFogCoordd(Context *context, GLdouble coord);
bool ValidateFogCoorddv(Context *context, const GLdouble *coord);
bool ValidateFogCoordf(Context *context, GLfloat coord);
bool ValidateFogCoordfv(Context *context, const GLfloat *coord);
bool ValidateMultiDrawArrays(Context *context,
PrimitiveMode modePacked,
const GLint *first,
const GLsizei *count,
GLsizei drawcount);
bool ValidateMultiDrawElements(Context *context,
PrimitiveMode modePacked,
const GLsizei *count,
DrawElementsType typePacked,
const void *const *indices,
GLsizei drawcount);
bool ValidatePointParameteri(Context *context, GLenum pname, GLint param);
bool ValidatePointParameteriv(Context *context, GLenum pname, const GLint *params);
bool ValidateSecondaryColor3b(Context *context, GLbyte red, GLbyte green, GLbyte blue);
bool ValidateSecondaryColor3bv(Context *context, const GLbyte *v);
bool ValidateSecondaryColor3d(Context *context, GLdouble red, GLdouble green, GLdouble blue);
bool ValidateSecondaryColor3dv(Context *context, const GLdouble *v);
bool ValidateSecondaryColor3f(Context *context, GLfloat red, GLfloat green, GLfloat blue);
bool ValidateSecondaryColor3fv(Context *context, const GLfloat *v);
bool ValidateSecondaryColor3i(Context *context, GLint red, GLint green, GLint blue);
bool ValidateSecondaryColor3iv(Context *context, const GLint *v);
bool ValidateSecondaryColor3s(Context *context, GLshort red, GLshort green, GLshort blue);
bool ValidateSecondaryColor3sv(Context *context, const GLshort *v);
bool ValidateSecondaryColor3ub(Context *context, GLubyte red, GLubyte green, GLubyte blue);
bool ValidateSecondaryColor3ubv(Context *context, const GLubyte *v);
bool ValidateSecondaryColor3ui(Context *context, GLuint red, GLuint green, GLuint blue);
bool ValidateSecondaryColor3uiv(Context *context, const GLuint *v);
bool ValidateSecondaryColor3us(Context *context, GLushort red, GLushort green, GLushort blue);
bool ValidateSecondaryColor3usv(Context *context, const GLushort *v);
bool ValidateSecondaryColorPointer(Context *context,
GLint size,
GLenum type,
GLsizei stride,
const void *pointer);
bool ValidateWindowPos2d(Context *context, GLdouble x, GLdouble y);
bool ValidateWindowPos2dv(Context *context, const GLdouble *v);
bool ValidateWindowPos2f(Context *context, GLfloat x, GLfloat y);
bool ValidateWindowPos2fv(Context *context, const GLfloat *v);
bool ValidateWindowPos2i(Context *context, GLint x, GLint y);
bool ValidateWindowPos2iv(Context *context, const GLint *v);
bool ValidateWindowPos2s(Context *context, GLshort x, GLshort y);
bool ValidateWindowPos2sv(Context *context, const GLshort *v);
bool ValidateWindowPos3d(Context *context, GLdouble x, GLdouble y, GLdouble z);
bool ValidateWindowPos3dv(Context *context, const GLdouble *v);
bool ValidateWindowPos3f(Context *context, GLfloat x, GLfloat y, GLfloat z);
bool ValidateWindowPos3fv(Context *context, const GLfloat *v);
bool ValidateWindowPos3i(Context *context, GLint x, GLint y, GLint z);
bool ValidateWindowPos3iv(Context *context, const GLint *v);
bool ValidateWindowPos3s(Context *context, GLshort x, GLshort y, GLshort z);
bool ValidateWindowPos3sv(Context *context, const GLshort *v);
} // namespace gl
#endif // LIBANGLE_VALIDATION_GL14_AUTOGEN_H_
//
// 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.
//
// validationGL15.cpp: Validation functions for OpenGL 1.5 entry point parameters
#include "libANGLE/validationGL15_autogen.h"
namespace gl
{
bool ValidateGetBufferSubData(Context *context,
GLenum target,
GLintptr offset,
GLsizeiptr size,
void *data)
{
return true;
}
bool ValidateGetQueryObjectiv(Context *context, GLuint id, GLenum pname, GLint *params)
{
return true;
}
bool ValidateMapBuffer(Context *context, BufferBinding targetPacked, GLenum access)
{
return true;
}
} // namespace gl
// GENERATED FILE - DO NOT EDIT.
// Generated by generate_entry_points.py using data from gl.xml and wgl.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.
//
// validationGL15_autogen.h:
// Validation functions for the OpenGL 1.5 entry points.
#ifndef LIBANGLE_VALIDATION_GL15_AUTOGEN_H_
#define LIBANGLE_VALIDATION_GL15_AUTOGEN_H_
#include "common/PackedEnums.h"
namespace gl
{
class Context;
bool ValidateGetBufferSubData(Context *context,
GLenum target,
GLintptr offset,
GLsizeiptr size,
void *data);
bool ValidateGetQueryObjectiv(Context *context, GLuint id, GLenum pname, GLint *params);
bool ValidateMapBuffer(Context *context, BufferBinding targetPacked, GLenum access);
} // namespace gl
#endif // LIBANGLE_VALIDATION_GL15_AUTOGEN_H_
//
// 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.
//
// validationGL2.cpp: Validation functions for OpenGL 2.0 entry point parameters
#include "libANGLE/validationGL2_autogen.h"
namespace gl
{
bool ValidateGetVertexAttribdv(Context *context, GLuint index, GLenum pname, GLdouble *params)
{
return true;
}
bool ValidateVertexAttrib1d(Context *context, GLuint index, GLdouble x)
{
return true;
}
bool ValidateVertexAttrib1dv(Context *context, GLuint index, const GLdouble *v)
{
return true;
}
bool ValidateVertexAttrib1s(Context *context, GLuint index, GLshort x)
{
return true;
}
bool ValidateVertexAttrib1sv(Context *context, GLuint index, const GLshort *v)
{
return true;
}
bool ValidateVertexAttrib2d(Context *context, GLuint index, GLdouble x, GLdouble y)
{
return true;
}
bool ValidateVertexAttrib2dv(Context *context, GLuint index, const GLdouble *v)
{
return true;
}
bool ValidateVertexAttrib2s(Context *context, GLuint index, GLshort x, GLshort y)
{
return true;
}
bool ValidateVertexAttrib2sv(Context *context, GLuint index, const GLshort *v)
{
return true;
}
bool ValidateVertexAttrib3d(Context *context, GLuint index, GLdouble x, GLdouble y, GLdouble z)
{
return true;
}
bool ValidateVertexAttrib3dv(Context *context, GLuint index, const GLdouble *v)
{
return true;
}
bool ValidateVertexAttrib3s(Context *context, GLuint index, GLshort x, GLshort y, GLshort z)
{
return true;
}
bool ValidateVertexAttrib3sv(Context *context, GLuint index, const GLshort *v)
{
return true;
}
bool ValidateVertexAttrib4Nbv(Context *context, GLuint index, const GLbyte *v)
{
return true;
}
bool ValidateVertexAttrib4Niv(Context *context, GLuint index, const GLint *v)
{
return true;
}
bool ValidateVertexAttrib4Nsv(Context *context, GLuint index, const GLshort *v)
{
return true;
}
bool ValidateVertexAttrib4Nub(Context *context,
GLuint index,
GLubyte x,
GLubyte y,
GLubyte z,
GLubyte w)
{
return true;
}
bool ValidateVertexAttrib4Nubv(Context *context, GLuint index, const GLubyte *v)
{
return true;
}
bool ValidateVertexAttrib4Nuiv(Context *context, GLuint index, const GLuint *v)
{
return true;
}
bool ValidateVertexAttrib4Nusv(Context *context, GLuint index, const GLushort *v)
{
return true;
}
bool ValidateVertexAttrib4bv(Context *context, GLuint index, const GLbyte *v)
{
return true;
}
bool ValidateVertexAttrib4d(Context *context,
GLuint index,
GLdouble x,
GLdouble y,
GLdouble z,
GLdouble w)
{
return true;
}
bool ValidateVertexAttrib4dv(Context *context, GLuint index, const GLdouble *v)
{
return true;
}
bool ValidateVertexAttrib4iv(Context *context, GLuint index, const GLint *v)
{
return true;
}
bool ValidateVertexAttrib4s(Context *context,
GLuint index,
GLshort x,
GLshort y,
GLshort z,
GLshort w)
{
return true;
}
bool ValidateVertexAttrib4sv(Context *context, GLuint index, const GLshort *v)
{
return true;
}
bool ValidateVertexAttrib4ubv(Context *context, GLuint index, const GLubyte *v)
{
return true;
}
bool ValidateVertexAttrib4uiv(Context *context, GLuint index, const GLuint *v)
{
return true;
}
bool ValidateVertexAttrib4usv(Context *context, GLuint index, const GLushort *v)
{
return true;
}
} // namespace gl
//
// 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.
//
// validationGL21.cpp: Validation functions for OpenGL 2.1 entry point parameters
#include "libANGLE/validationGL21_autogen.h"
namespace gl
{} // namespace gl
// GENERATED FILE - DO NOT EDIT.
// Generated by generate_entry_points.py using data from gl.xml and wgl.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.
//
// validationGL21_autogen.h:
// Validation functions for the OpenGL 2.1 entry points.
#ifndef LIBANGLE_VALIDATION_GL21_AUTOGEN_H_
#define LIBANGLE_VALIDATION_GL21_AUTOGEN_H_
#include "common/PackedEnums.h"
namespace gl
{
class Context;
} // namespace gl
#endif // LIBANGLE_VALIDATION_GL21_AUTOGEN_H_
// GENERATED FILE - DO NOT EDIT.
// Generated by generate_entry_points.py using data from gl.xml and wgl.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.
//
// validationGL2_autogen.h:
// Validation functions for the OpenGL 2.0 entry points.
#ifndef LIBANGLE_VALIDATION_GL2_AUTOGEN_H_
#define LIBANGLE_VALIDATION_GL2_AUTOGEN_H_
#include "common/PackedEnums.h"
namespace gl
{
class Context;
bool ValidateGetVertexAttribdv(Context *context, GLuint index, GLenum pname, GLdouble *params);
bool ValidateVertexAttrib1d(Context *context, GLuint index, GLdouble x);
bool ValidateVertexAttrib1dv(Context *context, GLuint index, const GLdouble *v);
bool ValidateVertexAttrib1s(Context *context, GLuint index, GLshort x);
bool ValidateVertexAttrib1sv(Context *context, GLuint index, const GLshort *v);
bool ValidateVertexAttrib2d(Context *context, GLuint index, GLdouble x, GLdouble y);
bool ValidateVertexAttrib2dv(Context *context, GLuint index, const GLdouble *v);
bool ValidateVertexAttrib2s(Context *context, GLuint index, GLshort x, GLshort y);
bool ValidateVertexAttrib2sv(Context *context, GLuint index, const GLshort *v);
bool ValidateVertexAttrib3d(Context *context, GLuint index, GLdouble x, GLdouble y, GLdouble z);
bool ValidateVertexAttrib3dv(Context *context, GLuint index, const GLdouble *v);
bool ValidateVertexAttrib3s(Context *context, GLuint index, GLshort x, GLshort y, GLshort z);
bool ValidateVertexAttrib3sv(Context *context, GLuint index, const GLshort *v);
bool ValidateVertexAttrib4Nbv(Context *context, GLuint index, const GLbyte *v);
bool ValidateVertexAttrib4Niv(Context *context, GLuint index, const GLint *v);
bool ValidateVertexAttrib4Nsv(Context *context, GLuint index, const GLshort *v);
bool ValidateVertexAttrib4Nub(Context *context,
GLuint index,
GLubyte x,
GLubyte y,
GLubyte z,
GLubyte w);
bool ValidateVertexAttrib4Nubv(Context *context, GLuint index, const GLubyte *v);
bool ValidateVertexAttrib4Nuiv(Context *context, GLuint index, const GLuint *v);
bool ValidateVertexAttrib4Nusv(Context *context, GLuint index, const GLushort *v);
bool ValidateVertexAttrib4bv(Context *context, GLuint index, const GLbyte *v);
bool ValidateVertexAttrib4d(Context *context,
GLuint index,
GLdouble x,
GLdouble y,
GLdouble z,
GLdouble w);
bool ValidateVertexAttrib4dv(Context *context, GLuint index, const GLdouble *v);
bool ValidateVertexAttrib4iv(Context *context, GLuint index, const GLint *v);
bool ValidateVertexAttrib4s(Context *context,
GLuint index,
GLshort x,
GLshort y,
GLshort z,
GLshort w);
bool ValidateVertexAttrib4sv(Context *context, GLuint index, const GLshort *v);
bool ValidateVertexAttrib4ubv(Context *context, GLuint index, const GLubyte *v);
bool ValidateVertexAttrib4uiv(Context *context, GLuint index, const GLuint *v);
bool ValidateVertexAttrib4usv(Context *context, GLuint index, const GLushort *v);
} // namespace gl
#endif // LIBANGLE_VALIDATION_GL2_AUTOGEN_H_
//
// 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.
//
// validationGL3.cpp: Validation functions for OpenGL 3.0 entry point parameters
#include "libANGLE/validationGL3_autogen.h"
namespace gl
{
bool ValidateBeginConditionalRender(Context *context, GLuint id, GLenum mode)
{
return true;
}
bool ValidateBindFragDataLocation(Context *context,
GLuint program,
GLuint color,
const GLchar *name)
{
return true;
}
bool ValidateClampColor(Context *context, GLenum target, GLenum clamp)
{
return true;
}
bool ValidateColorMaski(Context *context,
GLuint index,
GLboolean r,
GLboolean g,
GLboolean b,
GLboolean a)
{
return true;
}
bool ValidateDisablei(Context *context, GLenum target, GLuint index)
{
return true;
}
bool ValidateEnablei(Context *context, GLenum target, GLuint index)
{
return true;
}
bool ValidateEndConditionalRender(Context *context)
{
return true;
}
bool ValidateFramebufferTexture1D(Context *context,
GLenum target,
GLenum attachment,
GLenum textarget,
GLuint texture,
GLint level)
{
return true;
}
bool ValidateFramebufferTexture3D(Context *context,
GLenum target,
GLenum attachment,
TextureTarget textargetPacked,
GLuint texture,
GLint level,
GLint zoffset)
{
return true;
}
bool ValidateGetTexParameterIiv(Context *context,
TextureType targetPacked,
GLenum pname,
GLint *params)
{
return true;
}
bool ValidateGetTexParameterIuiv(Context *context,
TextureType targetPacked,
GLenum pname,
GLuint *params)
{
return true;
}
bool ValidateIsEnabledi(Context *context, GLenum target, GLuint index)
{
return true;
}
bool ValidateTexParameterIiv(Context *context,
TextureType targetPacked,
GLenum pname,
const GLint *params)
{
return true;
}
bool ValidateTexParameterIuiv(Context *context,
TextureType targetPacked,
GLenum pname,
const GLuint *params)
{
return true;
}
bool ValidateVertexAttribI1i(Context *context, GLuint index, GLint x)
{
return true;
}
bool ValidateVertexAttribI1iv(Context *context, GLuint index, const GLint *v)
{
return true;
}
bool ValidateVertexAttribI1ui(Context *context, GLuint index, GLuint x)
{
return true;
}
bool ValidateVertexAttribI1uiv(Context *context, GLuint index, const GLuint *v)
{
return true;
}
bool ValidateVertexAttribI2i(Context *context, GLuint index, GLint x, GLint y)
{
return true;
}
bool ValidateVertexAttribI2iv(Context *context, GLuint index, const GLint *v)
{
return true;
}
bool ValidateVertexAttribI2ui(Context *context, GLuint index, GLuint x, GLuint y)
{
return true;
}
bool ValidateVertexAttribI2uiv(Context *context, GLuint index, const GLuint *v)
{
return true;
}
bool ValidateVertexAttribI3i(Context *context, GLuint index, GLint x, GLint y, GLint z)
{
return true;
}
bool ValidateVertexAttribI3iv(Context *context, GLuint index, const GLint *v)
{
return true;
}
bool ValidateVertexAttribI3ui(Context *context, GLuint index, GLuint x, GLuint y, GLuint z)
{
return true;
}
bool ValidateVertexAttribI3uiv(Context *context, GLuint index, const GLuint *v)
{
return true;
}
bool ValidateVertexAttribI4bv(Context *context, GLuint index, const GLbyte *v)
{
return true;
}
bool ValidateVertexAttribI4sv(Context *context, GLuint index, const GLshort *v)
{
return true;
}
bool ValidateVertexAttribI4ubv(Context *context, GLuint index, const GLubyte *v)
{
return true;
}
bool ValidateVertexAttribI4usv(Context *context, GLuint index, const GLushort *v)
{
return true;
}
} // namespace gl
//
// 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.
//
// validationGL31.cpp: Validation functions for OpenGL 3.1 entry point parameters
#include "libANGLE/validationGL31_autogen.h"
namespace gl
{
bool ValidateGetActiveUniformName(Context *context,
GLuint program,
GLuint uniformIndex,
GLsizei bufSize,
GLsizei *length,
GLchar *uniformName)
{
return true;
}
bool ValidatePrimitiveRestartIndex(Context *context, GLuint index)
{
return true;
}
bool ValidateTexBuffer(Context *context, GLenum target, GLenum internalformat, GLuint buffer)
{
return true;
}
} // namespace gl
// GENERATED FILE - DO NOT EDIT.
// Generated by generate_entry_points.py using data from gl.xml and wgl.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.
//
// validationGL31_autogen.h:
// Validation functions for the OpenGL 3.1 entry points.
#ifndef LIBANGLE_VALIDATION_GL31_AUTOGEN_H_
#define LIBANGLE_VALIDATION_GL31_AUTOGEN_H_
#include "common/PackedEnums.h"
namespace gl
{
class Context;
bool ValidateGetActiveUniformName(Context *context,
GLuint program,
GLuint uniformIndex,
GLsizei bufSize,
GLsizei *length,
GLchar *uniformName);
bool ValidatePrimitiveRestartIndex(Context *context, GLuint index);
bool ValidateTexBuffer(Context *context, GLenum target, GLenum internalformat, GLuint buffer);
} // namespace gl
#endif // LIBANGLE_VALIDATION_GL31_AUTOGEN_H_
// GENERATED FILE - DO NOT EDIT.
// Generated by generate_entry_points.py using data from gl.xml and wgl.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.
//
// validationGL3_autogen.h:
// Validation functions for the OpenGL 3.0 entry points.
#ifndef LIBANGLE_VALIDATION_GL3_AUTOGEN_H_
#define LIBANGLE_VALIDATION_GL3_AUTOGEN_H_
#include "common/PackedEnums.h"
namespace gl
{
class Context;
bool ValidateBeginConditionalRender(Context *context, GLuint id, GLenum mode);
bool ValidateBindFragDataLocation(Context *context,
GLuint program,
GLuint color,
const GLchar *name);
bool ValidateClampColor(Context *context, GLenum target, GLenum clamp);
bool ValidateColorMaski(Context *context,
GLuint index,
GLboolean r,
GLboolean g,
GLboolean b,
GLboolean a);
bool ValidateDisablei(Context *context, GLenum target, GLuint index);
bool ValidateEnablei(Context *context, GLenum target, GLuint index);
bool ValidateEndConditionalRender(Context *context);
bool ValidateFramebufferTexture1D(Context *context,
GLenum target,
GLenum attachment,
GLenum textarget,
GLuint texture,
GLint level);
bool ValidateFramebufferTexture3D(Context *context,
GLenum target,
GLenum attachment,
TextureTarget textargetPacked,
GLuint texture,
GLint level,
GLint zoffset);
bool ValidateGetTexParameterIiv(Context *context,
TextureType targetPacked,
GLenum pname,
GLint *params);
bool ValidateGetTexParameterIuiv(Context *context,
TextureType targetPacked,
GLenum pname,
GLuint *params);
bool ValidateIsEnabledi(Context *context, GLenum target, GLuint index);
bool ValidateTexParameterIiv(Context *context,
TextureType targetPacked,
GLenum pname,
const GLint *params);
bool ValidateTexParameterIuiv(Context *context,
TextureType targetPacked,
GLenum pname,
const GLuint *params);
bool ValidateVertexAttribI1i(Context *context, GLuint index, GLint x);
bool ValidateVertexAttribI1iv(Context *context, GLuint index, const GLint *v);
bool ValidateVertexAttribI1ui(Context *context, GLuint index, GLuint x);
bool ValidateVertexAttribI1uiv(Context *context, GLuint index, const GLuint *v);
bool ValidateVertexAttribI2i(Context *context, GLuint index, GLint x, GLint y);
bool ValidateVertexAttribI2iv(Context *context, GLuint index, const GLint *v);
bool ValidateVertexAttribI2ui(Context *context, GLuint index, GLuint x, GLuint y);
bool ValidateVertexAttribI2uiv(Context *context, GLuint index, const GLuint *v);
bool ValidateVertexAttribI3i(Context *context, GLuint index, GLint x, GLint y, GLint z);
bool ValidateVertexAttribI3iv(Context *context, GLuint index, const GLint *v);
bool ValidateVertexAttribI3ui(Context *context, GLuint index, GLuint x, GLuint y, GLuint z);
bool ValidateVertexAttribI3uiv(Context *context, GLuint index, const GLuint *v);
bool ValidateVertexAttribI4bv(Context *context, GLuint index, const GLbyte *v);
bool ValidateVertexAttribI4sv(Context *context, GLuint index, const GLshort *v);
bool ValidateVertexAttribI4ubv(Context *context, GLuint index, const GLubyte *v);
bool ValidateVertexAttribI4usv(Context *context, GLuint index, const GLushort *v);
} // namespace gl
#endif // LIBANGLE_VALIDATION_GL3_AUTOGEN_H_
......@@ -178,7 +178,18 @@ libangle_sources = [
"src/libANGLE/Config.h",
"src/libANGLE/Constants.h",
"src/libANGLE/Context.cpp",
"src/libANGLE/Context_gl.cpp",
"src/libANGLE/Context_gles_1_0.cpp",
"src/libANGLE/Context_gl_1_0_autogen.h",
"src/libANGLE/Context_gl_1_1_autogen.h",
"src/libANGLE/Context_gl_1_2_autogen.h",
"src/libANGLE/Context_gl_1_3_autogen.h",
"src/libANGLE/Context_gl_1_4_autogen.h",
"src/libANGLE/Context_gl_1_5_autogen.h",
"src/libANGLE/Context_gl_2_0_autogen.h",
"src/libANGLE/Context_gl_2_1_autogen.h",
"src/libANGLE/Context_gl_3_0_autogen.h",
"src/libANGLE/Context_gl_3_1_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",
......@@ -353,6 +364,26 @@ libangle_sources = [
"src/libANGLE/validationES3.h",
"src/libANGLE/validationESEXT_autogen.h",
"src/libANGLE/validationESEXT.h",
"src/libANGLE/validationGL1.cpp",
"src/libANGLE/validationGL1_autogen.h",
"src/libANGLE/validationGL2.cpp",
"src/libANGLE/validationGL2_autogen.h",
"src/libANGLE/validationGL3.cpp",
"src/libANGLE/validationGL3_autogen.h",
"src/libANGLE/validationGL11.cpp",
"src/libANGLE/validationGL11_autogen.h",
"src/libANGLE/validationGL12.cpp",
"src/libANGLE/validationGL12_autogen.h",
"src/libANGLE/validationGL13.cpp",
"src/libANGLE/validationGL13_autogen.h",
"src/libANGLE/validationGL14.cpp",
"src/libANGLE/validationGL14_autogen.h",
"src/libANGLE/validationGL15.cpp",
"src/libANGLE/validationGL15_autogen.h",
"src/libANGLE/validationGL21.cpp",
"src/libANGLE/validationGL21_autogen.h",
"src/libANGLE/validationGL31.cpp",
"src/libANGLE/validationGL31_autogen.h",
"src/third_party/trace_event/trace_event.h",
]
......@@ -920,6 +951,43 @@ libangle_null_sources = [
"src/libANGLE/renderer/null/VertexArrayNULL.h",
]
opengl32_sources = [
"src/common/angleutils.h",
"src/common/debug.h",
"src/openGL32/entry_points_enum_autogen.h",
"src/openGL32/entry_points_gl_1_0_autogen.cpp",
"src/openGL32/entry_points_gl_1_0_autogen.h",
"src/openGL32/entry_points_gl_1_1_autogen.cpp",
"src/openGL32/entry_points_gl_1_1_autogen.h",
"src/openGL32/entry_points_gl_1_2_autogen.cpp",
"src/openGL32/entry_points_gl_1_2_autogen.h",
"src/openGL32/entry_points_gl_1_3_autogen.cpp",
"src/openGL32/entry_points_gl_1_3_autogen.h",
"src/openGL32/entry_points_gl_1_4_autogen.cpp",
"src/openGL32/entry_points_gl_1_4_autogen.h",
"src/openGL32/entry_points_gl_1_5_autogen.cpp",
"src/openGL32/entry_points_gl_1_5_autogen.h",
"src/openGL32/entry_points_gl_2_0_autogen.cpp",
"src/openGL32/entry_points_gl_2_0_autogen.h",
"src/openGL32/entry_points_gl_2_1_autogen.cpp",
"src/openGL32/entry_points_gl_2_1_autogen.h",
"src/openGL32/entry_points_gl_3_0_autogen.cpp",
"src/openGL32/entry_points_gl_3_0_autogen.h",
"src/openGL32/entry_points_gl_3_1_autogen.cpp",
"src/openGL32/entry_points_gl_3_1_autogen.h",
"src/openGL32/entry_points_utils.h",
"src/libGLESv2/global_state.cpp",
"src/libGLESv2/global_state.h",
"src/openGL32/openGL32_autogen.cpp",
"src/openGL32/openGL32_autogen.def",
"src/openGL32/entry_points_wgl.cpp",
"src/openGL32/entry_points_wgl.h",
"src/openGL32/openGL32.rc",
"src/openGL32/proc_table_wgl.h",
"src/openGL32/proc_table_wgl_autogen.cpp",
"src/openGL32/resource.h",
]
libglesv2_sources = [
"src/common/angleutils.h",
"src/common/debug.h",
......@@ -943,8 +1011,8 @@ libglesv2_sources = [
"src/libGLESv2/global_state.h",
"src/libGLESv2/libGLESv2_autogen.cpp",
"src/libGLESv2/libGLESv2.rc",
"src/libGLESv2/proc_table.h",
"src/libGLESv2/proc_table_autogen.cpp",
"src/libGLESv2/proc_table_egl.h",
"src/libGLESv2/proc_table_egl_autogen.cpp",
"src/libGLESv2/resource.h",
]
......
......@@ -20,7 +20,7 @@
#include "libANGLE/queryutils.h"
#include "libANGLE/validationEGL.h"
#include "libGLESv2/global_state.h"
#include "libGLESv2/proc_table.h"
#include "libGLESv2/proc_table_egl.h"
using namespace egl;
......@@ -830,8 +830,8 @@ EGLSync EGLAPIENTRY EGL_CreateSync(EGLDisplay dpy, EGLenum type, const EGLAttrib
", EGLenum type = 0x%X, const EGLint* attrib_list = 0x%016" PRIxPTR ")",
(uintptr_t)dpy, type, (uintptr_t)attrib_list);
Thread *thread = egl::GetCurrentThread();
egl::Display *display = static_cast<egl::Display *>(dpy);
Thread *thread = egl::GetCurrentThread();
egl::Display *display = static_cast<egl::Display *>(dpy);
AttributeMap attributes = AttributeMap::CreateFromAttribArray(attrib_list);
gl::Context *currentContext = thread->getContext();
......@@ -884,7 +884,7 @@ EGLint EGLAPIENTRY EGL_ClientWaitSync(EGLDisplay dpy, EGLSync sync, EGLint flags
"eglClientWaitSync", GetDisplayIfValid(display), EGL_FALSE);
gl::Context *currentContext = thread->getContext();
EGLint syncStatus = EGL_FALSE;
EGLint syncStatus = EGL_FALSE;
ANGLE_EGL_TRY_RETURN(
thread, syncObject->clientWait(display, currentContext, flags, timeout, &syncStatus),
"eglClientWaitSync", GetDisplayIfValid(display), EGL_FALSE);
......@@ -932,9 +932,9 @@ EGLImage EGLAPIENTRY EGL_CreateImage(EGLDisplay dpy,
"EGLClientBuffer buffer = 0x%016" PRIxPTR
", const EGLAttrib *attrib_list = 0x%016" PRIxPTR ")",
(uintptr_t)dpy, (uintptr_t)ctx, target, (uintptr_t)buffer, (uintptr_t)attrib_list);
Thread *thread = egl::GetCurrentThread();
Thread *thread = egl::GetCurrentThread();
egl::Display *display = static_cast<egl::Display *>(dpy);
egl::Display *display = static_cast<egl::Display *>(dpy);
gl::Context *context = static_cast<gl::Context *>(ctx);
AttributeMap attributes = AttributeMap::CreateFromIntArray((const EGLint *)attrib_list);
......
This source diff could not be displayed because it is too large. You can view the blob instead.
// 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.
//
// entry_points_gl_1_1_autogen.h:
// Defines the GL 1.1 entry points.
#ifndef OPENGL32_ENTRY_POINTS_GL_1_1_AUTOGEN_H_
#define OPENGL32_ENTRY_POINTS_GL_1_1_AUTOGEN_H_
#include <export.h>
#include "angle_gl.h"
#include "WGL/wgl.h"
#include "windows.h"
namespace gl
{
ANGLE_EXPORT GLboolean GL_APIENTRY AreTexturesResident(GLsizei n,
const GLuint *textures,
GLboolean *residences);
ANGLE_EXPORT void GL_APIENTRY ArrayElement(GLint i);
ANGLE_EXPORT void GL_APIENTRY BindTexture(GLenum target, GLuint texture);
ANGLE_EXPORT void GL_APIENTRY ColorPointer(GLint size,
GLenum type,
GLsizei stride,
const void *pointer);
ANGLE_EXPORT void GL_APIENTRY CopyTexImage1D(GLenum target,
GLint level,
GLenum internalformat,
GLint x,
GLint y,
GLsizei width,
GLint border);
ANGLE_EXPORT void GL_APIENTRY CopyTexImage2D(GLenum target,
GLint level,
GLenum internalformat,
GLint x,
GLint y,
GLsizei width,
GLsizei height,
GLint border);
ANGLE_EXPORT void GL_APIENTRY
CopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
ANGLE_EXPORT void GL_APIENTRY CopyTexSubImage2D(GLenum target,
GLint level,
GLint xoffset,
GLint yoffset,
GLint x,
GLint y,
GLsizei width,
GLsizei height);
ANGLE_EXPORT void GL_APIENTRY DeleteTextures(GLsizei n, const GLuint *textures);
ANGLE_EXPORT void GL_APIENTRY DisableClientState(GLenum array);
ANGLE_EXPORT void GL_APIENTRY DrawArrays(GLenum mode, GLint first, GLsizei count);
ANGLE_EXPORT void GL_APIENTRY DrawElements(GLenum mode,
GLsizei count,
GLenum type,
const void *indices);
ANGLE_EXPORT void GL_APIENTRY EdgeFlagPointer(GLsizei stride, const void *pointer);
ANGLE_EXPORT void GL_APIENTRY EnableClientState(GLenum array);
ANGLE_EXPORT void GL_APIENTRY GenTextures(GLsizei n, GLuint *textures);
ANGLE_EXPORT void GL_APIENTRY GetPointerv(GLenum pname, void **params);
ANGLE_EXPORT void GL_APIENTRY IndexPointer(GLenum type, GLsizei stride, const void *pointer);
ANGLE_EXPORT void GL_APIENTRY Indexub(GLubyte c);
ANGLE_EXPORT void GL_APIENTRY Indexubv(const GLubyte *c);
ANGLE_EXPORT void GL_APIENTRY InterleavedArrays(GLenum format, GLsizei stride, const void *pointer);
ANGLE_EXPORT GLboolean GL_APIENTRY IsTexture(GLuint texture);
ANGLE_EXPORT void GL_APIENTRY NormalPointer(GLenum type, GLsizei stride, const void *pointer);
ANGLE_EXPORT void GL_APIENTRY PolygonOffset(GLfloat factor, GLfloat units);
ANGLE_EXPORT void GL_APIENTRY PopClientAttrib();
ANGLE_EXPORT void GL_APIENTRY PrioritizeTextures(GLsizei n,
const GLuint *textures,
const GLfloat *priorities);
ANGLE_EXPORT void GL_APIENTRY PushClientAttrib(GLbitfield mask);
ANGLE_EXPORT void GL_APIENTRY TexCoordPointer(GLint size,
GLenum type,
GLsizei stride,
const void *pointer);
ANGLE_EXPORT void GL_APIENTRY TexSubImage1D(GLenum target,
GLint level,
GLint xoffset,
GLsizei width,
GLenum format,
GLenum type,
const void *pixels);
ANGLE_EXPORT void GL_APIENTRY TexSubImage2D(GLenum target,
GLint level,
GLint xoffset,
GLint yoffset,
GLsizei width,
GLsizei height,
GLenum format,
GLenum type,
const void *pixels);
ANGLE_EXPORT void GL_APIENTRY VertexPointer(GLint size,
GLenum type,
GLsizei stride,
const void *pointer);
} // namespace gl
#endif // OPENGL32_ENTRY_POINTS_GL_1_1_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.
//
// entry_points_gl_1_2_autogen.cpp:
// Defines the GL 1.2 entry points.
#include "openGL32/entry_points_gl_1_2_autogen.h"
#include "libANGLE/Context.h"
#include "libANGLE/Context.inl.h"
#include "libANGLE/validationEGL.h"
#include "libANGLE/validationES.h"
#include "libANGLE/validationES1.h"
#include "libANGLE/validationES2.h"
#include "libANGLE/validationES3.h"
#include "libANGLE/validationES31.h"
#include "libANGLE/validationESEXT.h"
#include "libANGLE/validationGL12_autogen.h"
#include "libGLESv2/global_state.h"
#include "openGL32/entry_points_utils.h"
namespace gl
{
void GL_APIENTRY CopyTexSubImage3D(GLenum target,
GLint level,
GLint xoffset,
GLint yoffset,
GLint zoffset,
GLint x,
GLint y,
GLsizei width,
GLsizei height)
{
EVENT(
"(GLenum target = 0x%X, GLint level = %d, GLint xoffset = %d, GLint yoffset = %d, GLint "
"zoffset = %d, GLint x = %d, GLint y = %d, GLsizei width = %d, GLsizei height = %d)",
target, level, xoffset, yoffset, zoffset, x, y, width, height);
Context *context = GetValidGlobalContext();
if (context)
{
TextureTarget targetPacked = FromGLenum<TextureTarget>(target);
if (context->skipValidation() ||
ValidateCopyTexSubImage3D(context, targetPacked, level, xoffset, yoffset, zoffset, x, y,
width, height))
{
context->copyTexSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, x, y, width,
height);
}
}
}
void GL_APIENTRY DrawRangeElements(GLenum mode,
GLuint start,
GLuint end,
GLsizei count,
GLenum type,
const void *indices)
{
EVENT(
"(GLenum mode = 0x%X, GLuint start = %u, GLuint end = %u, GLsizei count = %d, GLenum type "
"= 0x%X, const void *indices = 0x%016" PRIxPTR ")",
mode, start, end, count, type, (uintptr_t)indices);
Context *context = GetValidGlobalContext();
if (context)
{
PrimitiveMode modePacked = FromGLenum<PrimitiveMode>(mode);
DrawElementsType typePacked = FromGLenum<DrawElementsType>(type);
if (context->skipValidation() ||
ValidateDrawRangeElements(context, modePacked, start, end, count, typePacked, indices))
{
context->drawRangeElements(modePacked, start, end, count, typePacked, indices);
}
}
}
void GL_APIENTRY TexImage3D(GLenum target,
GLint level,
GLint internalformat,
GLsizei width,
GLsizei height,
GLsizei depth,
GLint border,
GLenum format,
GLenum type,
const void *pixels)
{
EVENT(
"(GLenum target = 0x%X, GLint level = %d, GLint internalformat = %d, GLsizei width = %d, "
"GLsizei height = %d, GLsizei depth = %d, GLint border = %d, GLenum format = 0x%X, GLenum "
"type = 0x%X, const void *pixels = 0x%016" PRIxPTR ")",
target, level, internalformat, width, height, depth, border, format, type,
(uintptr_t)pixels);
Context *context = GetValidGlobalContext();
if (context)
{
TextureTarget targetPacked = FromGLenum<TextureTarget>(target);
if (context->skipValidation() ||
ValidateTexImage3D(context, targetPacked, level, internalformat, width, height, depth,
border, format, type, pixels))
{
context->texImage3D(targetPacked, level, internalformat, width, height, depth, border,
format, type, pixels);
}
}
}
void GL_APIENTRY TexSubImage3D(GLenum target,
GLint level,
GLint xoffset,
GLint yoffset,
GLint zoffset,
GLsizei width,
GLsizei height,
GLsizei depth,
GLenum format,
GLenum type,
const void *pixels)
{
EVENT(
"(GLenum target = 0x%X, GLint level = %d, GLint xoffset = %d, GLint yoffset = %d, GLint "
"zoffset = %d, GLsizei width = %d, GLsizei height = %d, GLsizei depth = %d, GLenum format "
"= 0x%X, GLenum type = 0x%X, const void *pixels = 0x%016" PRIxPTR ")",
target, level, xoffset, yoffset, zoffset, width, height, depth, format, type,
(uintptr_t)pixels);
Context *context = GetValidGlobalContext();
if (context)
{
TextureTarget targetPacked = FromGLenum<TextureTarget>(target);
if (context->skipValidation() ||
ValidateTexSubImage3D(context, targetPacked, level, xoffset, yoffset, zoffset, width,
height, depth, format, type, pixels))
{
context->texSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, width, height,
depth, format, type, pixels);
}
}
}
} // namespace gl
// 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.
//
// entry_points_gl_1_2_autogen.h:
// Defines the GL 1.2 entry points.
#ifndef OPENGL32_ENTRY_POINTS_GL_1_2_AUTOGEN_H_
#define OPENGL32_ENTRY_POINTS_GL_1_2_AUTOGEN_H_
#include <export.h>
#include "angle_gl.h"
#include "WGL/wgl.h"
#include "windows.h"
namespace gl
{
ANGLE_EXPORT void GL_APIENTRY CopyTexSubImage3D(GLenum target,
GLint level,
GLint xoffset,
GLint yoffset,
GLint zoffset,
GLint x,
GLint y,
GLsizei width,
GLsizei height);
ANGLE_EXPORT void GL_APIENTRY DrawRangeElements(GLenum mode,
GLuint start,
GLuint end,
GLsizei count,
GLenum type,
const void *indices);
ANGLE_EXPORT void GL_APIENTRY TexImage3D(GLenum target,
GLint level,
GLint internalformat,
GLsizei width,
GLsizei height,
GLsizei depth,
GLint border,
GLenum format,
GLenum type,
const void *pixels);
ANGLE_EXPORT void GL_APIENTRY TexSubImage3D(GLenum target,
GLint level,
GLint xoffset,
GLint yoffset,
GLint zoffset,
GLsizei width,
GLsizei height,
GLsizei depth,
GLenum format,
GLenum type,
const void *pixels);
} // namespace gl
#endif // OPENGL32_ENTRY_POINTS_GL_1_2_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.
//
// entry_points_gl_1_3_autogen.h:
// Defines the GL 1.3 entry points.
#ifndef OPENGL32_ENTRY_POINTS_GL_1_3_AUTOGEN_H_
#define OPENGL32_ENTRY_POINTS_GL_1_3_AUTOGEN_H_
#include <export.h>
#include "angle_gl.h"
#include "WGL/wgl.h"
#include "windows.h"
namespace gl
{
ANGLE_EXPORT void GL_APIENTRY ActiveTexture(GLenum texture);
ANGLE_EXPORT void GL_APIENTRY ClientActiveTexture(GLenum texture);
ANGLE_EXPORT void GL_APIENTRY CompressedTexImage1D(GLenum target,
GLint level,
GLenum internalformat,
GLsizei width,
GLint border,
GLsizei imageSize,
const void *data);
ANGLE_EXPORT void GL_APIENTRY CompressedTexImage2D(GLenum target,
GLint level,
GLenum internalformat,
GLsizei width,
GLsizei height,
GLint border,
GLsizei imageSize,
const void *data);
ANGLE_EXPORT void GL_APIENTRY CompressedTexImage3D(GLenum target,
GLint level,
GLenum internalformat,
GLsizei width,
GLsizei height,
GLsizei depth,
GLint border,
GLsizei imageSize,
const void *data);
ANGLE_EXPORT void GL_APIENTRY CompressedTexSubImage1D(GLenum target,
GLint level,
GLint xoffset,
GLsizei width,
GLenum format,
GLsizei imageSize,
const void *data);
ANGLE_EXPORT void GL_APIENTRY CompressedTexSubImage2D(GLenum target,
GLint level,
GLint xoffset,
GLint yoffset,
GLsizei width,
GLsizei height,
GLenum format,
GLsizei imageSize,
const void *data);
ANGLE_EXPORT void GL_APIENTRY CompressedTexSubImage3D(GLenum target,
GLint level,
GLint xoffset,
GLint yoffset,
GLint zoffset,
GLsizei width,
GLsizei height,
GLsizei depth,
GLenum format,
GLsizei imageSize,
const void *data);
ANGLE_EXPORT void GL_APIENTRY GetCompressedTexImage(GLenum target, GLint level, void *img);
ANGLE_EXPORT void GL_APIENTRY LoadTransposeMatrixd(const GLdouble *m);
ANGLE_EXPORT void GL_APIENTRY LoadTransposeMatrixf(const GLfloat *m);
ANGLE_EXPORT void GL_APIENTRY MultTransposeMatrixd(const GLdouble *m);
ANGLE_EXPORT void GL_APIENTRY MultTransposeMatrixf(const GLfloat *m);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord1d(GLenum target, GLdouble s);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord1dv(GLenum target, const GLdouble *v);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord1f(GLenum target, GLfloat s);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord1fv(GLenum target, const GLfloat *v);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord1i(GLenum target, GLint s);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord1iv(GLenum target, const GLint *v);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord1s(GLenum target, GLshort s);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord1sv(GLenum target, const GLshort *v);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord2d(GLenum target, GLdouble s, GLdouble t);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord2dv(GLenum target, const GLdouble *v);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord2f(GLenum target, GLfloat s, GLfloat t);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord2fv(GLenum target, const GLfloat *v);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord2i(GLenum target, GLint s, GLint t);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord2iv(GLenum target, const GLint *v);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord2s(GLenum target, GLshort s, GLshort t);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord2sv(GLenum target, const GLshort *v);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord3d(GLenum target, GLdouble s, GLdouble t, GLdouble r);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord3dv(GLenum target, const GLdouble *v);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord3f(GLenum target, GLfloat s, GLfloat t, GLfloat r);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord3fv(GLenum target, const GLfloat *v);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord3i(GLenum target, GLint s, GLint t, GLint r);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord3iv(GLenum target, const GLint *v);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord3s(GLenum target, GLshort s, GLshort t, GLshort r);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord3sv(GLenum target, const GLshort *v);
ANGLE_EXPORT void GL_APIENTRY
MultiTexCoord4d(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord4dv(GLenum target, const GLdouble *v);
ANGLE_EXPORT void GL_APIENTRY
MultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord4fv(GLenum target, const GLfloat *v);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord4i(GLenum target, GLint s, GLint t, GLint r, GLint q);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord4iv(GLenum target, const GLint *v);
ANGLE_EXPORT void GL_APIENTRY
MultiTexCoord4s(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
ANGLE_EXPORT void GL_APIENTRY MultiTexCoord4sv(GLenum target, const GLshort *v);
ANGLE_EXPORT void GL_APIENTRY SampleCoverage(GLfloat value, GLboolean invert);
} // namespace gl
#endif // OPENGL32_ENTRY_POINTS_GL_1_3_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.
//
// entry_points_gl_1_4_autogen.h:
// Defines the GL 1.4 entry points.
#ifndef OPENGL32_ENTRY_POINTS_GL_1_4_AUTOGEN_H_
#define OPENGL32_ENTRY_POINTS_GL_1_4_AUTOGEN_H_
#include <export.h>
#include "angle_gl.h"
#include "WGL/wgl.h"
#include "windows.h"
namespace gl
{
ANGLE_EXPORT void GL_APIENTRY BlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
ANGLE_EXPORT void GL_APIENTRY BlendEquation(GLenum mode);
ANGLE_EXPORT void GL_APIENTRY BlendFuncSeparate(GLenum sfactorRGB,
GLenum dfactorRGB,
GLenum sfactorAlpha,
GLenum dfactorAlpha);
ANGLE_EXPORT void GL_APIENTRY FogCoordPointer(GLenum type, GLsizei stride, const void *pointer);
ANGLE_EXPORT void GL_APIENTRY FogCoordd(GLdouble coord);
ANGLE_EXPORT void GL_APIENTRY FogCoorddv(const GLdouble *coord);
ANGLE_EXPORT void GL_APIENTRY FogCoordf(GLfloat coord);
ANGLE_EXPORT void GL_APIENTRY FogCoordfv(const GLfloat *coord);
ANGLE_EXPORT void GL_APIENTRY MultiDrawArrays(GLenum mode,
const GLint *first,
const GLsizei *count,
GLsizei drawcount);
ANGLE_EXPORT void GL_APIENTRY MultiDrawElements(GLenum mode,
const GLsizei *count,
GLenum type,
const void *const *indices,
GLsizei drawcount);
ANGLE_EXPORT void GL_APIENTRY PointParameterf(GLenum pname, GLfloat param);
ANGLE_EXPORT void GL_APIENTRY PointParameterfv(GLenum pname, const GLfloat *params);
ANGLE_EXPORT void GL_APIENTRY PointParameteri(GLenum pname, GLint param);
ANGLE_EXPORT void GL_APIENTRY PointParameteriv(GLenum pname, const GLint *params);
ANGLE_EXPORT void GL_APIENTRY SecondaryColor3b(GLbyte red, GLbyte green, GLbyte blue);
ANGLE_EXPORT void GL_APIENTRY SecondaryColor3bv(const GLbyte *v);
ANGLE_EXPORT void GL_APIENTRY SecondaryColor3d(GLdouble red, GLdouble green, GLdouble blue);
ANGLE_EXPORT void GL_APIENTRY SecondaryColor3dv(const GLdouble *v);
ANGLE_EXPORT void GL_APIENTRY SecondaryColor3f(GLfloat red, GLfloat green, GLfloat blue);
ANGLE_EXPORT void GL_APIENTRY SecondaryColor3fv(const GLfloat *v);
ANGLE_EXPORT void GL_APIENTRY SecondaryColor3i(GLint red, GLint green, GLint blue);
ANGLE_EXPORT void GL_APIENTRY SecondaryColor3iv(const GLint *v);
ANGLE_EXPORT void GL_APIENTRY SecondaryColor3s(GLshort red, GLshort green, GLshort blue);
ANGLE_EXPORT void GL_APIENTRY SecondaryColor3sv(const GLshort *v);
ANGLE_EXPORT void GL_APIENTRY SecondaryColor3ub(GLubyte red, GLubyte green, GLubyte blue);
ANGLE_EXPORT void GL_APIENTRY SecondaryColor3ubv(const GLubyte *v);
ANGLE_EXPORT void GL_APIENTRY SecondaryColor3ui(GLuint red, GLuint green, GLuint blue);
ANGLE_EXPORT void GL_APIENTRY SecondaryColor3uiv(const GLuint *v);
ANGLE_EXPORT void GL_APIENTRY SecondaryColor3us(GLushort red, GLushort green, GLushort blue);
ANGLE_EXPORT void GL_APIENTRY SecondaryColor3usv(const GLushort *v);
ANGLE_EXPORT void GL_APIENTRY SecondaryColorPointer(GLint size,
GLenum type,
GLsizei stride,
const void *pointer);
ANGLE_EXPORT void GL_APIENTRY WindowPos2d(GLdouble x, GLdouble y);
ANGLE_EXPORT void GL_APIENTRY WindowPos2dv(const GLdouble *v);
ANGLE_EXPORT void GL_APIENTRY WindowPos2f(GLfloat x, GLfloat y);
ANGLE_EXPORT void GL_APIENTRY WindowPos2fv(const GLfloat *v);
ANGLE_EXPORT void GL_APIENTRY WindowPos2i(GLint x, GLint y);
ANGLE_EXPORT void GL_APIENTRY WindowPos2iv(const GLint *v);
ANGLE_EXPORT void GL_APIENTRY WindowPos2s(GLshort x, GLshort y);
ANGLE_EXPORT void GL_APIENTRY WindowPos2sv(const GLshort *v);
ANGLE_EXPORT void GL_APIENTRY WindowPos3d(GLdouble x, GLdouble y, GLdouble z);
ANGLE_EXPORT void GL_APIENTRY WindowPos3dv(const GLdouble *v);
ANGLE_EXPORT void GL_APIENTRY WindowPos3f(GLfloat x, GLfloat y, GLfloat z);
ANGLE_EXPORT void GL_APIENTRY WindowPos3fv(const GLfloat *v);
ANGLE_EXPORT void GL_APIENTRY WindowPos3i(GLint x, GLint y, GLint z);
ANGLE_EXPORT void GL_APIENTRY WindowPos3iv(const GLint *v);
ANGLE_EXPORT void GL_APIENTRY WindowPos3s(GLshort x, GLshort y, GLshort z);
ANGLE_EXPORT void GL_APIENTRY WindowPos3sv(const GLshort *v);
} // namespace gl
#endif // OPENGL32_ENTRY_POINTS_GL_1_4_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.
//
// entry_points_gl_1_5_autogen.h:
// Defines the GL 1.5 entry points.
#ifndef OPENGL32_ENTRY_POINTS_GL_1_5_AUTOGEN_H_
#define OPENGL32_ENTRY_POINTS_GL_1_5_AUTOGEN_H_
#include <export.h>
#include "angle_gl.h"
#include "WGL/wgl.h"
#include "windows.h"
namespace gl
{
ANGLE_EXPORT void GL_APIENTRY BeginQuery(GLenum target, GLuint id);
ANGLE_EXPORT void GL_APIENTRY BindBuffer(GLenum target, GLuint buffer);
ANGLE_EXPORT void GL_APIENTRY BufferData(GLenum target,
GLsizeiptr size,
const void *data,
GLenum usage);
ANGLE_EXPORT void GL_APIENTRY BufferSubData(GLenum target,
GLintptr offset,
GLsizeiptr size,
const void *data);
ANGLE_EXPORT void GL_APIENTRY DeleteBuffers(GLsizei n, const GLuint *buffers);
ANGLE_EXPORT void GL_APIENTRY DeleteQueries(GLsizei n, const GLuint *ids);
ANGLE_EXPORT void GL_APIENTRY EndQuery(GLenum target);
ANGLE_EXPORT void GL_APIENTRY GenBuffers(GLsizei n, GLuint *buffers);
ANGLE_EXPORT void GL_APIENTRY GenQueries(GLsizei n, GLuint *ids);
ANGLE_EXPORT void GL_APIENTRY GetBufferParameteriv(GLenum target, GLenum pname, GLint *params);
ANGLE_EXPORT void GL_APIENTRY GetBufferPointerv(GLenum target, GLenum pname, void **params);
ANGLE_EXPORT void GL_APIENTRY GetBufferSubData(GLenum target,
GLintptr offset,
GLsizeiptr size,
void *data);
ANGLE_EXPORT void GL_APIENTRY GetQueryObjectiv(GLuint id, GLenum pname, GLint *params);
ANGLE_EXPORT void GL_APIENTRY GetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params);
ANGLE_EXPORT void GL_APIENTRY GetQueryiv(GLenum target, GLenum pname, GLint *params);
ANGLE_EXPORT GLboolean GL_APIENTRY IsBuffer(GLuint buffer);
ANGLE_EXPORT GLboolean GL_APIENTRY IsQuery(GLuint id);
ANGLE_EXPORT void *GL_APIENTRY MapBuffer(GLenum target, GLenum access);
ANGLE_EXPORT GLboolean GL_APIENTRY UnmapBuffer(GLenum target);
} // namespace gl
#endif // OPENGL32_ENTRY_POINTS_GL_1_5_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.
//
// entry_points_gl_2_1_autogen.cpp:
// Defines the GL 2.1 entry points.
#include "openGL32/entry_points_gl_2_1_autogen.h"
#include "libANGLE/Context.h"
#include "libANGLE/Context.inl.h"
#include "libANGLE/validationEGL.h"
#include "libANGLE/validationES.h"
#include "libANGLE/validationES1.h"
#include "libANGLE/validationES2.h"
#include "libANGLE/validationES3.h"
#include "libANGLE/validationES31.h"
#include "libANGLE/validationESEXT.h"
#include "libANGLE/validationGL21_autogen.h"
#include "libGLESv2/global_state.h"
#include "openGL32/entry_points_utils.h"
namespace gl
{
void GL_APIENTRY UniformMatrix2x3fv(GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value)
{
EVENT(
"(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat *value "
"= 0x%016" PRIxPTR ")",
location, count, transpose, (uintptr_t)value);
Context *context = GetValidGlobalContext();
if (context)
{
if (context->skipValidation() ||
ValidateUniformMatrix2x3fv(context, location, count, transpose, value))
{
context->uniformMatrix2x3fv(location, count, transpose, value);
}
}
}
void GL_APIENTRY UniformMatrix2x4fv(GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value)
{
EVENT(
"(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat *value "
"= 0x%016" PRIxPTR ")",
location, count, transpose, (uintptr_t)value);
Context *context = GetValidGlobalContext();
if (context)
{
if (context->skipValidation() ||
ValidateUniformMatrix2x4fv(context, location, count, transpose, value))
{
context->uniformMatrix2x4fv(location, count, transpose, value);
}
}
}
void GL_APIENTRY UniformMatrix3x2fv(GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value)
{
EVENT(
"(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat *value "
"= 0x%016" PRIxPTR ")",
location, count, transpose, (uintptr_t)value);
Context *context = GetValidGlobalContext();
if (context)
{
if (context->skipValidation() ||
ValidateUniformMatrix3x2fv(context, location, count, transpose, value))
{
context->uniformMatrix3x2fv(location, count, transpose, value);
}
}
}
void GL_APIENTRY UniformMatrix3x4fv(GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value)
{
EVENT(
"(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat *value "
"= 0x%016" PRIxPTR ")",
location, count, transpose, (uintptr_t)value);
Context *context = GetValidGlobalContext();
if (context)
{
if (context->skipValidation() ||
ValidateUniformMatrix3x4fv(context, location, count, transpose, value))
{
context->uniformMatrix3x4fv(location, count, transpose, value);
}
}
}
void GL_APIENTRY UniformMatrix4x2fv(GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value)
{
EVENT(
"(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat *value "
"= 0x%016" PRIxPTR ")",
location, count, transpose, (uintptr_t)value);
Context *context = GetValidGlobalContext();
if (context)
{
if (context->skipValidation() ||
ValidateUniformMatrix4x2fv(context, location, count, transpose, value))
{
context->uniformMatrix4x2fv(location, count, transpose, value);
}
}
}
void GL_APIENTRY UniformMatrix4x3fv(GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value)
{
EVENT(
"(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat *value "
"= 0x%016" PRIxPTR ")",
location, count, transpose, (uintptr_t)value);
Context *context = GetValidGlobalContext();
if (context)
{
if (context->skipValidation() ||
ValidateUniformMatrix4x3fv(context, location, count, transpose, value))
{
context->uniformMatrix4x3fv(location, count, transpose, value);
}
}
}
} // namespace gl
// 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.
//
// entry_points_gl_2_1_autogen.h:
// Defines the GL 2.1 entry points.
#ifndef OPENGL32_ENTRY_POINTS_GL_2_1_AUTOGEN_H_
#define OPENGL32_ENTRY_POINTS_GL_2_1_AUTOGEN_H_
#include <export.h>
#include "angle_gl.h"
#include "WGL/wgl.h"
#include "windows.h"
namespace gl
{
ANGLE_EXPORT void GL_APIENTRY UniformMatrix2x3fv(GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY UniformMatrix2x4fv(GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY UniformMatrix3x2fv(GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY UniformMatrix3x4fv(GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY UniformMatrix4x2fv(GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY UniformMatrix4x3fv(GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value);
} // namespace gl
#endif // OPENGL32_ENTRY_POINTS_GL_2_1_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.
//
// entry_points_gl_3_1_autogen.h:
// Defines the GL 3.1 entry points.
#ifndef OPENGL32_ENTRY_POINTS_GL_3_1_AUTOGEN_H_
#define OPENGL32_ENTRY_POINTS_GL_3_1_AUTOGEN_H_
#include <export.h>
#include "angle_gl.h"
#include "WGL/wgl.h"
#include "windows.h"
namespace gl
{
ANGLE_EXPORT void GL_APIENTRY CopyBufferSubData(GLenum readTarget,
GLenum writeTarget,
GLintptr readOffset,
GLintptr writeOffset,
GLsizeiptr size);
ANGLE_EXPORT void GL_APIENTRY DrawArraysInstanced(GLenum mode,
GLint first,
GLsizei count,
GLsizei instancecount);
ANGLE_EXPORT void GL_APIENTRY DrawElementsInstanced(GLenum mode,
GLsizei count,
GLenum type,
const void *indices,
GLsizei instancecount);
ANGLE_EXPORT void GL_APIENTRY GetActiveUniformBlockName(GLuint program,
GLuint uniformBlockIndex,
GLsizei bufSize,
GLsizei *length,
GLchar *uniformBlockName);
ANGLE_EXPORT void GL_APIENTRY GetActiveUniformBlockiv(GLuint program,
GLuint uniformBlockIndex,
GLenum pname,
GLint *params);
ANGLE_EXPORT void GL_APIENTRY GetActiveUniformName(GLuint program,
GLuint uniformIndex,
GLsizei bufSize,
GLsizei *length,
GLchar *uniformName);
ANGLE_EXPORT void GL_APIENTRY GetActiveUniformsiv(GLuint program,
GLsizei uniformCount,
const GLuint *uniformIndices,
GLenum pname,
GLint *params);
ANGLE_EXPORT GLuint GL_APIENTRY GetUniformBlockIndex(GLuint program,
const GLchar *uniformBlockName);
ANGLE_EXPORT void GL_APIENTRY GetUniformIndices(GLuint program,
GLsizei uniformCount,
const GLchar *const *uniformNames,
GLuint *uniformIndices);
ANGLE_EXPORT void GL_APIENTRY PrimitiveRestartIndex(GLuint index);
ANGLE_EXPORT void GL_APIENTRY TexBuffer(GLenum target, GLenum internalformat, GLuint buffer);
ANGLE_EXPORT void GL_APIENTRY UniformBlockBinding(GLuint program,
GLuint uniformBlockIndex,
GLuint uniformBlockBinding);
} // namespace gl
#endif // OPENGL32_ENTRY_POINTS_GL_3_1_AUTOGEN_H_
//
// Copyright 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.
//
// entry_point_utils:
// These helpers are used in GL entry point routines.
#ifndef OPENGL32_ENTRY_POINT_UTILS_H_
#define OPENGL32_ENTRY_POINT_UTILS_H_
#include "angle_gl.h"
#include "common/Optional.h"
#include "common/PackedEnums.h"
#include "common/angleutils.h"
#include "common/mathutil.h"
#include "openGL32/entry_points_enum_autogen.h"
namespace gl
{
// A template struct for determining the default value to return for each entry point.
template <EntryPoint EP, typename ReturnType>
struct DefaultReturnValue;
// Default return values for each basic return type.
template <EntryPoint EP>
struct DefaultReturnValue<EP, GLint>
{
static constexpr GLint kValue = -1;
};
// This doubles as the GLenum return value.
template <EntryPoint EP>
struct DefaultReturnValue<EP, GLuint>
{
static constexpr GLuint kValue = 0;
};
template <EntryPoint EP>
struct DefaultReturnValue<EP, GLboolean>
{
static constexpr GLboolean kValue = GL_FALSE;
};
// Catch-all rules for pointer types.
template <EntryPoint EP, typename PointerType>
struct DefaultReturnValue<EP, const PointerType *>
{
static constexpr const PointerType *kValue = nullptr;
};
template <EntryPoint EP, typename PointerType>
struct DefaultReturnValue<EP, PointerType *>
{
static constexpr PointerType *kValue = nullptr;
};
// Overloaded to return invalid index
template <>
struct DefaultReturnValue<EntryPoint::GetUniformBlockIndex, GLuint>
{
static constexpr GLuint kValue = GL_INVALID_INDEX;
};
template <EntryPoint EP, typename ReturnType>
constexpr ANGLE_INLINE ReturnType GetDefaultReturnValue()
{
return DefaultReturnValue<EP, ReturnType>::kValue;
}
} // namespace gl
#endif // OPENGL32_ENTRY_POINT_UTILS_H_
//
// 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.
//
// entry_points_wgl.cpp: Implements the exported WGL functions.
#include "entry_points_wgl.h"
#include "common/debug.h"
#include "common/event_tracer.h"
#include "common/utilities.h"
#include "common/version.h"
#include "libANGLE/Context.h"
#include "libANGLE/Display.h"
#include "libANGLE/EGLSync.h"
#include "libANGLE/Surface.h"
#include "libANGLE/Texture.h"
#include "libANGLE/Thread.h"
#include "libANGLE/queryutils.h"
#include "libANGLE/validationEGL.h"
#include "libGLESv2/global_state.h"
#include "openGL32/proc_table_wgl.h"
using namespace wgl;
using namespace egl;
namespace
{
bool CompareProc(const ProcEntry &a, const char *b)
{
return strcmp(a.first, b) < 0;
}
void ClipConfigs(const std::vector<const Config *> &filteredConfigs,
EGLConfig *output_configs,
EGLint config_size,
EGLint *num_config)
{
EGLint result_size = static_cast<EGLint>(filteredConfigs.size());
if (output_configs)
{
result_size = std::max(std::min(result_size, config_size), 0);
for (EGLint i = 0; i < result_size; i++)
{
output_configs[i] = const_cast<Config *>(filteredConfigs[i]);
}
}
*num_config = result_size;
}
} // anonymous namespace
extern "C" {
// WGL 1.0
int GL_APIENTRY wglChoosePixelFormat(HDC hDc, const PIXELFORMATDESCRIPTOR *pPfd)
{
UNIMPLEMENTED();
return 1;
}
int GL_APIENTRY wglDescribePixelFormat(HDC hdc, int ipfd, UINT cjpfd, PIXELFORMATDESCRIPTOR *ppfd)
{
UNIMPLEMENTED();
if (ppfd)
{
ppfd->dwFlags = ppfd->dwFlags | PFD_DRAW_TO_WINDOW;
ppfd->dwFlags = ppfd->dwFlags | PFD_SUPPORT_OPENGL;
ppfd->dwFlags = ppfd->dwFlags | PFD_GENERIC_ACCELERATED;
ppfd->dwFlags = ppfd->dwFlags | PFD_DOUBLEBUFFER;
ppfd->iPixelType = PFD_TYPE_RGBA;
ppfd->cRedBits = 8;
ppfd->cGreenBits = 8;
ppfd->cBlueBits = 8;
ppfd->cAlphaBits = 8;
ppfd->cDepthBits = 24;
ppfd->cStencilBits = 8;
ppfd->nVersion = 3;
}
return 1;
}
UINT GL_APIENTRY wglGetEnhMetaFilePixelFormat(HENHMETAFILE hemf,
UINT cbBuffer,
PIXELFORMATDESCRIPTOR *ppfd)
{
UNIMPLEMENTED();
return 1u;
}
int GL_APIENTRY wglGetPixelFormat(HDC hdc)
{
UNIMPLEMENTED();
return 1;
}
BOOL GL_APIENTRY wglSetPixelFormat(HDC hdc, int ipfd, const PIXELFORMATDESCRIPTOR *ppfd)
{
UNIMPLEMENTED();
return TRUE;
}
BOOL GL_APIENTRY wglSwapBuffers(HDC hdc)
{
UNIMPLEMENTED();
return TRUE;
}
BOOL GL_APIENTRY wglCopyContext(HGLRC hglrcSrc, HGLRC hglrcDst, UINT mask)
{
UNIMPLEMENTED();
return TRUE;
}
HGLRC GL_APIENTRY wglCreateContext(HDC hDc)
{
GLenum platformType = EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE;
std::vector<EGLint> displayAttributes;
displayAttributes.push_back(EGL_PLATFORM_ANGLE_TYPE_ANGLE);
displayAttributes.push_back(platformType);
displayAttributes.push_back(EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE);
displayAttributes.push_back(EGL_DONT_CARE);
displayAttributes.push_back(EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE);
displayAttributes.push_back(EGL_DONT_CARE);
displayAttributes.push_back(EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE);
displayAttributes.push_back(EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE);
displayAttributes.push_back(EGL_NONE);
const auto &attribMapDisplay =
AttributeMap::CreateFromAttribArray((const EGLAttrib *)&displayAttributes[0]);
EGLDisplay mDisplay = egl::Display::GetDisplayFromNativeDisplay(hDc, attribMapDisplay);
egl::Display *display = static_cast<egl::Display *>(mDisplay);
auto error = display->initialize();
// Don't have a thread to bind API to, so just use this API
// eglBindAPI(EGL_OPENGL_ES_API);
// Default config
const EGLint configAttributes[] = {EGL_RED_SIZE,
EGL_DONT_CARE,
EGL_GREEN_SIZE,
EGL_DONT_CARE,
EGL_BLUE_SIZE,
EGL_DONT_CARE,
EGL_ALPHA_SIZE,
EGL_DONT_CARE,
EGL_DEPTH_SIZE,
EGL_DONT_CARE,
EGL_STENCIL_SIZE,
EGL_DONT_CARE,
EGL_SAMPLE_BUFFERS,
0,
EGL_NONE};
// Choose config
EGLint configCount;
EGLConfig mConfig;
AttributeMap attribMapConfig = AttributeMap::CreateFromIntArray(configAttributes);
ClipConfigs(display->chooseConfig(attribMapConfig), &mConfig, 1, &configCount);
// Initialize surface
std::vector<EGLint> surfaceAttributes;
surfaceAttributes.push_back(EGL_NONE);
surfaceAttributes.push_back(EGL_NONE);
// Create first window surface
// EGLSurface mWindowSurface = eglCreateWindowSurface(mDisplay, mConfig,
// (EGLNativeWindowType)hDc, &surfaceAttributes[0]);
// Initialize context
EGLint contextAttibutes[] = {EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE};
Config *configuration = static_cast<Config *>(mConfig);
gl::Context *sharedGLContext = static_cast<gl::Context *>(nullptr);
AttributeMap attributes = AttributeMap::CreateFromIntArray(contextAttibutes);
gl::Context *context = nullptr;
auto error1 = display->createContext(configuration, sharedGLContext, attributes, &context);
EGLContext mContext = static_cast<EGLContext>(context);
return (HGLRC)mContext;
}
HGLRC GL_APIENTRY wglCreateLayerContext(HDC hDc, int level)
{
UNIMPLEMENTED();
return nullptr;
}
BOOL GL_APIENTRY wglDeleteContext(HGLRC oldContext)
{
UNIMPLEMENTED();
return FALSE;
}
BOOL GL_APIENTRY wglDescribeLayerPlane(HDC hDc,
int pixelFormat,
int layerPlane,
UINT nBytes,
LAYERPLANEDESCRIPTOR *plpd)
{
UNIMPLEMENTED();
return FALSE;
}
HGLRC GL_APIENTRY wglGetCurrentContext()
{
UNIMPLEMENTED();
return nullptr;
}
HDC GL_APIENTRY wglGetCurrentDC()
{
UNIMPLEMENTED();
return nullptr;
}
int GL_APIENTRY
wglGetLayerPaletteEntries(HDC hdc, int iLayerPlane, int iStart, int cEntries, COLORREF *pcr)
{
UNIMPLEMENTED();
return 0;
}
PROC GL_APIENTRY wglGetProcAddress(LPCSTR lpszProc)
{
ANGLE_SCOPED_GLOBAL_LOCK();
EVENT("(const char *procname = \"%s\")", lpszProc);
egl::Thread *thread = egl::GetCurrentThread();
ProcEntry *entry =
std::lower_bound(&g_procTable[0], &g_procTable[g_numProcs], lpszProc, CompareProc);
thread->setSuccess();
if (entry == &g_procTable[g_numProcs] || strcmp(entry->first, lpszProc) != 0)
{
return nullptr;
}
return entry->second;
}
BOOL GL_APIENTRY wglMakeCurrent(HDC hDc, HGLRC newContext)
{
UNIMPLEMENTED();
return FALSE;
}
BOOL GL_APIENTRY wglRealizeLayerPalette(HDC hdc, int iLayerPlane, BOOL bRealize)
{
UNIMPLEMENTED();
return FALSE;
}
int GL_APIENTRY
wglSetLayerPaletteEntries(HDC hdc, int iLayerPlane, int iStart, int cEntries, const COLORREF *pcr)
{
UNIMPLEMENTED();
return 0;
}
BOOL GL_APIENTRY wglShareLists(HGLRC hrcSrvShare, HGLRC hrcSrvSource)
{
UNIMPLEMENTED();
return FALSE;
}
BOOL GL_APIENTRY wglSwapLayerBuffers(HDC hdc, UINT fuFlags)
{
UNIMPLEMENTED();
return FALSE;
}
BOOL GL_APIENTRY wglUseFontBitmapsA(HDC hDC, DWORD first, DWORD count, DWORD listBase)
{
UNIMPLEMENTED();
return FALSE;
}
BOOL GL_APIENTRY wglUseFontBitmapsW(HDC hDC, DWORD first, DWORD count, DWORD listBase)
{
UNIMPLEMENTED();
return FALSE;
}
BOOL GL_APIENTRY wglUseFontOutlinesA(HDC hDC,
DWORD first,
DWORD count,
DWORD listBase,
FLOAT deviation,
FLOAT extrusion,
int format,
LPGLYPHMETRICSFLOAT lpgmf)
{
UNIMPLEMENTED();
return FALSE;
}
BOOL GL_APIENTRY wglUseFontOutlinesW(HDC hDC,
DWORD first,
DWORD count,
DWORD listBase,
FLOAT deviation,
FLOAT extrusion,
int format,
LPGLYPHMETRICSFLOAT lpgmf)
{
UNIMPLEMENTED();
return FALSE;
}
} // extern "C"
//
// 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.
//
// entry_points_wgl.h: Declares the exported WGL functions.
#ifndef OPENGL32_WGL_H_
#define OPENGL32_WGL_H_
// Define _GDI32_ so that wingdi.h doesn't declare functions as imports
#ifndef _GDI32_
# define _GDI32_
#endif
#include <windows.h>
#include "angle_gl.h"
#include "WGL/wgl.h"
extern "C" {
// WGL 1.0
int GL_APIENTRY wglChoosePixelFormat(HDC hDc, const PIXELFORMATDESCRIPTOR *pPfd);
int GL_APIENTRY wglDescribePixelFormat(HDC hdc, int ipfd, UINT cjpfd, PIXELFORMATDESCRIPTOR *ppfd);
UINT GL_APIENTRY wglGetEnhMetaFilePixelFormat(HENHMETAFILE hemf,
UINT cbBuffer,
PIXELFORMATDESCRIPTOR *ppfd);
int GL_APIENTRY wglGetPixelFormat(HDC hdc);
BOOL GL_APIENTRY wglSetPixelFormat(HDC hdc, int ipfd, const PIXELFORMATDESCRIPTOR *ppfd);
BOOL GL_APIENTRY wglSwapBuffers(HDC hdc);
} // extern "C"
#endif // OPENGL32_WGL_H_
// 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 openGL32 Dynamic Link Library"
VALUE "FileVersion", ANGLE_VERSION_STRING
VALUE "InternalName", "openGL32"
VALUE "LegalCopyright", "Copyright (C) 2019 Google Inc."
VALUE "OriginalFilename", "openGL32.dll"
VALUE "PrivateBuild", ANGLE_VERSION_STRING
VALUE "ProductName", "ANGLE OpenGL32 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
//
// Copyright 2017 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// getProcAddress loader table:
// Mapping from a string entry point name to function address.
//
#ifndef OPENGL32_PROC_TABLE_H_
#define OPENGL32_PROC_TABLE_H_
// Define _GDI32_ so that wingdi.h doesn't declare functions as imports
#ifndef _GDI32_
# define _GDI32_
#endif
#include <angle_gl.h>
#include <WGL/wgl.h>
#include <stddef.h>
#include <utility>
namespace wgl
{
using ProcEntry = std::pair<const char *, PROC>;
extern wgl::ProcEntry g_procTable[];
extern size_t g_numProcs;
} // namespace wgl
#endif // OPENGL32_PROC_TABLE_H_
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by libGLESv2.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
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