• 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 2019 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_autogen.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/validationESEXT.h"
24 #include "libANGLE/validationGL31_autogen.h"
25 #include "libGLESv2/global_state.h"
26 
27 namespace gl
28 {
CopyBufferSubData(GLenum readTarget,GLenum writeTarget,GLintptr readOffset,GLintptr writeOffset,GLsizeiptr size)29 void GL_APIENTRY CopyBufferSubData(GLenum readTarget,
30                                    GLenum writeTarget,
31                                    GLintptr readOffset,
32                                    GLintptr writeOffset,
33                                    GLsizeiptr size)
34 {
35     EVENT(
36         "(GLenum readTarget = %s, GLenum writeTarget = %s, GLintptr readOffset = %llu, GLintptr "
37         "writeOffset = %llu, GLsizeiptr size = %llu)",
38         GLenumToString(GLenumGroup::CopyBufferSubDataTarget, readTarget),
39         GLenumToString(GLenumGroup::CopyBufferSubDataTarget, writeTarget),
40         static_cast<unsigned long long>(readOffset), static_cast<unsigned long long>(writeOffset),
41         static_cast<unsigned long long>(size));
42 
43     Context *context = GetValidGlobalContext();
44     if (context)
45     {
46         BufferBinding readTargetPacked                = FromGL<BufferBinding>(readTarget);
47         BufferBinding writeTargetPacked               = FromGL<BufferBinding>(writeTarget);
48         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
49         bool isCallValid                              = (context->skipValidation() ||
50                             ValidateCopyBufferSubData(context, readTargetPacked, writeTargetPacked,
51                                                       readOffset, writeOffset, size));
52         if (isCallValid)
53         {
54             context->copyBufferSubData(readTargetPacked, writeTargetPacked, readOffset, writeOffset,
55                                        size);
56         }
57         ANGLE_CAPTURE(CopyBufferSubData, isCallValid, context, readTargetPacked, writeTargetPacked,
58                       readOffset, writeOffset, size);
59     }
60 }
61 
DrawArraysInstanced(GLenum mode,GLint first,GLsizei count,GLsizei instancecount)62 void GL_APIENTRY DrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
63 {
64     EVENT("(GLenum mode = %s, GLint first = %d, GLsizei count = %d, GLsizei instancecount = %d)",
65           GLenumToString(GLenumGroup::PrimitiveType, mode), first, count, instancecount);
66 
67     Context *context = GetValidGlobalContext();
68     if (context)
69     {
70         PrimitiveMode modePacked                      = FromGL<PrimitiveMode>(mode);
71         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
72         bool isCallValid =
73             (context->skipValidation() ||
74              ValidateDrawArraysInstanced(context, modePacked, first, count, instancecount));
75         if (isCallValid)
76         {
77             context->drawArraysInstanced(modePacked, first, count, instancecount);
78         }
79         ANGLE_CAPTURE(DrawArraysInstanced, isCallValid, context, modePacked, first, count,
80                       instancecount);
81     }
82 }
83 
DrawElementsInstanced(GLenum mode,GLsizei count,GLenum type,const void * indices,GLsizei instancecount)84 void GL_APIENTRY DrawElementsInstanced(GLenum mode,
85                                        GLsizei count,
86                                        GLenum type,
87                                        const void *indices,
88                                        GLsizei instancecount)
89 {
90     EVENT(
91         "(GLenum mode = %s, GLsizei count = %d, GLenum type = %s, const void *indices = "
92         "0x%016" PRIxPTR ", GLsizei instancecount = %d)",
93         GLenumToString(GLenumGroup::PrimitiveType, mode), count,
94         GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, instancecount);
95 
96     Context *context = GetValidGlobalContext();
97     if (context)
98     {
99         PrimitiveMode modePacked                      = FromGL<PrimitiveMode>(mode);
100         DrawElementsType typePacked                   = FromGL<DrawElementsType>(type);
101         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
102         bool isCallValid                              = (context->skipValidation() ||
103                             ValidateDrawElementsInstanced(context, modePacked, count, typePacked,
104                                                           indices, instancecount));
105         if (isCallValid)
106         {
107             context->drawElementsInstanced(modePacked, count, typePacked, indices, instancecount);
108         }
109         ANGLE_CAPTURE(DrawElementsInstanced, isCallValid, context, modePacked, count, typePacked,
110                       indices, instancecount);
111     }
112 }
113 
GetActiveUniformBlockName(GLuint program,GLuint uniformBlockIndex,GLsizei bufSize,GLsizei * length,GLchar * uniformBlockName)114 void GL_APIENTRY GetActiveUniformBlockName(GLuint program,
115                                            GLuint uniformBlockIndex,
116                                            GLsizei bufSize,
117                                            GLsizei *length,
118                                            GLchar *uniformBlockName)
119 {
120     EVENT(
121         "(GLuint program = %u, GLuint uniformBlockIndex = %u, GLsizei bufSize = %d, GLsizei "
122         "*length = 0x%016" PRIxPTR ", GLchar *uniformBlockName = 0x%016" PRIxPTR ")",
123         program, uniformBlockIndex, bufSize, (uintptr_t)length, (uintptr_t)uniformBlockName);
124 
125     Context *context = GetValidGlobalContext();
126     if (context)
127     {
128         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
129         bool isCallValid                              = (context->skipValidation() ||
130                             ValidateGetActiveUniformBlockName(context, program, uniformBlockIndex,
131                                                               bufSize, length, uniformBlockName));
132         if (isCallValid)
133         {
134             context->getActiveUniformBlockName(program, uniformBlockIndex, bufSize, length,
135                                                uniformBlockName);
136         }
137         ANGLE_CAPTURE(GetActiveUniformBlockName, isCallValid, context, program, uniformBlockIndex,
138                       bufSize, length, uniformBlockName);
139     }
140 }
141 
GetActiveUniformBlockiv(GLuint program,GLuint uniformBlockIndex,GLenum pname,GLint * params)142 void GL_APIENTRY GetActiveUniformBlockiv(GLuint program,
143                                          GLuint uniformBlockIndex,
144                                          GLenum pname,
145                                          GLint *params)
146 {
147     EVENT(
148         "(GLuint program = %u, GLuint uniformBlockIndex = %u, GLenum pname = %s, GLint *params = "
149         "0x%016" PRIxPTR ")",
150         program, uniformBlockIndex, GLenumToString(GLenumGroup::UniformBlockPName, pname),
151         (uintptr_t)params);
152 
153     Context *context = GetValidGlobalContext();
154     if (context)
155     {
156         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
157         bool isCallValid =
158             (context->skipValidation() ||
159              ValidateGetActiveUniformBlockiv(context, program, uniformBlockIndex, pname, params));
160         if (isCallValid)
161         {
162             context->getActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
163         }
164         ANGLE_CAPTURE(GetActiveUniformBlockiv, isCallValid, context, program, uniformBlockIndex,
165                       pname, params);
166     }
167 }
168 
GetActiveUniformName(GLuint program,GLuint uniformIndex,GLsizei bufSize,GLsizei * length,GLchar * uniformName)169 void GL_APIENTRY GetActiveUniformName(GLuint program,
170                                       GLuint uniformIndex,
171                                       GLsizei bufSize,
172                                       GLsizei *length,
173                                       GLchar *uniformName)
174 {
175     EVENT(
176         "(GLuint program = %u, GLuint uniformIndex = %u, GLsizei bufSize = %d, GLsizei *length = "
177         "0x%016" PRIxPTR ", GLchar *uniformName = 0x%016" PRIxPTR ")",
178         program, uniformIndex, bufSize, (uintptr_t)length, (uintptr_t)uniformName);
179 
180     Context *context = GetValidGlobalContext();
181     if (context)
182     {
183         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
184         bool isCallValid                              = (context->skipValidation() ||
185                             ValidateGetActiveUniformName(context, program, uniformIndex, bufSize,
186                                                          length, uniformName));
187         if (isCallValid)
188         {
189             context->getActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
190         }
191         ANGLE_CAPTURE(GetActiveUniformName, isCallValid, context, program, uniformIndex, bufSize,
192                       length, uniformName);
193     }
194 }
195 
GetActiveUniformsiv(GLuint program,GLsizei uniformCount,const GLuint * uniformIndices,GLenum pname,GLint * params)196 void GL_APIENTRY GetActiveUniformsiv(GLuint program,
197                                      GLsizei uniformCount,
198                                      const GLuint *uniformIndices,
199                                      GLenum pname,
200                                      GLint *params)
201 {
202     EVENT(
203         "(GLuint program = %u, GLsizei uniformCount = %d, const GLuint *uniformIndices = "
204         "0x%016" PRIxPTR ", GLenum pname = %s, GLint *params = 0x%016" PRIxPTR ")",
205         program, uniformCount, (uintptr_t)uniformIndices,
206         GLenumToString(GLenumGroup::UniformPName, pname), (uintptr_t)params);
207 
208     Context *context = GetValidGlobalContext();
209     if (context)
210     {
211         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
212         bool isCallValid                              = (context->skipValidation() ||
213                             ValidateGetActiveUniformsiv(context, program, uniformCount,
214                                                         uniformIndices, pname, params));
215         if (isCallValid)
216         {
217             context->getActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
218         }
219         ANGLE_CAPTURE(GetActiveUniformsiv, isCallValid, context, program, uniformCount,
220                       uniformIndices, pname, params);
221     }
222 }
223 
GetUniformBlockIndex(GLuint program,const GLchar * uniformBlockName)224 GLuint GL_APIENTRY GetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName)
225 {
226     EVENT("(GLuint program = %u, const GLchar *uniformBlockName = 0x%016" PRIxPTR ")", program,
227           (uintptr_t)uniformBlockName);
228 
229     Context *context = GetValidGlobalContext();
230     GLuint returnValue;
231     if (context)
232     {
233         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
234         bool isCallValid                              = (context->skipValidation() ||
235                             ValidateGetUniformBlockIndex(context, program, uniformBlockName));
236         if (isCallValid)
237         {
238             returnValue = context->getUniformBlockIndex(program, uniformBlockName);
239         }
240         else
241         {
242             returnValue = GetDefaultReturnValue<EntryPoint::GetUniformBlockIndex, GLuint>();
243         }
244         ANGLE_CAPTURE(GetUniformBlockIndex, isCallValid, context, program, uniformBlockName,
245                       returnValue);
246     }
247     else
248     {
249         returnValue = GetDefaultReturnValue<EntryPoint::GetUniformBlockIndex, GLuint>();
250     }
251     return returnValue;
252 }
253 
GetUniformIndices(GLuint program,GLsizei uniformCount,const GLchar * const * uniformNames,GLuint * uniformIndices)254 void GL_APIENTRY GetUniformIndices(GLuint program,
255                                    GLsizei uniformCount,
256                                    const GLchar *const *uniformNames,
257                                    GLuint *uniformIndices)
258 {
259     EVENT(
260         "(GLuint program = %u, GLsizei uniformCount = %d, const GLchar *const*uniformNames = "
261         "0x%016" PRIxPTR ", GLuint *uniformIndices = 0x%016" PRIxPTR ")",
262         program, uniformCount, (uintptr_t)uniformNames, (uintptr_t)uniformIndices);
263 
264     Context *context = GetValidGlobalContext();
265     if (context)
266     {
267         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
268         bool isCallValid =
269             (context->skipValidation() || ValidateGetUniformIndices(context, program, uniformCount,
270                                                                     uniformNames, uniformIndices));
271         if (isCallValid)
272         {
273             context->getUniformIndices(program, uniformCount, uniformNames, uniformIndices);
274         }
275         ANGLE_CAPTURE(GetUniformIndices, isCallValid, context, program, uniformCount, uniformNames,
276                       uniformIndices);
277     }
278 }
279 
PrimitiveRestartIndex(GLuint index)280 void GL_APIENTRY PrimitiveRestartIndex(GLuint index)
281 {
282     EVENT("(GLuint index = %u)", index);
283 
284     Context *context = GetValidGlobalContext();
285     if (context)
286     {
287         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
288         bool isCallValid =
289             (context->skipValidation() || ValidatePrimitiveRestartIndex(context, index));
290         if (isCallValid)
291         {
292             context->primitiveRestartIndex(index);
293         }
294         ANGLE_CAPTURE(PrimitiveRestartIndex, isCallValid, context, index);
295     }
296 }
297 
TexBuffer(GLenum target,GLenum internalformat,GLuint buffer)298 void GL_APIENTRY TexBuffer(GLenum target, GLenum internalformat, GLuint buffer)
299 {
300     EVENT("(GLenum target = %s, GLenum internalformat = %s, GLuint buffer = %u)",
301           GLenumToString(GLenumGroup::TextureTarget, target),
302           GLenumToString(GLenumGroup::InternalFormat, internalformat), buffer);
303 
304     Context *context = GetValidGlobalContext();
305     if (context)
306     {
307         BufferID bufferPacked                         = FromGL<BufferID>(buffer);
308         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
309         bool isCallValid                              = (context->skipValidation() ||
310                             ValidateTexBuffer(context, target, internalformat, bufferPacked));
311         if (isCallValid)
312         {
313             context->texBuffer(target, internalformat, bufferPacked);
314         }
315         ANGLE_CAPTURE(TexBuffer, isCallValid, context, target, internalformat, bufferPacked);
316     }
317 }
318 
UniformBlockBinding(GLuint program,GLuint uniformBlockIndex,GLuint uniformBlockBinding)319 void GL_APIENTRY UniformBlockBinding(GLuint program,
320                                      GLuint uniformBlockIndex,
321                                      GLuint uniformBlockBinding)
322 {
323     EVENT("(GLuint program = %u, GLuint uniformBlockIndex = %u, GLuint uniformBlockBinding = %u)",
324           program, uniformBlockIndex, uniformBlockBinding);
325 
326     Context *context = GetValidGlobalContext();
327     if (context)
328     {
329         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
330         bool isCallValid =
331             (context->skipValidation() ||
332              ValidateUniformBlockBinding(context, program, uniformBlockIndex, uniformBlockBinding));
333         if (isCallValid)
334         {
335             context->uniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding);
336         }
337         ANGLE_CAPTURE(UniformBlockBinding, isCallValid, context, program, uniformBlockIndex,
338                       uniformBlockBinding);
339     }
340 }
341 }  // namespace gl
342