• 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_4_2_autogen.cpp:
9 //   Defines the GL 4.2 entry points.
10 
11 #include "libGL/entry_points_gl_4_2_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/validationGL42_autogen.h"
25 #include "libGLESv2/global_state.h"
26 
27 namespace gl
28 {
BindImageTexture(GLuint unit,GLuint texture,GLint level,GLboolean layered,GLint layer,GLenum access,GLenum format)29 void GL_APIENTRY BindImageTexture(GLuint unit,
30                                   GLuint texture,
31                                   GLint level,
32                                   GLboolean layered,
33                                   GLint layer,
34                                   GLenum access,
35                                   GLenum format)
36 {
37     EVENT(
38         "(GLuint unit = %u, GLuint texture = %u, GLint level = %d, GLboolean layered = %s, GLint "
39         "layer = %d, GLenum access = %s, GLenum format = %s)",
40         unit, texture, level, GLbooleanToString(layered), layer,
41         GLenumToString(GLenumGroup::BufferAccessARB, access),
42         GLenumToString(GLenumGroup::InternalFormat, format));
43 
44     Context *context = GetValidGlobalContext();
45     if (context)
46     {
47         TextureID texturePacked                       = FromGL<TextureID>(texture);
48         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
49         bool isCallValid                              = (context->skipValidation() ||
50                             ValidateBindImageTexture(context, unit, texturePacked, level, layered,
51                                                      layer, access, format));
52         if (isCallValid)
53         {
54             context->bindImageTexture(unit, texturePacked, level, layered, layer, access, format);
55         }
56         ANGLE_CAPTURE(BindImageTexture, isCallValid, context, unit, texturePacked, level, layered,
57                       layer, access, format);
58     }
59 }
60 
DrawArraysInstancedBaseInstance(GLenum mode,GLint first,GLsizei count,GLsizei instancecount,GLuint baseinstance)61 void GL_APIENTRY DrawArraysInstancedBaseInstance(GLenum mode,
62                                                  GLint first,
63                                                  GLsizei count,
64                                                  GLsizei instancecount,
65                                                  GLuint baseinstance)
66 {
67     EVENT(
68         "(GLenum mode = %s, GLint first = %d, GLsizei count = %d, GLsizei instancecount = %d, "
69         "GLuint baseinstance = %u)",
70         GLenumToString(GLenumGroup::PrimitiveType, mode), first, count, instancecount,
71         baseinstance);
72 
73     Context *context = GetValidGlobalContext();
74     if (context)
75     {
76         PrimitiveMode modePacked                      = FromGL<PrimitiveMode>(mode);
77         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
78         bool isCallValid                              = (context->skipValidation() ||
79                             ValidateDrawArraysInstancedBaseInstance(
80                                 context, modePacked, first, count, instancecount, baseinstance));
81         if (isCallValid)
82         {
83             context->drawArraysInstancedBaseInstance(modePacked, first, count, instancecount,
84                                                      baseinstance);
85         }
86         ANGLE_CAPTURE(DrawArraysInstancedBaseInstance, isCallValid, context, modePacked, first,
87                       count, instancecount, baseinstance);
88     }
89 }
90 
DrawElementsInstancedBaseInstance(GLenum mode,GLsizei count,GLenum type,const void * indices,GLsizei instancecount,GLuint baseinstance)91 void GL_APIENTRY DrawElementsInstancedBaseInstance(GLenum mode,
92                                                    GLsizei count,
93                                                    GLenum type,
94                                                    const void *indices,
95                                                    GLsizei instancecount,
96                                                    GLuint baseinstance)
97 {
98     EVENT(
99         "(GLenum mode = %s, GLsizei count = %d, GLenum type = %s, const void *indices = "
100         "0x%016" PRIxPTR ", GLsizei instancecount = %d, GLuint baseinstance = %u)",
101         GLenumToString(GLenumGroup::PrimitiveType, mode), count,
102         GLenumToString(GLenumGroup::PrimitiveType, type), (uintptr_t)indices, instancecount,
103         baseinstance);
104 
105     Context *context = GetValidGlobalContext();
106     if (context)
107     {
108         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
109         bool isCallValid                              = (context->skipValidation() ||
110                             ValidateDrawElementsInstancedBaseInstance(
111                                 context, mode, count, type, indices, instancecount, baseinstance));
112         if (isCallValid)
113         {
114             context->drawElementsInstancedBaseInstance(mode, count, type, indices, instancecount,
115                                                        baseinstance);
116         }
117         ANGLE_CAPTURE(DrawElementsInstancedBaseInstance, isCallValid, context, mode, count, type,
118                       indices, instancecount, baseinstance);
119     }
120 }
121 
DrawElementsInstancedBaseVertexBaseInstance(GLenum mode,GLsizei count,GLenum type,const void * indices,GLsizei instancecount,GLint basevertex,GLuint baseinstance)122 void GL_APIENTRY DrawElementsInstancedBaseVertexBaseInstance(GLenum mode,
123                                                              GLsizei count,
124                                                              GLenum type,
125                                                              const void *indices,
126                                                              GLsizei instancecount,
127                                                              GLint basevertex,
128                                                              GLuint baseinstance)
129 {
130     EVENT(
131         "(GLenum mode = %s, GLsizei count = %d, GLenum type = %s, const void *indices = "
132         "0x%016" PRIxPTR
133         ", GLsizei instancecount = %d, GLint basevertex = %d, GLuint baseinstance = %u)",
134         GLenumToString(GLenumGroup::PrimitiveType, mode), count,
135         GLenumToString(GLenumGroup::PrimitiveType, type), (uintptr_t)indices, instancecount,
136         basevertex, baseinstance);
137 
138     Context *context = GetValidGlobalContext();
139     if (context)
140     {
141         PrimitiveMode modePacked                      = FromGL<PrimitiveMode>(mode);
142         DrawElementsType typePacked                   = FromGL<DrawElementsType>(type);
143         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
144         bool isCallValid =
145             (context->skipValidation() || ValidateDrawElementsInstancedBaseVertexBaseInstance(
146                                               context, modePacked, count, typePacked, indices,
147                                               instancecount, basevertex, baseinstance));
148         if (isCallValid)
149         {
150             context->drawElementsInstancedBaseVertexBaseInstance(
151                 modePacked, count, typePacked, indices, instancecount, basevertex, baseinstance);
152         }
153         ANGLE_CAPTURE(DrawElementsInstancedBaseVertexBaseInstance, isCallValid, context, modePacked,
154                       count, typePacked, indices, instancecount, basevertex, baseinstance);
155     }
156 }
157 
DrawTransformFeedbackInstanced(GLenum mode,GLuint id,GLsizei instancecount)158 void GL_APIENTRY DrawTransformFeedbackInstanced(GLenum mode, GLuint id, GLsizei instancecount)
159 {
160     EVENT("(GLenum mode = %s, GLuint id = %u, GLsizei instancecount = %d)",
161           GLenumToString(GLenumGroup::PrimitiveType, mode), id, instancecount);
162 
163     Context *context = GetValidGlobalContext();
164     if (context)
165     {
166         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
167         bool isCallValid = (context->skipValidation() || ValidateDrawTransformFeedbackInstanced(
168                                                              context, mode, id, instancecount));
169         if (isCallValid)
170         {
171             context->drawTransformFeedbackInstanced(mode, id, instancecount);
172         }
173         ANGLE_CAPTURE(DrawTransformFeedbackInstanced, isCallValid, context, mode, id,
174                       instancecount);
175     }
176 }
177 
DrawTransformFeedbackStreamInstanced(GLenum mode,GLuint id,GLuint stream,GLsizei instancecount)178 void GL_APIENTRY DrawTransformFeedbackStreamInstanced(GLenum mode,
179                                                       GLuint id,
180                                                       GLuint stream,
181                                                       GLsizei instancecount)
182 {
183     EVENT("(GLenum mode = %s, GLuint id = %u, GLuint stream = %u, GLsizei instancecount = %d)",
184           GLenumToString(GLenumGroup::PrimitiveType, mode), id, stream, instancecount);
185 
186     Context *context = GetValidGlobalContext();
187     if (context)
188     {
189         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
190         bool isCallValid =
191             (context->skipValidation() || ValidateDrawTransformFeedbackStreamInstanced(
192                                               context, mode, id, stream, instancecount));
193         if (isCallValid)
194         {
195             context->drawTransformFeedbackStreamInstanced(mode, id, stream, instancecount);
196         }
197         ANGLE_CAPTURE(DrawTransformFeedbackStreamInstanced, isCallValid, context, mode, id, stream,
198                       instancecount);
199     }
200 }
201 
GetActiveAtomicCounterBufferiv(GLuint program,GLuint bufferIndex,GLenum pname,GLint * params)202 void GL_APIENTRY GetActiveAtomicCounterBufferiv(GLuint program,
203                                                 GLuint bufferIndex,
204                                                 GLenum pname,
205                                                 GLint *params)
206 {
207     EVENT(
208         "(GLuint program = %u, GLuint bufferIndex = %u, GLenum pname = %s, GLint *params = "
209         "0x%016" PRIxPTR ")",
210         program, bufferIndex, GLenumToString(GLenumGroup::AtomicCounterBufferPName, pname),
211         (uintptr_t)params);
212 
213     Context *context = GetValidGlobalContext();
214     if (context)
215     {
216         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
217         bool isCallValid =
218             (context->skipValidation() ||
219              ValidateGetActiveAtomicCounterBufferiv(context, program, bufferIndex, pname, params));
220         if (isCallValid)
221         {
222             context->getActiveAtomicCounterBufferiv(program, bufferIndex, pname, params);
223         }
224         ANGLE_CAPTURE(GetActiveAtomicCounterBufferiv, isCallValid, context, program, bufferIndex,
225                       pname, params);
226     }
227 }
228 
GetInternalformativ(GLenum target,GLenum internalformat,GLenum pname,GLsizei bufSize,GLint * params)229 void GL_APIENTRY GetInternalformativ(GLenum target,
230                                      GLenum internalformat,
231                                      GLenum pname,
232                                      GLsizei bufSize,
233                                      GLint *params)
234 {
235     EVENT(
236         "(GLenum target = %s, GLenum internalformat = %s, GLenum pname = %s, GLsizei bufSize = %d, "
237         "GLint *params = 0x%016" PRIxPTR ")",
238         GLenumToString(GLenumGroup::TextureTarget, target),
239         GLenumToString(GLenumGroup::InternalFormat, internalformat),
240         GLenumToString(GLenumGroup::InternalFormatPName, pname), bufSize, (uintptr_t)params);
241 
242     Context *context = GetValidGlobalContext();
243     if (context)
244     {
245         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
246         bool isCallValid =
247             (context->skipValidation() ||
248              ValidateGetInternalformativ(context, target, internalformat, pname, bufSize, params));
249         if (isCallValid)
250         {
251             context->getInternalformativ(target, internalformat, pname, bufSize, params);
252         }
253         ANGLE_CAPTURE(GetInternalformativ, isCallValid, context, target, internalformat, pname,
254                       bufSize, params);
255     }
256 }
257 
MemoryBarrier(GLbitfield barriers)258 void GL_APIENTRY MemoryBarrier(GLbitfield barriers)
259 {
260     EVENT("(GLbitfield barriers = %s)",
261           GLbitfieldToString(GLenumGroup::MemoryBarrierMask, barriers).c_str());
262 
263     Context *context = GetValidGlobalContext();
264     if (context)
265     {
266         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
267         bool isCallValid = (context->skipValidation() || ValidateMemoryBarrier(context, barriers));
268         if (isCallValid)
269         {
270             context->memoryBarrier(barriers);
271         }
272         ANGLE_CAPTURE(MemoryBarrier, isCallValid, context, barriers);
273     }
274 }
275 
TexStorage1D(GLenum target,GLsizei levels,GLenum internalformat,GLsizei width)276 void GL_APIENTRY TexStorage1D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)
277 {
278     EVENT(
279         "(GLenum target = %s, GLsizei levels = %d, GLenum internalformat = %s, GLsizei width = %d)",
280         GLenumToString(GLenumGroup::TextureTarget, target), levels,
281         GLenumToString(GLenumGroup::InternalFormat, internalformat), width);
282 
283     Context *context = GetValidGlobalContext();
284     if (context)
285     {
286         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
287         bool isCallValid                              = (context->skipValidation() ||
288                             ValidateTexStorage1D(context, target, levels, internalformat, width));
289         if (isCallValid)
290         {
291             context->texStorage1D(target, levels, internalformat, width);
292         }
293         ANGLE_CAPTURE(TexStorage1D, isCallValid, context, target, levels, internalformat, width);
294     }
295 }
296 
297 void GL_APIENTRY
TexStorage2D(GLenum target,GLsizei levels,GLenum internalformat,GLsizei width,GLsizei height)298 TexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
299 {
300     EVENT(
301         "(GLenum target = %s, GLsizei levels = %d, GLenum internalformat = %s, GLsizei width = %d, "
302         "GLsizei height = %d)",
303         GLenumToString(GLenumGroup::TextureTarget, target), levels,
304         GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height);
305 
306     Context *context = GetValidGlobalContext();
307     if (context)
308     {
309         TextureType targetPacked                      = FromGL<TextureType>(target);
310         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
311         bool isCallValid =
312             (context->skipValidation() ||
313              ValidateTexStorage2D(context, targetPacked, levels, internalformat, width, height));
314         if (isCallValid)
315         {
316             context->texStorage2D(targetPacked, levels, internalformat, width, height);
317         }
318         ANGLE_CAPTURE(TexStorage2D, isCallValid, context, targetPacked, levels, internalformat,
319                       width, height);
320     }
321 }
322 
TexStorage3D(GLenum target,GLsizei levels,GLenum internalformat,GLsizei width,GLsizei height,GLsizei depth)323 void GL_APIENTRY TexStorage3D(GLenum target,
324                               GLsizei levels,
325                               GLenum internalformat,
326                               GLsizei width,
327                               GLsizei height,
328                               GLsizei depth)
329 {
330     EVENT(
331         "(GLenum target = %s, GLsizei levels = %d, GLenum internalformat = %s, GLsizei width = %d, "
332         "GLsizei height = %d, GLsizei depth = %d)",
333         GLenumToString(GLenumGroup::TextureTarget, target), levels,
334         GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height, depth);
335 
336     Context *context = GetValidGlobalContext();
337     if (context)
338     {
339         TextureType targetPacked                      = FromGL<TextureType>(target);
340         std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
341         bool isCallValid                              = (context->skipValidation() ||
342                             ValidateTexStorage3D(context, targetPacked, levels, internalformat,
343                                                  width, height, depth));
344         if (isCallValid)
345         {
346             context->texStorage3D(targetPacked, levels, internalformat, width, height, depth);
347         }
348         ANGLE_CAPTURE(TexStorage3D, isCallValid, context, targetPacked, levels, internalformat,
349                       width, height, depth);
350     }
351 }
352 }  // namespace gl
353