Commit 868f5fa0 by Jamie Madill Committed by Commit Bot

Refactor return values from entry points.

For capture, we'd ideally like to know the return value of a function when we capture it. The first step will be to intercept the return value instead of returning directly. Bug: angleproject:3611 Change-Id: I68c21aea323a71c6a9f1be613862158a37e2beae Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1706560Reviewed-by: 's avatarTim Van Patten <timvp@google.com> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent e995d7fb
......@@ -6,7 +6,7 @@
"scripts/entry_point_packed_gl_enums.json":
"e5282bdef690f0ec652fed0e0723d1e8",
"scripts/generate_entry_points.py":
"0fe74a6996604cbcd0d1031930fbb4e5",
"19bd27c4c931f63ebbd9cc8f08508fe0",
"scripts/gl.xml":
"b470cb06b06cbbe7adb2c8129ec85708",
"scripts/gl_angle_ext.xml":
......@@ -138,11 +138,11 @@
"src/libANGLE/validationGL4_autogen.h":
"ebbde7f5154a4d1736330d1fc53b3af7",
"src/libGL/entry_points_gl_1_0_autogen.cpp":
"65efdf7fcf3d7b12f936db5c6c7f1c32",
"dcdd4bbdce1df4acb557e1f1a2c823e4",
"src/libGL/entry_points_gl_1_0_autogen.h":
"a2372719bd7fbc4a6b070ecae7d9247a",
"src/libGL/entry_points_gl_1_1_autogen.cpp":
"7b3230b667a6ff00933f58223d958f89",
"329dcb04aa96b22bca411aa3f09afe65",
"src/libGL/entry_points_gl_1_1_autogen.h":
"29ff203c0d402f78d020525a5e5ee447",
"src/libGL/entry_points_gl_1_2_autogen.cpp":
......@@ -158,11 +158,11 @@
"src/libGL/entry_points_gl_1_4_autogen.h":
"6f3dcfd98c18cd53f32e61ee01eabad6",
"src/libGL/entry_points_gl_1_5_autogen.cpp":
"d5964ecec41afd6a0da980e1aedf9abd",
"449488e01b02f47d6c3201d7fb83135e",
"src/libGL/entry_points_gl_1_5_autogen.h":
"8caacff247caecb833b065afaf6e90ef",
"src/libGL/entry_points_gl_2_0_autogen.cpp":
"73a6c7a872080b6c0b056159e9bcfcc0",
"2e030c84c5641132148ccc6a14f610d6",
"src/libGL/entry_points_gl_2_0_autogen.h":
"f0f58f83717148d58b735af5c435f2ef",
"src/libGL/entry_points_gl_2_1_autogen.cpp":
......@@ -170,27 +170,27 @@
"src/libGL/entry_points_gl_2_1_autogen.h":
"87cd6d513a5852c56eed9b58484fbe19",
"src/libGL/entry_points_gl_3_0_autogen.cpp":
"891bb91af9a61dddb10602a8d59392fc",
"2b6c993f7ffb95443275b74c1813d50f",
"src/libGL/entry_points_gl_3_0_autogen.h":
"47396290a846f808e598acdbca56e9b3",
"src/libGL/entry_points_gl_3_1_autogen.cpp":
"3c8d595677596847aa1e8e625d5f0fe2",
"5d70e221458d11925b23db302a722360",
"src/libGL/entry_points_gl_3_1_autogen.h":
"6ee6613c0206d99c6afdcd3faddb52a3",
"src/libGL/entry_points_gl_3_2_autogen.cpp":
"62789b076f1d2b64946cd4e632103110",
"d527d0e8e243c1e5d2df32ae19cbef98",
"src/libGL/entry_points_gl_3_2_autogen.h":
"347e40b5c9fd08a693bf4ffe713c61e6",
"src/libGL/entry_points_gl_3_3_autogen.cpp":
"3ecb9acaa912771b07bc0b9f8844dc71",
"c0d6ea9b2ee721f6055c7c48b4730d24",
"src/libGL/entry_points_gl_3_3_autogen.h":
"2151c64b03364111ad1455609243caba",
"src/libGL/entry_points_gl_4_0_autogen.cpp":
"3d4eabc6c81f306ac8e38891f296d29e",
"39b494b6dfd3b190471a1c6bcfbf941a",
"src/libGL/entry_points_gl_4_0_autogen.h":
"c5a258322ee6de37ffdbb6f40d5703a2",
"src/libGL/entry_points_gl_4_1_autogen.cpp":
"aed491eb49b17ecb4e323fff05732987",
"38a38de5fd85c89b1a1648e56ac1a0e7",
"src/libGL/entry_points_gl_4_1_autogen.h":
"ea1e18bf5ed2bd1063c940bd793cb50c",
"src/libGL/entry_points_gl_4_2_autogen.cpp":
......@@ -198,7 +198,7 @@
"src/libGL/entry_points_gl_4_2_autogen.h":
"e6b93e1c3028230ebf5ba8a09f5f4aca",
"src/libGL/entry_points_gl_4_3_autogen.cpp":
"34f31b64d8a5d868096ea4fb70cb0fbe",
"a801fff83bef138a801591397edbe9a8",
"src/libGL/entry_points_gl_4_3_autogen.h":
"60bf8a8337129670875de694386a0a9d",
"src/libGL/entry_points_gl_4_4_autogen.cpp":
......@@ -206,7 +206,7 @@
"src/libGL/entry_points_gl_4_4_autogen.h":
"d0a8c556ffb1c9d4519a66b2868c68b2",
"src/libGL/entry_points_gl_4_5_autogen.cpp":
"e74de04b613b9aec30e32efe119cf4db",
"70c0019d8f4e2140192ecd15c4c42b1f",
"src/libGL/entry_points_gl_4_5_autogen.h":
"0cc66bfbe40b1120e38ba977c2c95cc1",
"src/libGL/entry_points_gl_4_6_autogen.cpp":
......@@ -222,19 +222,19 @@
"src/libGLESv2/entry_points_gles_1_0_autogen.h":
"77fa8d307ebf839838f8812786cddc1a",
"src/libGLESv2/entry_points_gles_2_0_autogen.cpp":
"415b20fee85f910e6b078a7a958db4c4",
"dfc1fefe1fc6f6c819c516da146c006f",
"src/libGLESv2/entry_points_gles_2_0_autogen.h":
"3bbaf1cf42fba5d675e5b54cd1d14df7",
"src/libGLESv2/entry_points_gles_3_0_autogen.cpp":
"df307b2effb0125626e1b7fe41a5f2aa",
"8d019c6c5cf340dc495ad70f582c0a81",
"src/libGLESv2/entry_points_gles_3_0_autogen.h":
"395f6978219abd5182bbe80cc367e40c",
"src/libGLESv2/entry_points_gles_3_1_autogen.cpp":
"c3dda1a78563a5a9f1a1d448f1158668",
"064d77bbecbbac2b4632d77742715465",
"src/libGLESv2/entry_points_gles_3_1_autogen.h":
"043d09a964c740067bf4279e0b544aed",
"src/libGLESv2/entry_points_gles_ext_autogen.cpp":
"3ba5a9294edd399f42203166381e29ec",
"5a30a605e237647a8257a9ebd2829e4a",
"src/libGLESv2/entry_points_gles_ext_autogen.h":
"294cc52579b3439e99914c11bb7cd9f6",
"src/libGLESv2/libGLESv2_autogen.cpp":
......
......@@ -114,7 +114,7 @@ extern "C" {{
template_entry_point_decl = """ANGLE_EXPORT {return_type}GL_APIENTRY {name}{explicit_context_suffix}({explicit_context_param}{explicit_context_comma}{params});"""
template_entry_point_def = """{return_type}GL_APIENTRY {name}{explicit_context_suffix}({explicit_context_param}{explicit_context_comma}{params})
template_entry_point_no_return = """void GL_APIENTRY {name}{explicit_context_suffix}({explicit_context_param}{explicit_context_comma}{params})
{{
{event_comment}EVENT("({format_params})"{comma_if_needed}{pass_params});
......@@ -124,10 +124,36 @@ template_entry_point_def = """{return_type}GL_APIENTRY {name}{explicit_context_s
ANGLE_CAPTURE({name}, {validate_params});
if (context->skipValidation() || Validate{name}({validate_params}))
{{
{return_if_needed}context->{name_lower_no_suffix}({internal_params});
context->{name_lower_no_suffix}({internal_params});
}}
}}
{default_return_if_needed}}}
}}
"""
template_entry_point_with_return = """{return_type}GL_APIENTRY {name}{explicit_context_suffix}({explicit_context_param}{explicit_context_comma}{params})
{{
{event_comment}EVENT("({format_params})"{comma_if_needed}{pass_params});
Context *context = {context_getter};
{return_type} returnValue;
if (context)
{{{assert_explicit_context}{packed_gl_enum_conversions}
ANGLE_CAPTURE({name}, {validate_params});
if (context->skipValidation() || Validate{name}({validate_params}))
{{
returnValue = context->{name_lower_no_suffix}({internal_params});
}}
else
{{
returnValue = GetDefaultReturnValue<EntryPoint::{name}, {return_type}>();
}}
}}
else
{{
returnValue = GetDefaultReturnValue<EntryPoint::{name}, {return_type}>();
}}
return returnValue;
}}
"""
context_header = """// GENERATED FILE - DO NOT EDIT.
......@@ -618,30 +644,47 @@ def format_entry_point_def(cmd_name, proto, params, is_explicit_context):
return_type = proto[:-len(cmd_name)]
default_return = default_return_value(cmd_name, return_type.strip())
event_comment = template_event_comment if cmd_name in no_event_marker_exceptions_list else ""
name_lower_no_suffix = cmd_name[2:3].lower() + cmd_name[3:]
name_lower_no_suffix = strip_suffix(name_lower_no_suffix)
return template_entry_point_def.format(
name=cmd_name[2:],
name_lower_no_suffix=name_lower_no_suffix,
return_type=return_type,
params=", ".join(params),
internal_params=", ".join(internal_params),
packed_gl_enum_conversions="".join(packed_gl_enum_conversions),
pass_params=", ".join(pass_params),
comma_if_needed=", " if len(params) > 0 else "",
validate_params=", ".join(["context"] + internal_params),
format_params=", ".join(format_params),
return_if_needed="" if default_return == "" else "return ",
default_return_if_needed=""
if default_return == "" else "\n return " + default_return + ";\n",
context_getter=get_context_getter_function(cmd_name, is_explicit_context),
event_comment=event_comment,
explicit_context_suffix="ContextANGLE" if is_explicit_context else "",
explicit_context_param="GLeglContext ctx" if is_explicit_context else "",
explicit_context_comma=", " if is_explicit_context and len(params) > 0 else "",
assert_explicit_context="\nASSERT(context == GetValidGlobalContext());"
if is_explicit_context else "")
name_lower_no_suffix = strip_suffix(cmd_name[2:3].lower() + cmd_name[3:])
format_params = {
"name":
cmd_name[2:],
"name_lower_no_suffix":
name_lower_no_suffix,
"return_type":
return_type,
"params":
", ".join(params),
"internal_params":
", ".join(internal_params),
"packed_gl_enum_conversions":
"".join(packed_gl_enum_conversions),
"pass_params":
", ".join(pass_params),
"comma_if_needed":
", " if len(params) > 0 else "",
"validate_params":
", ".join(["context"] + internal_params),
"format_params":
", ".join(format_params),
"context_getter":
get_context_getter_function(cmd_name, is_explicit_context),
"event_comment":
event_comment,
"explicit_context_suffix":
"ContextANGLE" if is_explicit_context else "",
"explicit_context_param":
"GLeglContext ctx" if is_explicit_context else "",
"explicit_context_comma":
", " if is_explicit_context and len(params) > 0 else "",
"assert_explicit_context":
"\nASSERT(context == GetValidGlobalContext());" if is_explicit_context else ""
}
if return_type.strip() == "void":
return template_entry_point_no_return.format(**format_params)
else:
return template_entry_point_with_return.format(**format_params)
def format_capture_method(cmd_name, params, all_param_types, capture_pointer_funcs):
......
......@@ -1316,16 +1316,24 @@ GLuint GL_APIENTRY GenLists(GLsizei range)
EVENT("(GLsizei range = %d)", range);
Context *context = GetValidGlobalContext();
GLuint returnValue;
if (context)
{
ANGLE_CAPTURE(GenLists, context, range);
if (context->skipValidation() || ValidateGenLists(context, range))
{
return context->genLists(range);
returnValue = context->genLists(range);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GenLists, GLuint>();
}
}
return GetDefaultReturnValue<EntryPoint::GenLists, GLuint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GenLists, GLuint>();
}
return returnValue;
}
void GL_APIENTRY GetBooleanv(GLenum pname, GLboolean *data)
......@@ -1379,16 +1387,24 @@ GLenum GL_APIENTRY GetError()
EVENT("()");
Context *context = GetGlobalContext();
GLenum returnValue;
if (context)
{
ANGLE_CAPTURE(GetError, context);
if (context->skipValidation() || ValidateGetError(context))
{
return context->getError();
returnValue = context->getError();
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetError, GLenum>();
}
}
return GetDefaultReturnValue<EntryPoint::GetError, GLenum>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetError, GLenum>();
}
return returnValue;
}
void GL_APIENTRY GetFloatv(GLenum pname, GLfloat *data)
......@@ -1600,16 +1616,24 @@ const GLubyte *GL_APIENTRY GetString(GLenum name)
EVENT("(GLenum name = 0x%X)", name);
Context *context = GetValidGlobalContext();
const GLubyte *returnValue;
if (context)
{
ANGLE_CAPTURE(GetString, context, name);
if (context->skipValidation() || ValidateGetString(context, name))
{
return context->getString(name);
returnValue = context->getString(name);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetString, const GLubyte *>();
}
}
return GetDefaultReturnValue<EntryPoint::GetString, const GLubyte *>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetString, const GLubyte *>();
}
return returnValue;
}
void GL_APIENTRY GetTexEnvfv(GLenum target, GLenum pname, GLfloat *params)
......@@ -1963,16 +1987,24 @@ GLboolean GL_APIENTRY IsEnabled(GLenum cap)
EVENT("(GLenum cap = 0x%X)", cap);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
ANGLE_CAPTURE(IsEnabled, context, cap);
if (context->skipValidation() || ValidateIsEnabled(context, cap))
{
return context->isEnabled(cap);
returnValue = context->isEnabled(cap);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsEnabled, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::IsEnabled, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsEnabled, GLboolean>();
}
return returnValue;
}
GLboolean GL_APIENTRY IsList(GLuint list)
......@@ -1980,16 +2012,24 @@ GLboolean GL_APIENTRY IsList(GLuint list)
EVENT("(GLuint list = %u)", list);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
ANGLE_CAPTURE(IsList, context, list);
if (context->skipValidation() || ValidateIsList(context, list))
{
return context->isList(list);
returnValue = context->isList(list);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsList, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::IsList, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsList, GLboolean>();
}
return returnValue;
}
void GL_APIENTRY LightModelf(GLenum pname, GLfloat param)
......@@ -3503,16 +3543,24 @@ GLint GL_APIENTRY RenderMode(GLenum mode)
EVENT("(GLenum mode = 0x%X)", mode);
Context *context = GetValidGlobalContext();
GLint returnValue;
if (context)
{
ANGLE_CAPTURE(RenderMode, context, mode);
if (context->skipValidation() || ValidateRenderMode(context, mode))
{
return context->renderMode(mode);
returnValue = context->renderMode(mode);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::RenderMode, GLint>();
}
}
return GetDefaultReturnValue<EntryPoint::RenderMode, GLint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::RenderMode, GLint>();
}
return returnValue;
}
void GL_APIENTRY Rotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
......
......@@ -32,17 +32,25 @@ GLboolean GL_APIENTRY AreTexturesResident(GLsizei n, const GLuint *textures, GLb
n, (uintptr_t)textures, (uintptr_t)residences);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
ANGLE_CAPTURE(AreTexturesResident, context, n, textures, residences);
if (context->skipValidation() ||
ValidateAreTexturesResident(context, n, textures, residences))
{
return context->areTexturesResident(n, textures, residences);
returnValue = context->areTexturesResident(n, textures, residences);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::AreTexturesResident, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::AreTexturesResident, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::AreTexturesResident, GLboolean>();
}
return returnValue;
}
void GL_APIENTRY ArrayElement(GLint i)
......@@ -398,16 +406,24 @@ GLboolean GL_APIENTRY IsTexture(GLuint texture)
EVENT("(GLuint texture = %u)", texture);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
ANGLE_CAPTURE(IsTexture, context, texture);
if (context->skipValidation() || ValidateIsTexture(context, texture))
{
return context->isTexture(texture);
returnValue = context->isTexture(texture);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsTexture, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::IsTexture, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsTexture, GLboolean>();
}
return returnValue;
}
void GL_APIENTRY NormalPointer(GLenum type, GLsizei stride, const void *pointer)
......
......@@ -284,16 +284,24 @@ GLboolean GL_APIENTRY IsBuffer(GLuint buffer)
EVENT("(GLuint buffer = %u)", buffer);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
ANGLE_CAPTURE(IsBuffer, context, buffer);
if (context->skipValidation() || ValidateIsBuffer(context, buffer))
{
return context->isBuffer(buffer);
returnValue = context->isBuffer(buffer);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsBuffer, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::IsBuffer, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsBuffer, GLboolean>();
}
return returnValue;
}
GLboolean GL_APIENTRY IsQuery(GLuint id)
......@@ -301,16 +309,24 @@ GLboolean GL_APIENTRY IsQuery(GLuint id)
EVENT("(GLuint id = %u)", id);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
ANGLE_CAPTURE(IsQuery, context, id);
if (context->skipValidation() || ValidateIsQuery(context, id))
{
return context->isQuery(id);
returnValue = context->isQuery(id);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsQuery, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::IsQuery, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsQuery, GLboolean>();
}
return returnValue;
}
void *GL_APIENTRY MapBuffer(GLenum target, GLenum access)
......@@ -318,17 +334,25 @@ void *GL_APIENTRY MapBuffer(GLenum target, GLenum access)
EVENT("(GLenum target = 0x%X, GLenum access = 0x%X)", target, access);
Context *context = GetValidGlobalContext();
void *returnValue;
if (context)
{
BufferBinding targetPacked = FromGLenum<BufferBinding>(target);
ANGLE_CAPTURE(MapBuffer, context, targetPacked, access);
if (context->skipValidation() || ValidateMapBuffer(context, targetPacked, access))
{
return context->mapBuffer(targetPacked, access);
returnValue = context->mapBuffer(targetPacked, access);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::MapBuffer, void *>();
}
}
return GetDefaultReturnValue<EntryPoint::MapBuffer, void *>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::MapBuffer, void *>();
}
return returnValue;
}
GLboolean GL_APIENTRY UnmapBuffer(GLenum target)
......@@ -336,16 +360,24 @@ GLboolean GL_APIENTRY UnmapBuffer(GLenum target)
EVENT("(GLenum target = 0x%X)", target);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
BufferBinding targetPacked = FromGLenum<BufferBinding>(target);
ANGLE_CAPTURE(UnmapBuffer, context, targetPacked);
if (context->skipValidation() || ValidateUnmapBuffer(context, targetPacked))
{
return context->unmapBuffer(targetPacked);
returnValue = context->unmapBuffer(targetPacked);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::UnmapBuffer, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::UnmapBuffer, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::UnmapBuffer, GLboolean>();
}
return returnValue;
}
} // namespace gl
......@@ -91,16 +91,24 @@ GLuint GL_APIENTRY CreateProgram()
EVENT("()");
Context *context = GetValidGlobalContext();
GLuint returnValue;
if (context)
{
ANGLE_CAPTURE(CreateProgram, context);
if (context->skipValidation() || ValidateCreateProgram(context))
{
return context->createProgram();
returnValue = context->createProgram();
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::CreateProgram, GLuint>();
}
}
return GetDefaultReturnValue<EntryPoint::CreateProgram, GLuint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::CreateProgram, GLuint>();
}
return returnValue;
}
GLuint GL_APIENTRY CreateShader(GLenum type)
......@@ -108,17 +116,25 @@ GLuint GL_APIENTRY CreateShader(GLenum type)
EVENT("(GLenum type = 0x%X)", type);
Context *context = GetValidGlobalContext();
GLuint returnValue;
if (context)
{
ShaderType typePacked = FromGLenum<ShaderType>(type);
ANGLE_CAPTURE(CreateShader, context, typePacked);
if (context->skipValidation() || ValidateCreateShader(context, typePacked))
{
return context->createShader(typePacked);
returnValue = context->createShader(typePacked);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::CreateShader, GLuint>();
}
}
return GetDefaultReturnValue<EntryPoint::CreateShader, GLuint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::CreateShader, GLuint>();
}
return returnValue;
}
void GL_APIENTRY DeleteProgram(GLuint program)
......@@ -292,16 +308,24 @@ GLint GL_APIENTRY GetAttribLocation(GLuint program, const GLchar *name)
(uintptr_t)name);
Context *context = GetValidGlobalContext();
GLint returnValue;
if (context)
{
ANGLE_CAPTURE(GetAttribLocation, context, program, name);
if (context->skipValidation() || ValidateGetAttribLocation(context, program, name))
{
return context->getAttribLocation(program, name);
returnValue = context->getAttribLocation(program, name);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetAttribLocation, GLint>();
}
}
return GetDefaultReturnValue<EntryPoint::GetAttribLocation, GLint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetAttribLocation, GLint>();
}
return returnValue;
}
void GL_APIENTRY GetProgramInfoLog(GLuint program,
......@@ -399,16 +423,24 @@ GLint GL_APIENTRY GetUniformLocation(GLuint program, const GLchar *name)
(uintptr_t)name);
Context *context = GetValidGlobalContext();
GLint returnValue;
if (context)
{
ANGLE_CAPTURE(GetUniformLocation, context, program, name);
if (context->skipValidation() || ValidateGetUniformLocation(context, program, name))
{
return context->getUniformLocation(program, name);
returnValue = context->getUniformLocation(program, name);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetUniformLocation, GLint>();
}
}
return GetDefaultReturnValue<EntryPoint::GetUniformLocation, GLint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetUniformLocation, GLint>();
}
return returnValue;
}
void GL_APIENTRY GetUniformfv(GLuint program, GLint location, GLfloat *params)
......@@ -513,16 +545,24 @@ GLboolean GL_APIENTRY IsProgram(GLuint program)
EVENT("(GLuint program = %u)", program);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
ANGLE_CAPTURE(IsProgram, context, program);
if (context->skipValidation() || ValidateIsProgram(context, program))
{
return context->isProgram(program);
returnValue = context->isProgram(program);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsProgram, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::IsProgram, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsProgram, GLboolean>();
}
return returnValue;
}
GLboolean GL_APIENTRY IsShader(GLuint shader)
......@@ -530,16 +570,24 @@ GLboolean GL_APIENTRY IsShader(GLuint shader)
EVENT("(GLuint shader = %u)", shader);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
ANGLE_CAPTURE(IsShader, context, shader);
if (context->skipValidation() || ValidateIsShader(context, shader))
{
return context->isShader(shader);
returnValue = context->isShader(shader);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsShader, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::IsShader, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsShader, GLboolean>();
}
return returnValue;
}
void GL_APIENTRY LinkProgram(GLuint program)
......
......@@ -195,16 +195,24 @@ GLenum GL_APIENTRY CheckFramebufferStatus(GLenum target)
EVENT("(GLenum target = 0x%X)", target);
Context *context = GetValidGlobalContext();
GLenum returnValue;
if (context)
{
ANGLE_CAPTURE(CheckFramebufferStatus, context, target);
if (context->skipValidation() || ValidateCheckFramebufferStatus(context, target))
{
return context->checkFramebufferStatus(target);
returnValue = context->checkFramebufferStatus(target);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::CheckFramebufferStatus, GLenum>();
}
}
return GetDefaultReturnValue<EntryPoint::CheckFramebufferStatus, GLenum>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::CheckFramebufferStatus, GLenum>();
}
return returnValue;
}
void GL_APIENTRY ClampColor(GLenum target, GLenum clamp)
......@@ -635,16 +643,24 @@ GLint GL_APIENTRY GetFragDataLocation(GLuint program, const GLchar *name)
(uintptr_t)name);
Context *context = GetValidGlobalContext();
GLint returnValue;
if (context)
{
ANGLE_CAPTURE(GetFragDataLocation, context, program, name);
if (context->skipValidation() || ValidateGetFragDataLocation(context, program, name))
{
return context->getFragDataLocation(program, name);
returnValue = context->getFragDataLocation(program, name);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetFragDataLocation, GLint>();
}
}
return GetDefaultReturnValue<EntryPoint::GetFragDataLocation, GLint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetFragDataLocation, GLint>();
}
return returnValue;
}
void GL_APIENTRY GetFramebufferAttachmentParameteriv(GLenum target,
......@@ -708,16 +724,24 @@ const GLubyte *GL_APIENTRY GetStringi(GLenum name, GLuint index)
EVENT("(GLenum name = 0x%X, GLuint index = %u)", name, index);
Context *context = GetValidGlobalContext();
const GLubyte *returnValue;
if (context)
{
ANGLE_CAPTURE(GetStringi, context, name, index);
if (context->skipValidation() || ValidateGetStringi(context, name, index))
{
return context->getStringi(name, index);
returnValue = context->getStringi(name, index);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetStringi, const GLubyte *>();
}
}
return GetDefaultReturnValue<EntryPoint::GetStringi, const GLubyte *>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetStringi, const GLubyte *>();
}
return returnValue;
}
void GL_APIENTRY GetTexParameterIiv(GLenum target, GLenum pname, GLint *params)
......@@ -838,16 +862,24 @@ GLboolean GL_APIENTRY IsEnabledi(GLenum target, GLuint index)
EVENT("(GLenum target = 0x%X, GLuint index = %u)", target, index);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
ANGLE_CAPTURE(IsEnabledi, context, target, index);
if (context->skipValidation() || ValidateIsEnabledi(context, target, index))
{
return context->isEnabledi(target, index);
returnValue = context->isEnabledi(target, index);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsEnabledi, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::IsEnabledi, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsEnabledi, GLboolean>();
}
return returnValue;
}
GLboolean GL_APIENTRY IsFramebuffer(GLuint framebuffer)
......@@ -855,16 +887,24 @@ GLboolean GL_APIENTRY IsFramebuffer(GLuint framebuffer)
EVENT("(GLuint framebuffer = %u)", framebuffer);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
ANGLE_CAPTURE(IsFramebuffer, context, framebuffer);
if (context->skipValidation() || ValidateIsFramebuffer(context, framebuffer))
{
return context->isFramebuffer(framebuffer);
returnValue = context->isFramebuffer(framebuffer);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsFramebuffer, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::IsFramebuffer, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsFramebuffer, GLboolean>();
}
return returnValue;
}
GLboolean GL_APIENTRY IsRenderbuffer(GLuint renderbuffer)
......@@ -872,16 +912,24 @@ GLboolean GL_APIENTRY IsRenderbuffer(GLuint renderbuffer)
EVENT("(GLuint renderbuffer = %u)", renderbuffer);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
ANGLE_CAPTURE(IsRenderbuffer, context, renderbuffer);
if (context->skipValidation() || ValidateIsRenderbuffer(context, renderbuffer))
{
return context->isRenderbuffer(renderbuffer);
returnValue = context->isRenderbuffer(renderbuffer);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsRenderbuffer, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::IsRenderbuffer, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsRenderbuffer, GLboolean>();
}
return returnValue;
}
GLboolean GL_APIENTRY IsVertexArray(GLuint array)
......@@ -889,16 +937,24 @@ GLboolean GL_APIENTRY IsVertexArray(GLuint array)
EVENT("(GLuint array = %u)", array);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
ANGLE_CAPTURE(IsVertexArray, context, array);
if (context->skipValidation() || ValidateIsVertexArray(context, array))
{
return context->isVertexArray(array);
returnValue = context->isVertexArray(array);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsVertexArray, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::IsVertexArray, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsVertexArray, GLboolean>();
}
return returnValue;
}
void *GL_APIENTRY MapBufferRange(GLenum target,
......@@ -913,6 +969,7 @@ void *GL_APIENTRY MapBufferRange(GLenum target,
access);
Context *context = GetValidGlobalContext();
void *returnValue;
if (context)
{
BufferBinding targetPacked = FromGLenum<BufferBinding>(target);
......@@ -920,11 +977,18 @@ void *GL_APIENTRY MapBufferRange(GLenum target,
if (context->skipValidation() ||
ValidateMapBufferRange(context, targetPacked, offset, length, access))
{
return context->mapBufferRange(targetPacked, offset, length, access);
returnValue = context->mapBufferRange(targetPacked, offset, length, access);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::MapBufferRange, void *>();
}
}
return GetDefaultReturnValue<EntryPoint::MapBufferRange, void *>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::MapBufferRange, void *>();
}
return returnValue;
}
void GL_APIENTRY RenderbufferStorage(GLenum target,
......
......@@ -202,17 +202,25 @@ GLuint GL_APIENTRY GetUniformBlockIndex(GLuint program, const GLchar *uniformBlo
(uintptr_t)uniformBlockName);
Context *context = GetValidGlobalContext();
GLuint returnValue;
if (context)
{
ANGLE_CAPTURE(GetUniformBlockIndex, context, program, uniformBlockName);
if (context->skipValidation() ||
ValidateGetUniformBlockIndex(context, program, uniformBlockName))
{
return context->getUniformBlockIndex(program, uniformBlockName);
returnValue = context->getUniformBlockIndex(program, uniformBlockName);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetUniformBlockIndex, GLuint>();
}
}
return GetDefaultReturnValue<EntryPoint::GetUniformBlockIndex, GLuint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetUniformBlockIndex, GLuint>();
}
return returnValue;
}
void GL_APIENTRY GetUniformIndices(GLuint program,
......
......@@ -31,16 +31,24 @@ GLenum GL_APIENTRY ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeou
(uintptr_t)sync, flags, static_cast<unsigned long long>(timeout));
Context *context = GetValidGlobalContext();
GLenum returnValue;
if (context)
{
ANGLE_CAPTURE(ClientWaitSync, context, sync, flags, timeout);
if (context->skipValidation() || ValidateClientWaitSync(context, sync, flags, timeout))
{
return context->clientWaitSync(sync, flags, timeout);
returnValue = context->clientWaitSync(sync, flags, timeout);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::ClientWaitSync, GLenum>();
}
}
return GetDefaultReturnValue<EntryPoint::ClientWaitSync, GLenum>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::ClientWaitSync, GLenum>();
}
return returnValue;
}
void GL_APIENTRY DeleteSync(GLsync sync)
......@@ -141,16 +149,24 @@ GLsync GL_APIENTRY FenceSync(GLenum condition, GLbitfield flags)
EVENT("(GLenum condition = 0x%X, GLbitfield flags = 0x%X)", condition, flags);
Context *context = GetValidGlobalContext();
GLsync returnValue;
if (context)
{
ANGLE_CAPTURE(FenceSync, context, condition, flags);
if (context->skipValidation() || ValidateFenceSync(context, condition, flags))
{
return context->fenceSync(condition, flags);
returnValue = context->fenceSync(condition, flags);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::FenceSync, GLsync>();
}
}
return GetDefaultReturnValue<EntryPoint::FenceSync, GLsync>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::FenceSync, GLsync>();
}
return returnValue;
}
void GL_APIENTRY FramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level)
......@@ -260,16 +276,24 @@ GLboolean GL_APIENTRY IsSync(GLsync sync)
EVENT("(GLsync sync = 0x%016" PRIxPTR ")", (uintptr_t)sync);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
ANGLE_CAPTURE(IsSync, context, sync);
if (context->skipValidation() || ValidateIsSync(context, sync))
{
return context->isSync(sync);
returnValue = context->isSync(sync);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsSync, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::IsSync, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsSync, GLboolean>();
}
return returnValue;
}
void GL_APIENTRY MultiDrawElementsBaseVertex(GLenum mode,
......
......@@ -159,16 +159,24 @@ GLint GL_APIENTRY GetFragDataIndex(GLuint program, const GLchar *name)
(uintptr_t)name);
Context *context = GetValidGlobalContext();
GLint returnValue;
if (context)
{
ANGLE_CAPTURE(GetFragDataIndex, context, program, name);
if (context->skipValidation() || ValidateGetFragDataIndex(context, program, name))
{
return context->getFragDataIndex(program, name);
returnValue = context->getFragDataIndex(program, name);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetFragDataIndex, GLint>();
}
}
return GetDefaultReturnValue<EntryPoint::GetFragDataIndex, GLint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetFragDataIndex, GLint>();
}
return returnValue;
}
void GL_APIENTRY GetQueryObjecti64v(GLuint id, GLenum pname, GLint64 *params)
......@@ -276,16 +284,24 @@ GLboolean GL_APIENTRY IsSampler(GLuint sampler)
EVENT("(GLuint sampler = %u)", sampler);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
ANGLE_CAPTURE(IsSampler, context, sampler);
if (context->skipValidation() || ValidateIsSampler(context, sampler))
{
return context->isSampler(sampler);
returnValue = context->isSampler(sampler);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsSampler, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::IsSampler, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsSampler, GLboolean>();
}
return returnValue;
}
void GL_APIENTRY MultiTexCoordP1ui(GLenum texture, GLenum type, GLuint coords)
......
......@@ -355,17 +355,25 @@ GLuint GL_APIENTRY GetSubroutineIndex(GLuint program, GLenum shadertype, const G
program, shadertype, (uintptr_t)name);
Context *context = GetValidGlobalContext();
GLuint returnValue;
if (context)
{
ANGLE_CAPTURE(GetSubroutineIndex, context, program, shadertype, name);
if (context->skipValidation() ||
ValidateGetSubroutineIndex(context, program, shadertype, name))
{
return context->getSubroutineIndex(program, shadertype, name);
returnValue = context->getSubroutineIndex(program, shadertype, name);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetSubroutineIndex, GLuint>();
}
}
return GetDefaultReturnValue<EntryPoint::GetSubroutineIndex, GLuint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetSubroutineIndex, GLuint>();
}
return returnValue;
}
GLint GL_APIENTRY GetSubroutineUniformLocation(GLuint program,
......@@ -376,17 +384,25 @@ GLint GL_APIENTRY GetSubroutineUniformLocation(GLuint program,
program, shadertype, (uintptr_t)name);
Context *context = GetValidGlobalContext();
GLint returnValue;
if (context)
{
ANGLE_CAPTURE(GetSubroutineUniformLocation, context, program, shadertype, name);
if (context->skipValidation() ||
ValidateGetSubroutineUniformLocation(context, program, shadertype, name))
{
return context->getSubroutineUniformLocation(program, shadertype, name);
returnValue = context->getSubroutineUniformLocation(program, shadertype, name);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetSubroutineUniformLocation, GLint>();
}
}
return GetDefaultReturnValue<EntryPoint::GetSubroutineUniformLocation, GLint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetSubroutineUniformLocation, GLint>();
}
return returnValue;
}
void GL_APIENTRY GetUniformSubroutineuiv(GLenum shadertype, GLint location, GLuint *params)
......@@ -427,16 +443,24 @@ GLboolean GL_APIENTRY IsTransformFeedback(GLuint id)
EVENT("(GLuint id = %u)", id);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
ANGLE_CAPTURE(IsTransformFeedback, context, id);
if (context->skipValidation() || ValidateIsTransformFeedback(context, id))
{
return context->isTransformFeedback(id);
returnValue = context->isTransformFeedback(id);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsTransformFeedback, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::IsTransformFeedback, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsTransformFeedback, GLboolean>();
}
return returnValue;
}
void GL_APIENTRY MinSampleShading(GLfloat value)
......
......@@ -77,6 +77,7 @@ GLuint GL_APIENTRY CreateShaderProgramv(GLenum type, GLsizei count, const GLchar
type, count, (uintptr_t)strings);
Context *context = GetValidGlobalContext();
GLuint returnValue;
if (context)
{
ShaderType typePacked = FromGLenum<ShaderType>(type);
......@@ -84,11 +85,18 @@ GLuint GL_APIENTRY CreateShaderProgramv(GLenum type, GLsizei count, const GLchar
if (context->skipValidation() ||
ValidateCreateShaderProgramv(context, typePacked, count, strings))
{
return context->createShaderProgramv(typePacked, count, strings);
returnValue = context->createShaderProgramv(typePacked, count, strings);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::CreateShaderProgramv, GLuint>();
}
}
return GetDefaultReturnValue<EntryPoint::CreateShaderProgramv, GLuint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::CreateShaderProgramv, GLuint>();
}
return returnValue;
}
void GL_APIENTRY DeleteProgramPipelines(GLsizei n, const GLuint *pipelines)
......@@ -302,16 +310,24 @@ GLboolean GL_APIENTRY IsProgramPipeline(GLuint pipeline)
EVENT("(GLuint pipeline = %u)", pipeline);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
ANGLE_CAPTURE(IsProgramPipeline, context, pipeline);
if (context->skipValidation() || ValidateIsProgramPipeline(context, pipeline))
{
return context->isProgramPipeline(pipeline);
returnValue = context->isProgramPipeline(pipeline);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsProgramPipeline, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::IsProgramPipeline, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsProgramPipeline, GLboolean>();
}
return returnValue;
}
void GL_APIENTRY ProgramBinary(GLuint program,
......
......@@ -267,6 +267,7 @@ GLuint GL_APIENTRY GetDebugMessageLog(GLuint count,
(uintptr_t)severities, (uintptr_t)lengths, (uintptr_t)messageLog);
Context *context = GetValidGlobalContext();
GLuint returnValue;
if (context)
{
ANGLE_CAPTURE(GetDebugMessageLog, context, count, bufSize, sources, types, ids, severities,
......@@ -275,12 +276,19 @@ GLuint GL_APIENTRY GetDebugMessageLog(GLuint count,
ValidateGetDebugMessageLog(context, count, bufSize, sources, types, ids, severities,
lengths, messageLog))
{
return context->getDebugMessageLog(count, bufSize, sources, types, ids, severities,
lengths, messageLog);
returnValue = context->getDebugMessageLog(count, bufSize, sources, types, ids,
severities, lengths, messageLog);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetDebugMessageLog, GLuint>();
}
}
return GetDefaultReturnValue<EntryPoint::GetDebugMessageLog, GLuint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetDebugMessageLog, GLuint>();
}
return returnValue;
}
void GL_APIENTRY GetFramebufferParameteriv(GLenum target, GLenum pname, GLint *params)
......@@ -395,17 +403,25 @@ GLuint GL_APIENTRY GetProgramResourceIndex(GLuint program,
program, programInterface, (uintptr_t)name);
Context *context = GetValidGlobalContext();
GLuint returnValue;
if (context)
{
ANGLE_CAPTURE(GetProgramResourceIndex, context, program, programInterface, name);
if (context->skipValidation() ||
ValidateGetProgramResourceIndex(context, program, programInterface, name))
{
return context->getProgramResourceIndex(program, programInterface, name);
returnValue = context->getProgramResourceIndex(program, programInterface, name);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetProgramResourceIndex, GLuint>();
}
}
return GetDefaultReturnValue<EntryPoint::GetProgramResourceIndex, GLuint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetProgramResourceIndex, GLuint>();
}
return returnValue;
}
GLint GL_APIENTRY GetProgramResourceLocation(GLuint program,
......@@ -418,17 +434,25 @@ GLint GL_APIENTRY GetProgramResourceLocation(GLuint program,
program, programInterface, (uintptr_t)name);
Context *context = GetValidGlobalContext();
GLint returnValue;
if (context)
{
ANGLE_CAPTURE(GetProgramResourceLocation, context, program, programInterface, name);
if (context->skipValidation() ||
ValidateGetProgramResourceLocation(context, program, programInterface, name))
{
return context->getProgramResourceLocation(program, programInterface, name);
returnValue = context->getProgramResourceLocation(program, programInterface, name);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetProgramResourceLocation, GLint>();
}
}
return GetDefaultReturnValue<EntryPoint::GetProgramResourceLocation, GLint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetProgramResourceLocation, GLint>();
}
return returnValue;
}
GLint GL_APIENTRY GetProgramResourceLocationIndex(GLuint program,
......@@ -441,17 +465,26 @@ GLint GL_APIENTRY GetProgramResourceLocationIndex(GLuint program,
program, programInterface, (uintptr_t)name);
Context *context = GetValidGlobalContext();
GLint returnValue;
if (context)
{
ANGLE_CAPTURE(GetProgramResourceLocationIndex, context, program, programInterface, name);
if (context->skipValidation() ||
ValidateGetProgramResourceLocationIndex(context, program, programInterface, name))
{
return context->getProgramResourceLocationIndex(program, programInterface, name);
returnValue = context->getProgramResourceLocationIndex(program, programInterface, name);
}
else
{
returnValue =
GetDefaultReturnValue<EntryPoint::GetProgramResourceLocationIndex, GLint>();
}
}
return GetDefaultReturnValue<EntryPoint::GetProgramResourceLocationIndex, GLint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetProgramResourceLocationIndex, GLint>();
}
return returnValue;
}
void GL_APIENTRY GetProgramResourceName(GLuint program,
......
......@@ -80,17 +80,25 @@ GLenum GL_APIENTRY CheckNamedFramebufferStatus(GLuint framebuffer, GLenum target
EVENT("(GLuint framebuffer = %u, GLenum target = 0x%X)", framebuffer, target);
Context *context = GetValidGlobalContext();
GLenum returnValue;
if (context)
{
ANGLE_CAPTURE(CheckNamedFramebufferStatus, context, framebuffer, target);
if (context->skipValidation() ||
ValidateCheckNamedFramebufferStatus(context, framebuffer, target))
{
return context->checkNamedFramebufferStatus(framebuffer, target);
returnValue = context->checkNamedFramebufferStatus(framebuffer, target);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::CheckNamedFramebufferStatus, GLenum>();
}
}
return GetDefaultReturnValue<EntryPoint::CheckNamedFramebufferStatus, GLenum>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::CheckNamedFramebufferStatus, GLenum>();
}
return returnValue;
}
void GL_APIENTRY ClearNamedBufferData(GLuint buffer,
......@@ -709,16 +717,24 @@ GLenum GL_APIENTRY GetGraphicsResetStatus()
EVENT("()");
Context *context = GetGlobalContext();
GLenum returnValue;
if (context)
{
ANGLE_CAPTURE(GetGraphicsResetStatus, context);
if (context->skipValidation() || ValidateGetGraphicsResetStatus(context))
{
return context->getGraphicsResetStatus();
returnValue = context->getGraphicsResetStatus();
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetGraphicsResetStatus, GLenum>();
}
}
return GetDefaultReturnValue<EntryPoint::GetGraphicsResetStatus, GLenum>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetGraphicsResetStatus, GLenum>();
}
return returnValue;
}
void GL_APIENTRY GetNamedBufferParameteri64v(GLuint buffer, GLenum pname, GLint64 *params)
......@@ -1603,16 +1619,24 @@ void *GL_APIENTRY MapNamedBuffer(GLuint buffer, GLenum access)
EVENT("(GLuint buffer = %u, GLenum access = 0x%X)", buffer, access);
Context *context = GetValidGlobalContext();
void *returnValue;
if (context)
{
ANGLE_CAPTURE(MapNamedBuffer, context, buffer, access);
if (context->skipValidation() || ValidateMapNamedBuffer(context, buffer, access))
{
return context->mapNamedBuffer(buffer, access);
returnValue = context->mapNamedBuffer(buffer, access);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::MapNamedBuffer, void *>();
}
}
return GetDefaultReturnValue<EntryPoint::MapNamedBuffer, void *>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::MapNamedBuffer, void *>();
}
return returnValue;
}
void *GL_APIENTRY MapNamedBufferRange(GLuint buffer,
......@@ -1627,17 +1651,25 @@ void *GL_APIENTRY MapNamedBufferRange(GLuint buffer,
access);
Context *context = GetValidGlobalContext();
void *returnValue;
if (context)
{
ANGLE_CAPTURE(MapNamedBufferRange, context, buffer, offset, length, access);
if (context->skipValidation() ||
ValidateMapNamedBufferRange(context, buffer, offset, length, access))
{
return context->mapNamedBufferRange(buffer, offset, length, access);
returnValue = context->mapNamedBufferRange(buffer, offset, length, access);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::MapNamedBufferRange, void *>();
}
}
return GetDefaultReturnValue<EntryPoint::MapNamedBufferRange, void *>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::MapNamedBufferRange, void *>();
}
return returnValue;
}
void GL_APIENTRY MemoryBarrierByRegion(GLbitfield barriers)
......@@ -2344,16 +2376,24 @@ GLboolean GL_APIENTRY UnmapNamedBuffer(GLuint buffer)
EVENT("(GLuint buffer = %u)", buffer);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
ANGLE_CAPTURE(UnmapNamedBuffer, context, buffer);
if (context->skipValidation() || ValidateUnmapNamedBuffer(context, buffer))
{
return context->unmapNamedBuffer(buffer);
returnValue = context->unmapNamedBuffer(buffer);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::UnmapNamedBuffer, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::UnmapNamedBuffer, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::UnmapNamedBuffer, GLboolean>();
}
return returnValue;
}
void GL_APIENTRY VertexArrayAttribBinding(GLuint vaobj, GLuint attribindex, GLuint bindingindex)
......
......@@ -104,6 +104,7 @@ GLuint GL_APIENTRY CreateShaderProgramv(GLenum type, GLsizei count, const GLchar
type, count, (uintptr_t)strings);
Context *context = GetValidGlobalContext();
GLuint returnValue;
if (context)
{
ShaderType typePacked = FromGLenum<ShaderType>(type);
......@@ -111,11 +112,18 @@ GLuint GL_APIENTRY CreateShaderProgramv(GLenum type, GLsizei count, const GLchar
if (context->skipValidation() ||
ValidateCreateShaderProgramv(context, typePacked, count, strings))
{
return context->createShaderProgramv(typePacked, count, strings);
returnValue = context->createShaderProgramv(typePacked, count, strings);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::CreateShaderProgramv, GLuint>();
}
}
return GetDefaultReturnValue<EntryPoint::CreateShaderProgramv, GLuint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::CreateShaderProgramv, GLuint>();
}
return returnValue;
}
void GL_APIENTRY DeleteProgramPipelines(GLsizei n, const GLuint *pipelines)
......@@ -351,17 +359,25 @@ GLuint GL_APIENTRY GetProgramResourceIndex(GLuint program,
program, programInterface, (uintptr_t)name);
Context *context = GetValidGlobalContext();
GLuint returnValue;
if (context)
{
ANGLE_CAPTURE(GetProgramResourceIndex, context, program, programInterface, name);
if (context->skipValidation() ||
ValidateGetProgramResourceIndex(context, program, programInterface, name))
{
return context->getProgramResourceIndex(program, programInterface, name);
returnValue = context->getProgramResourceIndex(program, programInterface, name);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetProgramResourceIndex, GLuint>();
}
}
return GetDefaultReturnValue<EntryPoint::GetProgramResourceIndex, GLuint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetProgramResourceIndex, GLuint>();
}
return returnValue;
}
GLint GL_APIENTRY GetProgramResourceLocation(GLuint program,
......@@ -374,17 +390,25 @@ GLint GL_APIENTRY GetProgramResourceLocation(GLuint program,
program, programInterface, (uintptr_t)name);
Context *context = GetValidGlobalContext();
GLint returnValue;
if (context)
{
ANGLE_CAPTURE(GetProgramResourceLocation, context, program, programInterface, name);
if (context->skipValidation() ||
ValidateGetProgramResourceLocation(context, program, programInterface, name))
{
return context->getProgramResourceLocation(program, programInterface, name);
returnValue = context->getProgramResourceLocation(program, programInterface, name);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetProgramResourceLocation, GLint>();
}
}
return GetDefaultReturnValue<EntryPoint::GetProgramResourceLocation, GLint>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetProgramResourceLocation, GLint>();
}
return returnValue;
}
void GL_APIENTRY GetProgramResourceName(GLuint program,
......@@ -491,16 +515,24 @@ GLboolean GL_APIENTRY IsProgramPipeline(GLuint pipeline)
EVENT("(GLuint pipeline = %u)", pipeline);
Context *context = GetValidGlobalContext();
GLboolean returnValue;
if (context)
{
ANGLE_CAPTURE(IsProgramPipeline, context, pipeline);
if (context->skipValidation() || ValidateIsProgramPipeline(context, pipeline))
{
return context->isProgramPipeline(pipeline);
returnValue = context->isProgramPipeline(pipeline);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsProgramPipeline, GLboolean>();
}
}
return GetDefaultReturnValue<EntryPoint::IsProgramPipeline, GLboolean>();
else
{
returnValue = GetDefaultReturnValue<EntryPoint::IsProgramPipeline, GLboolean>();
}
return returnValue;
}
void GL_APIENTRY MemoryBarrier(GLbitfield barriers)
......
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