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