• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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