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