1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by generate_entry_points.py using data from gl.xml.
3 //
4 // Copyright 2020 The ANGLE Project Authors. All rights reserved.
5 // Use of this source code is governed by a BSD-style license that can be
6 // found in the LICENSE file.
7 //
8 // entry_points_gl_3_1_autogen.cpp:
9 // Defines the GL 3.1 entry points.
10
11 #include "libGL/entry_points_gl_3_1_autogen.h"
12
13 #include "libANGLE/Context.h"
14 #include "libANGLE/Context.inl.h"
15 #include "libANGLE/entry_points_utils.h"
16 #include "libANGLE/gl_enum_utils.h"
17 #include "libANGLE/validationEGL.h"
18 #include "libANGLE/validationES.h"
19 #include "libANGLE/validationES1.h"
20 #include "libANGLE/validationES2.h"
21 #include "libANGLE/validationES3.h"
22 #include "libANGLE/validationES31.h"
23 #include "libANGLE/validationES32.h"
24 #include "libANGLE/validationESEXT.h"
25 #include "libANGLE/validationGL31_autogen.h"
26 #include "libGLESv2/global_state.h"
27
28 namespace gl
29 {
CopyBufferSubData(GLenum readTarget,GLenum writeTarget,GLintptr readOffset,GLintptr writeOffset,GLsizeiptr size)30 void GL_APIENTRY CopyBufferSubData(GLenum readTarget,
31 GLenum writeTarget,
32 GLintptr readOffset,
33 GLintptr writeOffset,
34 GLsizeiptr size)
35 {
36 Context *context = GetValidGlobalContext();
37 EVENT("glCopyBufferSubData",
38 "context = %d, GLenum readTarget = %s, GLenum writeTarget = %s, GLintptr readOffset = "
39 "%llu, GLintptr writeOffset = %llu, GLsizeiptr size = %llu",
40 CID(context), GLenumToString(GLenumGroup::CopyBufferSubDataTarget, readTarget),
41 GLenumToString(GLenumGroup::CopyBufferSubDataTarget, writeTarget),
42 static_cast<unsigned long long>(readOffset), static_cast<unsigned long long>(writeOffset),
43 static_cast<unsigned long long>(size));
44
45 if (context)
46 {
47 BufferBinding readTargetPacked = FromGL<BufferBinding>(readTarget);
48 BufferBinding writeTargetPacked = FromGL<BufferBinding>(writeTarget);
49 std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
50 bool isCallValid = (context->skipValidation() ||
51 ValidateCopyBufferSubData(context, readTargetPacked, writeTargetPacked,
52 readOffset, writeOffset, size));
53 if (isCallValid)
54 {
55 context->copyBufferSubData(readTargetPacked, writeTargetPacked, readOffset, writeOffset,
56 size);
57 }
58 ANGLE_CAPTURE(CopyBufferSubData, isCallValid, context, readTargetPacked, writeTargetPacked,
59 readOffset, writeOffset, size);
60 }
61 }
62
DrawArraysInstanced(GLenum mode,GLint first,GLsizei count,GLsizei instancecount)63 void GL_APIENTRY DrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
64 {
65 Context *context = GetValidGlobalContext();
66 EVENT("glDrawArraysInstanced",
67 "context = %d, GLenum mode = %s, GLint first = %d, GLsizei count = %d, GLsizei "
68 "instancecount = %d",
69 CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), first, count,
70 instancecount);
71
72 if (context)
73 {
74 PrimitiveMode modePacked = FromGL<PrimitiveMode>(mode);
75 std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
76 bool isCallValid =
77 (context->skipValidation() ||
78 ValidateDrawArraysInstanced(context, modePacked, first, count, instancecount));
79 if (isCallValid)
80 {
81 context->drawArraysInstanced(modePacked, first, count, instancecount);
82 }
83 ANGLE_CAPTURE(DrawArraysInstanced, isCallValid, context, modePacked, first, count,
84 instancecount);
85 }
86 }
87
DrawElementsInstanced(GLenum mode,GLsizei count,GLenum type,const void * indices,GLsizei instancecount)88 void GL_APIENTRY DrawElementsInstanced(GLenum mode,
89 GLsizei count,
90 GLenum type,
91 const void *indices,
92 GLsizei instancecount)
93 {
94 Context *context = GetValidGlobalContext();
95 EVENT("glDrawElementsInstanced",
96 "context = %d, GLenum mode = %s, GLsizei count = %d, GLenum type = %s, const void "
97 "*indices = 0x%016" PRIxPTR ", GLsizei instancecount = %d",
98 CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), count,
99 GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, instancecount);
100
101 if (context)
102 {
103 PrimitiveMode modePacked = FromGL<PrimitiveMode>(mode);
104 DrawElementsType typePacked = FromGL<DrawElementsType>(type);
105 std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
106 bool isCallValid = (context->skipValidation() ||
107 ValidateDrawElementsInstanced(context, modePacked, count, typePacked,
108 indices, instancecount));
109 if (isCallValid)
110 {
111 context->drawElementsInstanced(modePacked, count, typePacked, indices, instancecount);
112 }
113 ANGLE_CAPTURE(DrawElementsInstanced, isCallValid, context, modePacked, count, typePacked,
114 indices, instancecount);
115 }
116 }
117
GetActiveUniformBlockName(GLuint program,GLuint uniformBlockIndex,GLsizei bufSize,GLsizei * length,GLchar * uniformBlockName)118 void GL_APIENTRY GetActiveUniformBlockName(GLuint program,
119 GLuint uniformBlockIndex,
120 GLsizei bufSize,
121 GLsizei *length,
122 GLchar *uniformBlockName)
123 {
124 Context *context = GetValidGlobalContext();
125 EVENT("glGetActiveUniformBlockName",
126 "context = %d, GLuint program = %u, GLuint uniformBlockIndex = %u, GLsizei bufSize = %d, "
127 "GLsizei *length = 0x%016" PRIxPTR ", GLchar *uniformBlockName = 0x%016" PRIxPTR "",
128 CID(context), program, uniformBlockIndex, bufSize, (uintptr_t)length,
129 (uintptr_t)uniformBlockName);
130
131 if (context)
132 {
133 ShaderProgramID programPacked = FromGL<ShaderProgramID>(program);
134 std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
135 bool isCallValid =
136 (context->skipValidation() ||
137 ValidateGetActiveUniformBlockName(context, programPacked, uniformBlockIndex, bufSize,
138 length, uniformBlockName));
139 if (isCallValid)
140 {
141 context->getActiveUniformBlockName(programPacked, uniformBlockIndex, bufSize, length,
142 uniformBlockName);
143 }
144 ANGLE_CAPTURE(GetActiveUniformBlockName, isCallValid, context, programPacked,
145 uniformBlockIndex, bufSize, length, uniformBlockName);
146 }
147 }
148
GetActiveUniformBlockiv(GLuint program,GLuint uniformBlockIndex,GLenum pname,GLint * params)149 void GL_APIENTRY GetActiveUniformBlockiv(GLuint program,
150 GLuint uniformBlockIndex,
151 GLenum pname,
152 GLint *params)
153 {
154 Context *context = GetValidGlobalContext();
155 EVENT("glGetActiveUniformBlockiv",
156 "context = %d, GLuint program = %u, GLuint uniformBlockIndex = %u, GLenum pname = %s, "
157 "GLint *params = 0x%016" PRIxPTR "",
158 CID(context), program, uniformBlockIndex,
159 GLenumToString(GLenumGroup::UniformBlockPName, pname), (uintptr_t)params);
160
161 if (context)
162 {
163 ShaderProgramID programPacked = FromGL<ShaderProgramID>(program);
164 std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
165 bool isCallValid = (context->skipValidation() ||
166 ValidateGetActiveUniformBlockiv(context, programPacked,
167 uniformBlockIndex, pname, params));
168 if (isCallValid)
169 {
170 context->getActiveUniformBlockiv(programPacked, uniformBlockIndex, pname, params);
171 }
172 ANGLE_CAPTURE(GetActiveUniformBlockiv, isCallValid, context, programPacked,
173 uniformBlockIndex, pname, params);
174 }
175 }
176
GetActiveUniformName(GLuint program,GLuint uniformIndex,GLsizei bufSize,GLsizei * length,GLchar * uniformName)177 void GL_APIENTRY GetActiveUniformName(GLuint program,
178 GLuint uniformIndex,
179 GLsizei bufSize,
180 GLsizei *length,
181 GLchar *uniformName)
182 {
183 Context *context = GetValidGlobalContext();
184 EVENT("glGetActiveUniformName",
185 "context = %d, GLuint program = %u, GLuint uniformIndex = %u, GLsizei bufSize = %d, "
186 "GLsizei *length = 0x%016" PRIxPTR ", GLchar *uniformName = 0x%016" PRIxPTR "",
187 CID(context), program, uniformIndex, bufSize, (uintptr_t)length, (uintptr_t)uniformName);
188
189 if (context)
190 {
191 ShaderProgramID programPacked = FromGL<ShaderProgramID>(program);
192 std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
193 bool isCallValid = (context->skipValidation() ||
194 ValidateGetActiveUniformName(context, programPacked, uniformIndex,
195 bufSize, length, uniformName));
196 if (isCallValid)
197 {
198 context->getActiveUniformName(programPacked, uniformIndex, bufSize, length,
199 uniformName);
200 }
201 ANGLE_CAPTURE(GetActiveUniformName, isCallValid, context, programPacked, uniformIndex,
202 bufSize, length, uniformName);
203 }
204 }
205
GetActiveUniformsiv(GLuint program,GLsizei uniformCount,const GLuint * uniformIndices,GLenum pname,GLint * params)206 void GL_APIENTRY GetActiveUniformsiv(GLuint program,
207 GLsizei uniformCount,
208 const GLuint *uniformIndices,
209 GLenum pname,
210 GLint *params)
211 {
212 Context *context = GetValidGlobalContext();
213 EVENT("glGetActiveUniformsiv",
214 "context = %d, GLuint program = %u, GLsizei uniformCount = %d, const GLuint "
215 "*uniformIndices = 0x%016" PRIxPTR ", GLenum pname = %s, GLint *params = 0x%016" PRIxPTR
216 "",
217 CID(context), program, uniformCount, (uintptr_t)uniformIndices,
218 GLenumToString(GLenumGroup::UniformPName, pname), (uintptr_t)params);
219
220 if (context)
221 {
222 ShaderProgramID programPacked = FromGL<ShaderProgramID>(program);
223 std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
224 bool isCallValid = (context->skipValidation() ||
225 ValidateGetActiveUniformsiv(context, programPacked, uniformCount,
226 uniformIndices, pname, params));
227 if (isCallValid)
228 {
229 context->getActiveUniformsiv(programPacked, uniformCount, uniformIndices, pname,
230 params);
231 }
232 ANGLE_CAPTURE(GetActiveUniformsiv, isCallValid, context, programPacked, uniformCount,
233 uniformIndices, pname, params);
234 }
235 }
236
GetUniformBlockIndex(GLuint program,const GLchar * uniformBlockName)237 GLuint GL_APIENTRY GetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName)
238 {
239 Context *context = GetValidGlobalContext();
240 EVENT("glGetUniformBlockIndex",
241 "context = %d, GLuint program = %u, const GLchar *uniformBlockName = 0x%016" PRIxPTR "",
242 CID(context), program, (uintptr_t)uniformBlockName);
243
244 GLuint returnValue;
245 if (context)
246 {
247 ShaderProgramID programPacked = FromGL<ShaderProgramID>(program);
248 std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
249 bool isCallValid = (context->skipValidation() ||
250 ValidateGetUniformBlockIndex(context, programPacked, uniformBlockName));
251 if (isCallValid)
252 {
253 returnValue = context->getUniformBlockIndex(programPacked, uniformBlockName);
254 }
255 else
256 {
257 returnValue = GetDefaultReturnValue<EntryPoint::GetUniformBlockIndex, GLuint>();
258 }
259 ANGLE_CAPTURE(GetUniformBlockIndex, isCallValid, context, programPacked, uniformBlockName,
260 returnValue);
261 }
262 else
263 {
264 returnValue = GetDefaultReturnValue<EntryPoint::GetUniformBlockIndex, GLuint>();
265 }
266 return returnValue;
267 }
268
GetUniformIndices(GLuint program,GLsizei uniformCount,const GLchar * const * uniformNames,GLuint * uniformIndices)269 void GL_APIENTRY GetUniformIndices(GLuint program,
270 GLsizei uniformCount,
271 const GLchar *const *uniformNames,
272 GLuint *uniformIndices)
273 {
274 Context *context = GetValidGlobalContext();
275 EVENT("glGetUniformIndices",
276 "context = %d, GLuint program = %u, GLsizei uniformCount = %d, const GLchar "
277 "*const*uniformNames = 0x%016" PRIxPTR ", GLuint *uniformIndices = 0x%016" PRIxPTR "",
278 CID(context), program, uniformCount, (uintptr_t)uniformNames, (uintptr_t)uniformIndices);
279
280 if (context)
281 {
282 ShaderProgramID programPacked = FromGL<ShaderProgramID>(program);
283 std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
284 bool isCallValid = (context->skipValidation() ||
285 ValidateGetUniformIndices(context, programPacked, uniformCount,
286 uniformNames, uniformIndices));
287 if (isCallValid)
288 {
289 context->getUniformIndices(programPacked, uniformCount, uniformNames, uniformIndices);
290 }
291 ANGLE_CAPTURE(GetUniformIndices, isCallValid, context, programPacked, uniformCount,
292 uniformNames, uniformIndices);
293 }
294 }
295
PrimitiveRestartIndex(GLuint index)296 void GL_APIENTRY PrimitiveRestartIndex(GLuint index)
297 {
298 Context *context = GetValidGlobalContext();
299 EVENT("glPrimitiveRestartIndex", "context = %d, GLuint index = %u", CID(context), index);
300
301 if (context)
302 {
303 std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
304 bool isCallValid =
305 (context->skipValidation() || ValidatePrimitiveRestartIndex(context, index));
306 if (isCallValid)
307 {
308 context->primitiveRestartIndex(index);
309 }
310 ANGLE_CAPTURE(PrimitiveRestartIndex, isCallValid, context, index);
311 }
312 }
313
TexBuffer(GLenum target,GLenum internalformat,GLuint buffer)314 void GL_APIENTRY TexBuffer(GLenum target, GLenum internalformat, GLuint buffer)
315 {
316 Context *context = GetValidGlobalContext();
317 EVENT("glTexBuffer",
318 "context = %d, GLenum target = %s, GLenum internalformat = %s, GLuint buffer = %u",
319 CID(context), GLenumToString(GLenumGroup::TextureTarget, target),
320 GLenumToString(GLenumGroup::InternalFormat, internalformat), buffer);
321
322 if (context)
323 {
324 BufferID bufferPacked = FromGL<BufferID>(buffer);
325 std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
326 bool isCallValid = (context->skipValidation() ||
327 ValidateTexBuffer(context, target, internalformat, bufferPacked));
328 if (isCallValid)
329 {
330 context->texBuffer(target, internalformat, bufferPacked);
331 }
332 ANGLE_CAPTURE(TexBuffer, isCallValid, context, target, internalformat, bufferPacked);
333 }
334 }
335
UniformBlockBinding(GLuint program,GLuint uniformBlockIndex,GLuint uniformBlockBinding)336 void GL_APIENTRY UniformBlockBinding(GLuint program,
337 GLuint uniformBlockIndex,
338 GLuint uniformBlockBinding)
339 {
340 Context *context = GetValidGlobalContext();
341 EVENT("glUniformBlockBinding",
342 "context = %d, GLuint program = %u, GLuint uniformBlockIndex = %u, GLuint "
343 "uniformBlockBinding = %u",
344 CID(context), program, uniformBlockIndex, uniformBlockBinding);
345
346 if (context)
347 {
348 ShaderProgramID programPacked = FromGL<ShaderProgramID>(program);
349 std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
350 bool isCallValid = (context->skipValidation() ||
351 ValidateUniformBlockBinding(context, programPacked, uniformBlockIndex,
352 uniformBlockBinding));
353 if (isCallValid)
354 {
355 context->uniformBlockBinding(programPacked, uniformBlockIndex, uniformBlockBinding);
356 }
357 ANGLE_CAPTURE(UniformBlockBinding, isCallValid, context, programPacked, uniformBlockIndex,
358 uniformBlockBinding);
359 }
360 }
361 } // namespace gl
362