Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/angle
Path: blob/main_old/src/libGLESv2/entry_points_gles_3_1_autogen.cpp
1693 views
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_gles_3_1_autogen.cpp:
9
// Defines the GLES 3.1 entry points.
10
11
#include "libGLESv2/entry_points_gles_3_1_autogen.h"
12
13
#include "common/entry_points_enum_autogen.h"
14
#include "libANGLE/Context.h"
15
#include "libANGLE/Context.inl.h"
16
#include "libANGLE/capture/capture_gles_3_1_autogen.h"
17
#include "libANGLE/capture/gl_enum_utils.h"
18
#include "libANGLE/entry_points_utils.h"
19
#include "libANGLE/validationES31.h"
20
#include "libGLESv2/global_state.h"
21
22
using namespace gl;
23
24
extern "C" {
25
void GL_APIENTRY GL_ActiveShaderProgram(GLuint pipeline, GLuint program)
26
{
27
Context *context = GetValidGlobalContext();
28
EVENT(context, GLActiveShaderProgram, "context = %d, pipeline = %u, program = %u", CID(context),
29
pipeline, program);
30
31
if (context)
32
{
33
ProgramPipelineID pipelinePacked = PackParam<ProgramPipelineID>(pipeline);
34
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
35
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
36
bool isCallValid = (context->skipValidation() ||
37
ValidateActiveShaderProgram(context, pipelinePacked, programPacked));
38
if (isCallValid)
39
{
40
context->activeShaderProgram(pipelinePacked, programPacked);
41
}
42
ANGLE_CAPTURE(ActiveShaderProgram, isCallValid, context, pipelinePacked, programPacked);
43
}
44
else
45
{
46
GenerateContextLostErrorOnCurrentGlobalContext();
47
}
48
}
49
50
void GL_APIENTRY GL_BindImageTexture(GLuint unit,
51
GLuint texture,
52
GLint level,
53
GLboolean layered,
54
GLint layer,
55
GLenum access,
56
GLenum format)
57
{
58
Context *context = GetValidGlobalContext();
59
EVENT(context, GLBindImageTexture,
60
"context = %d, unit = %u, texture = %u, level = %d, layered = %s, layer = %d, access = "
61
"%s, format = %s",
62
CID(context), unit, texture, level, GLbooleanToString(layered), layer,
63
GLenumToString(GLenumGroup::BufferAccessARB, access),
64
GLenumToString(GLenumGroup::InternalFormat, format));
65
66
if (context)
67
{
68
TextureID texturePacked = PackParam<TextureID>(texture);
69
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
70
bool isCallValid = (context->skipValidation() ||
71
ValidateBindImageTexture(context, unit, texturePacked, level, layered,
72
layer, access, format));
73
if (isCallValid)
74
{
75
context->bindImageTexture(unit, texturePacked, level, layered, layer, access, format);
76
}
77
ANGLE_CAPTURE(BindImageTexture, isCallValid, context, unit, texturePacked, level, layered,
78
layer, access, format);
79
}
80
else
81
{
82
GenerateContextLostErrorOnCurrentGlobalContext();
83
}
84
}
85
86
void GL_APIENTRY GL_BindProgramPipeline(GLuint pipeline)
87
{
88
Context *context = GetValidGlobalContext();
89
EVENT(context, GLBindProgramPipeline, "context = %d, pipeline = %u", CID(context), pipeline);
90
91
if (context)
92
{
93
ProgramPipelineID pipelinePacked = PackParam<ProgramPipelineID>(pipeline);
94
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
95
bool isCallValid =
96
(context->skipValidation() || ValidateBindProgramPipeline(context, pipelinePacked));
97
if (isCallValid)
98
{
99
context->bindProgramPipeline(pipelinePacked);
100
}
101
ANGLE_CAPTURE(BindProgramPipeline, isCallValid, context, pipelinePacked);
102
}
103
else
104
{
105
GenerateContextLostErrorOnCurrentGlobalContext();
106
}
107
}
108
109
void GL_APIENTRY GL_BindVertexBuffer(GLuint bindingindex,
110
GLuint buffer,
111
GLintptr offset,
112
GLsizei stride)
113
{
114
Context *context = GetValidGlobalContext();
115
EVENT(context, GLBindVertexBuffer,
116
"context = %d, bindingindex = %u, buffer = %u, offset = %llu, stride = %d", CID(context),
117
bindingindex, buffer, static_cast<unsigned long long>(offset), stride);
118
119
if (context)
120
{
121
BufferID bufferPacked = PackParam<BufferID>(buffer);
122
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
123
bool isCallValid =
124
(context->skipValidation() ||
125
ValidateBindVertexBuffer(context, bindingindex, bufferPacked, offset, stride));
126
if (isCallValid)
127
{
128
context->bindVertexBuffer(bindingindex, bufferPacked, offset, stride);
129
}
130
ANGLE_CAPTURE(BindVertexBuffer, isCallValid, context, bindingindex, bufferPacked, offset,
131
stride);
132
}
133
else
134
{
135
GenerateContextLostErrorOnCurrentGlobalContext();
136
}
137
}
138
139
GLuint GL_APIENTRY GL_CreateShaderProgramv(GLenum type, GLsizei count, const GLchar *const *strings)
140
{
141
Context *context = GetValidGlobalContext();
142
EVENT(context, GLCreateShaderProgramv,
143
"context = %d, type = %s, count = %d, strings = 0x%016" PRIxPTR "", CID(context),
144
GLenumToString(GLenumGroup::ShaderType, type), count, (uintptr_t)strings);
145
146
GLuint returnValue;
147
if (context)
148
{
149
ShaderType typePacked = PackParam<ShaderType>(type);
150
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
151
bool isCallValid = (context->skipValidation() ||
152
ValidateCreateShaderProgramv(context, typePacked, count, strings));
153
if (isCallValid)
154
{
155
returnValue = context->createShaderProgramv(typePacked, count, strings);
156
}
157
else
158
{
159
returnValue =
160
GetDefaultReturnValue<angle::EntryPoint::GLCreateShaderProgramv, GLuint>();
161
}
162
ANGLE_CAPTURE(CreateShaderProgramv, isCallValid, context, typePacked, count, strings,
163
returnValue);
164
}
165
else
166
{
167
GenerateContextLostErrorOnCurrentGlobalContext();
168
returnValue = GetDefaultReturnValue<angle::EntryPoint::GLCreateShaderProgramv, GLuint>();
169
}
170
return returnValue;
171
}
172
173
void GL_APIENTRY GL_DeleteProgramPipelines(GLsizei n, const GLuint *pipelines)
174
{
175
Context *context = GetValidGlobalContext();
176
EVENT(context, GLDeleteProgramPipelines, "context = %d, n = %d, pipelines = 0x%016" PRIxPTR "",
177
CID(context), n, (uintptr_t)pipelines);
178
179
if (context)
180
{
181
const ProgramPipelineID *pipelinesPacked = PackParam<const ProgramPipelineID *>(pipelines);
182
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
183
bool isCallValid = (context->skipValidation() ||
184
ValidateDeleteProgramPipelines(context, n, pipelinesPacked));
185
if (isCallValid)
186
{
187
context->deleteProgramPipelines(n, pipelinesPacked);
188
}
189
ANGLE_CAPTURE(DeleteProgramPipelines, isCallValid, context, n, pipelinesPacked);
190
}
191
else
192
{
193
GenerateContextLostErrorOnCurrentGlobalContext();
194
}
195
}
196
197
void GL_APIENTRY GL_DispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)
198
{
199
Context *context = GetValidGlobalContext();
200
EVENT(context, GLDispatchCompute,
201
"context = %d, num_groups_x = %u, num_groups_y = %u, num_groups_z = %u", CID(context),
202
num_groups_x, num_groups_y, num_groups_z);
203
204
if (context)
205
{
206
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
207
bool isCallValid =
208
(context->skipValidation() ||
209
ValidateDispatchCompute(context, num_groups_x, num_groups_y, num_groups_z));
210
if (isCallValid)
211
{
212
context->dispatchCompute(num_groups_x, num_groups_y, num_groups_z);
213
}
214
ANGLE_CAPTURE(DispatchCompute, isCallValid, context, num_groups_x, num_groups_y,
215
num_groups_z);
216
}
217
else
218
{
219
GenerateContextLostErrorOnCurrentGlobalContext();
220
}
221
}
222
223
void GL_APIENTRY GL_DispatchComputeIndirect(GLintptr indirect)
224
{
225
Context *context = GetValidGlobalContext();
226
EVENT(context, GLDispatchComputeIndirect, "context = %d, indirect = %llu", CID(context),
227
static_cast<unsigned long long>(indirect));
228
229
if (context)
230
{
231
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
232
bool isCallValid =
233
(context->skipValidation() || ValidateDispatchComputeIndirect(context, indirect));
234
if (isCallValid)
235
{
236
context->dispatchComputeIndirect(indirect);
237
}
238
ANGLE_CAPTURE(DispatchComputeIndirect, isCallValid, context, indirect);
239
}
240
else
241
{
242
GenerateContextLostErrorOnCurrentGlobalContext();
243
}
244
}
245
246
void GL_APIENTRY GL_DrawArraysIndirect(GLenum mode, const void *indirect)
247
{
248
Context *context = GetValidGlobalContext();
249
EVENT(context, GLDrawArraysIndirect, "context = %d, mode = %s, indirect = 0x%016" PRIxPTR "",
250
CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), (uintptr_t)indirect);
251
252
if (context)
253
{
254
PrimitiveMode modePacked = PackParam<PrimitiveMode>(mode);
255
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
256
bool isCallValid = (context->skipValidation() ||
257
ValidateDrawArraysIndirect(context, modePacked, indirect));
258
if (isCallValid)
259
{
260
context->drawArraysIndirect(modePacked, indirect);
261
}
262
ANGLE_CAPTURE(DrawArraysIndirect, isCallValid, context, modePacked, indirect);
263
}
264
else
265
{
266
GenerateContextLostErrorOnCurrentGlobalContext();
267
}
268
}
269
270
void GL_APIENTRY GL_DrawElementsIndirect(GLenum mode, GLenum type, const void *indirect)
271
{
272
Context *context = GetValidGlobalContext();
273
EVENT(context, GLDrawElementsIndirect,
274
"context = %d, mode = %s, type = %s, indirect = 0x%016" PRIxPTR "", CID(context),
275
GLenumToString(GLenumGroup::PrimitiveType, mode),
276
GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indirect);
277
278
if (context)
279
{
280
PrimitiveMode modePacked = PackParam<PrimitiveMode>(mode);
281
DrawElementsType typePacked = PackParam<DrawElementsType>(type);
282
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
283
bool isCallValid =
284
(context->skipValidation() ||
285
ValidateDrawElementsIndirect(context, modePacked, typePacked, indirect));
286
if (isCallValid)
287
{
288
context->drawElementsIndirect(modePacked, typePacked, indirect);
289
}
290
ANGLE_CAPTURE(DrawElementsIndirect, isCallValid, context, modePacked, typePacked, indirect);
291
}
292
else
293
{
294
GenerateContextLostErrorOnCurrentGlobalContext();
295
}
296
}
297
298
void GL_APIENTRY GL_FramebufferParameteri(GLenum target, GLenum pname, GLint param)
299
{
300
Context *context = GetValidGlobalContext();
301
EVENT(context, GLFramebufferParameteri, "context = %d, target = %s, pname = %s, param = %d",
302
CID(context), GLenumToString(GLenumGroup::FramebufferTarget, target),
303
GLenumToString(GLenumGroup::FramebufferParameterName, pname), param);
304
305
if (context)
306
{
307
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
308
bool isCallValid = (context->skipValidation() ||
309
ValidateFramebufferParameteri(context, target, pname, param));
310
if (isCallValid)
311
{
312
context->framebufferParameteri(target, pname, param);
313
}
314
ANGLE_CAPTURE(FramebufferParameteri, isCallValid, context, target, pname, param);
315
}
316
else
317
{
318
GenerateContextLostErrorOnCurrentGlobalContext();
319
}
320
}
321
322
void GL_APIENTRY GL_GenProgramPipelines(GLsizei n, GLuint *pipelines)
323
{
324
Context *context = GetValidGlobalContext();
325
EVENT(context, GLGenProgramPipelines, "context = %d, n = %d, pipelines = 0x%016" PRIxPTR "",
326
CID(context), n, (uintptr_t)pipelines);
327
328
if (context)
329
{
330
ProgramPipelineID *pipelinesPacked = PackParam<ProgramPipelineID *>(pipelines);
331
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
332
bool isCallValid =
333
(context->skipValidation() || ValidateGenProgramPipelines(context, n, pipelinesPacked));
334
if (isCallValid)
335
{
336
context->genProgramPipelines(n, pipelinesPacked);
337
}
338
ANGLE_CAPTURE(GenProgramPipelines, isCallValid, context, n, pipelinesPacked);
339
}
340
else
341
{
342
GenerateContextLostErrorOnCurrentGlobalContext();
343
}
344
}
345
346
void GL_APIENTRY GL_GetBooleani_v(GLenum target, GLuint index, GLboolean *data)
347
{
348
Context *context = GetValidGlobalContext();
349
EVENT(context, GLGetBooleani_v,
350
"context = %d, target = %s, index = %u, data = 0x%016" PRIxPTR "", CID(context),
351
GLenumToString(GLenumGroup::BufferTargetARB, target), index, (uintptr_t)data);
352
353
if (context)
354
{
355
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
356
bool isCallValid =
357
(context->skipValidation() || ValidateGetBooleani_v(context, target, index, data));
358
if (isCallValid)
359
{
360
context->getBooleani_v(target, index, data);
361
}
362
ANGLE_CAPTURE(GetBooleani_v, isCallValid, context, target, index, data);
363
}
364
else
365
{
366
GenerateContextLostErrorOnCurrentGlobalContext();
367
}
368
}
369
370
void GL_APIENTRY GL_GetFramebufferParameteriv(GLenum target, GLenum pname, GLint *params)
371
{
372
Context *context = GetValidGlobalContext();
373
EVENT(context, GLGetFramebufferParameteriv,
374
"context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),
375
GLenumToString(GLenumGroup::FramebufferTarget, target),
376
GLenumToString(GLenumGroup::FramebufferAttachmentParameterName, pname),
377
(uintptr_t)params);
378
379
if (context)
380
{
381
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
382
bool isCallValid = (context->skipValidation() ||
383
ValidateGetFramebufferParameteriv(context, target, pname, params));
384
if (isCallValid)
385
{
386
context->getFramebufferParameteriv(target, pname, params);
387
}
388
ANGLE_CAPTURE(GetFramebufferParameteriv, isCallValid, context, target, pname, params);
389
}
390
else
391
{
392
GenerateContextLostErrorOnCurrentGlobalContext();
393
}
394
}
395
396
void GL_APIENTRY GL_GetMultisamplefv(GLenum pname, GLuint index, GLfloat *val)
397
{
398
Context *context = GetValidGlobalContext();
399
EVENT(context, GLGetMultisamplefv,
400
"context = %d, pname = %s, index = %u, val = 0x%016" PRIxPTR "", CID(context),
401
GLenumToString(GLenumGroup::DefaultGroup, pname), index, (uintptr_t)val);
402
403
if (context)
404
{
405
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
406
bool isCallValid =
407
(context->skipValidation() || ValidateGetMultisamplefv(context, pname, index, val));
408
if (isCallValid)
409
{
410
context->getMultisamplefv(pname, index, val);
411
}
412
ANGLE_CAPTURE(GetMultisamplefv, isCallValid, context, pname, index, val);
413
}
414
else
415
{
416
GenerateContextLostErrorOnCurrentGlobalContext();
417
}
418
}
419
420
void GL_APIENTRY GL_GetProgramInterfaceiv(GLuint program,
421
GLenum programInterface,
422
GLenum pname,
423
GLint *params)
424
{
425
Context *context = GetValidGlobalContext();
426
EVENT(context, GLGetProgramInterfaceiv,
427
"context = %d, program = %u, programInterface = %s, pname = %s, params = 0x%016" PRIxPTR
428
"",
429
CID(context), program, GLenumToString(GLenumGroup::ProgramInterface, programInterface),
430
GLenumToString(GLenumGroup::ProgramInterfacePName, pname), (uintptr_t)params);
431
432
if (context)
433
{
434
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
435
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
436
bool isCallValid = (context->skipValidation() ||
437
ValidateGetProgramInterfaceiv(context, programPacked, programInterface,
438
pname, params));
439
if (isCallValid)
440
{
441
context->getProgramInterfaceiv(programPacked, programInterface, pname, params);
442
}
443
ANGLE_CAPTURE(GetProgramInterfaceiv, isCallValid, context, programPacked, programInterface,
444
pname, params);
445
}
446
else
447
{
448
GenerateContextLostErrorOnCurrentGlobalContext();
449
}
450
}
451
452
void GL_APIENTRY GL_GetProgramPipelineInfoLog(GLuint pipeline,
453
GLsizei bufSize,
454
GLsizei *length,
455
GLchar *infoLog)
456
{
457
Context *context = GetValidGlobalContext();
458
EVENT(context, GLGetProgramPipelineInfoLog,
459
"context = %d, pipeline = %u, bufSize = %d, length = 0x%016" PRIxPTR
460
", infoLog = 0x%016" PRIxPTR "",
461
CID(context), pipeline, bufSize, (uintptr_t)length, (uintptr_t)infoLog);
462
463
if (context)
464
{
465
ProgramPipelineID pipelinePacked = PackParam<ProgramPipelineID>(pipeline);
466
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
467
bool isCallValid =
468
(context->skipValidation() ||
469
ValidateGetProgramPipelineInfoLog(context, pipelinePacked, bufSize, length, infoLog));
470
if (isCallValid)
471
{
472
context->getProgramPipelineInfoLog(pipelinePacked, bufSize, length, infoLog);
473
}
474
ANGLE_CAPTURE(GetProgramPipelineInfoLog, isCallValid, context, pipelinePacked, bufSize,
475
length, infoLog);
476
}
477
else
478
{
479
GenerateContextLostErrorOnCurrentGlobalContext();
480
}
481
}
482
483
void GL_APIENTRY GL_GetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params)
484
{
485
Context *context = GetValidGlobalContext();
486
EVENT(context, GLGetProgramPipelineiv,
487
"context = %d, pipeline = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context),
488
pipeline, GLenumToString(GLenumGroup::PipelineParameterName, pname), (uintptr_t)params);
489
490
if (context)
491
{
492
ProgramPipelineID pipelinePacked = PackParam<ProgramPipelineID>(pipeline);
493
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
494
bool isCallValid = (context->skipValidation() ||
495
ValidateGetProgramPipelineiv(context, pipelinePacked, pname, params));
496
if (isCallValid)
497
{
498
context->getProgramPipelineiv(pipelinePacked, pname, params);
499
}
500
ANGLE_CAPTURE(GetProgramPipelineiv, isCallValid, context, pipelinePacked, pname, params);
501
}
502
else
503
{
504
GenerateContextLostErrorOnCurrentGlobalContext();
505
}
506
}
507
508
GLuint GL_APIENTRY GL_GetProgramResourceIndex(GLuint program,
509
GLenum programInterface,
510
const GLchar *name)
511
{
512
Context *context = GetValidGlobalContext();
513
EVENT(context, GLGetProgramResourceIndex,
514
"context = %d, program = %u, programInterface = %s, name = 0x%016" PRIxPTR "",
515
CID(context), program, GLenumToString(GLenumGroup::ProgramInterface, programInterface),
516
(uintptr_t)name);
517
518
GLuint returnValue;
519
if (context)
520
{
521
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
522
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
523
bool isCallValid =
524
(context->skipValidation() ||
525
ValidateGetProgramResourceIndex(context, programPacked, programInterface, name));
526
if (isCallValid)
527
{
528
returnValue = context->getProgramResourceIndex(programPacked, programInterface, name);
529
}
530
else
531
{
532
returnValue =
533
GetDefaultReturnValue<angle::EntryPoint::GLGetProgramResourceIndex, GLuint>();
534
}
535
ANGLE_CAPTURE(GetProgramResourceIndex, isCallValid, context, programPacked,
536
programInterface, name, returnValue);
537
}
538
else
539
{
540
GenerateContextLostErrorOnCurrentGlobalContext();
541
returnValue = GetDefaultReturnValue<angle::EntryPoint::GLGetProgramResourceIndex, GLuint>();
542
}
543
return returnValue;
544
}
545
546
GLint GL_APIENTRY GL_GetProgramResourceLocation(GLuint program,
547
GLenum programInterface,
548
const GLchar *name)
549
{
550
Context *context = GetValidGlobalContext();
551
EVENT(context, GLGetProgramResourceLocation,
552
"context = %d, program = %u, programInterface = %s, name = 0x%016" PRIxPTR "",
553
CID(context), program, GLenumToString(GLenumGroup::ProgramInterface, programInterface),
554
(uintptr_t)name);
555
556
GLint returnValue;
557
if (context)
558
{
559
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
560
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
561
bool isCallValid =
562
(context->skipValidation() ||
563
ValidateGetProgramResourceLocation(context, programPacked, programInterface, name));
564
if (isCallValid)
565
{
566
returnValue =
567
context->getProgramResourceLocation(programPacked, programInterface, name);
568
}
569
else
570
{
571
returnValue =
572
GetDefaultReturnValue<angle::EntryPoint::GLGetProgramResourceLocation, GLint>();
573
}
574
ANGLE_CAPTURE(GetProgramResourceLocation, isCallValid, context, programPacked,
575
programInterface, name, returnValue);
576
}
577
else
578
{
579
GenerateContextLostErrorOnCurrentGlobalContext();
580
returnValue =
581
GetDefaultReturnValue<angle::EntryPoint::GLGetProgramResourceLocation, GLint>();
582
}
583
return returnValue;
584
}
585
586
void GL_APIENTRY GL_GetProgramResourceName(GLuint program,
587
GLenum programInterface,
588
GLuint index,
589
GLsizei bufSize,
590
GLsizei *length,
591
GLchar *name)
592
{
593
Context *context = GetValidGlobalContext();
594
EVENT(context, GLGetProgramResourceName,
595
"context = %d, program = %u, programInterface = %s, index = %u, bufSize = %d, length = "
596
"0x%016" PRIxPTR ", name = 0x%016" PRIxPTR "",
597
CID(context), program, GLenumToString(GLenumGroup::ProgramInterface, programInterface),
598
index, bufSize, (uintptr_t)length, (uintptr_t)name);
599
600
if (context)
601
{
602
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
603
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
604
bool isCallValid = (context->skipValidation() ||
605
ValidateGetProgramResourceName(context, programPacked, programInterface,
606
index, bufSize, length, name));
607
if (isCallValid)
608
{
609
context->getProgramResourceName(programPacked, programInterface, index, bufSize, length,
610
name);
611
}
612
ANGLE_CAPTURE(GetProgramResourceName, isCallValid, context, programPacked, programInterface,
613
index, bufSize, length, name);
614
}
615
else
616
{
617
GenerateContextLostErrorOnCurrentGlobalContext();
618
}
619
}
620
621
void GL_APIENTRY GL_GetProgramResourceiv(GLuint program,
622
GLenum programInterface,
623
GLuint index,
624
GLsizei propCount,
625
const GLenum *props,
626
GLsizei bufSize,
627
GLsizei *length,
628
GLint *params)
629
{
630
Context *context = GetValidGlobalContext();
631
EVENT(context, GLGetProgramResourceiv,
632
"context = %d, program = %u, programInterface = %s, index = %u, propCount = %d, props = "
633
"0x%016" PRIxPTR ", bufSize = %d, length = 0x%016" PRIxPTR ", params = 0x%016" PRIxPTR "",
634
CID(context), program, GLenumToString(GLenumGroup::ProgramInterface, programInterface),
635
index, propCount, (uintptr_t)props, bufSize, (uintptr_t)length, (uintptr_t)params);
636
637
if (context)
638
{
639
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
640
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
641
bool isCallValid =
642
(context->skipValidation() ||
643
ValidateGetProgramResourceiv(context, programPacked, programInterface, index,
644
propCount, props, bufSize, length, params));
645
if (isCallValid)
646
{
647
context->getProgramResourceiv(programPacked, programInterface, index, propCount, props,
648
bufSize, length, params);
649
}
650
ANGLE_CAPTURE(GetProgramResourceiv, isCallValid, context, programPacked, programInterface,
651
index, propCount, props, bufSize, length, params);
652
}
653
else
654
{
655
GenerateContextLostErrorOnCurrentGlobalContext();
656
}
657
}
658
659
void GL_APIENTRY GL_GetTexLevelParameterfv(GLenum target,
660
GLint level,
661
GLenum pname,
662
GLfloat *params)
663
{
664
Context *context = GetValidGlobalContext();
665
EVENT(context, GLGetTexLevelParameterfv,
666
"context = %d, target = %s, level = %d, pname = %s, params = 0x%016" PRIxPTR "",
667
CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level,
668
GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params);
669
670
if (context)
671
{
672
TextureTarget targetPacked = PackParam<TextureTarget>(target);
673
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
674
bool isCallValid =
675
(context->skipValidation() ||
676
ValidateGetTexLevelParameterfv(context, targetPacked, level, pname, params));
677
if (isCallValid)
678
{
679
context->getTexLevelParameterfv(targetPacked, level, pname, params);
680
}
681
ANGLE_CAPTURE(GetTexLevelParameterfv, isCallValid, context, targetPacked, level, pname,
682
params);
683
}
684
else
685
{
686
GenerateContextLostErrorOnCurrentGlobalContext();
687
}
688
}
689
690
void GL_APIENTRY GL_GetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params)
691
{
692
Context *context = GetValidGlobalContext();
693
EVENT(context, GLGetTexLevelParameteriv,
694
"context = %d, target = %s, level = %d, pname = %s, params = 0x%016" PRIxPTR "",
695
CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level,
696
GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params);
697
698
if (context)
699
{
700
TextureTarget targetPacked = PackParam<TextureTarget>(target);
701
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
702
bool isCallValid =
703
(context->skipValidation() ||
704
ValidateGetTexLevelParameteriv(context, targetPacked, level, pname, params));
705
if (isCallValid)
706
{
707
context->getTexLevelParameteriv(targetPacked, level, pname, params);
708
}
709
ANGLE_CAPTURE(GetTexLevelParameteriv, isCallValid, context, targetPacked, level, pname,
710
params);
711
}
712
else
713
{
714
GenerateContextLostErrorOnCurrentGlobalContext();
715
}
716
}
717
718
GLboolean GL_APIENTRY GL_IsProgramPipeline(GLuint pipeline)
719
{
720
Context *context = GetValidGlobalContext();
721
EVENT(context, GLIsProgramPipeline, "context = %d, pipeline = %u", CID(context), pipeline);
722
723
GLboolean returnValue;
724
if (context)
725
{
726
ProgramPipelineID pipelinePacked = PackParam<ProgramPipelineID>(pipeline);
727
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
728
bool isCallValid =
729
(context->skipValidation() || ValidateIsProgramPipeline(context, pipelinePacked));
730
if (isCallValid)
731
{
732
returnValue = context->isProgramPipeline(pipelinePacked);
733
}
734
else
735
{
736
returnValue =
737
GetDefaultReturnValue<angle::EntryPoint::GLIsProgramPipeline, GLboolean>();
738
}
739
ANGLE_CAPTURE(IsProgramPipeline, isCallValid, context, pipelinePacked, returnValue);
740
}
741
else
742
{
743
GenerateContextLostErrorOnCurrentGlobalContext();
744
returnValue = GetDefaultReturnValue<angle::EntryPoint::GLIsProgramPipeline, GLboolean>();
745
}
746
return returnValue;
747
}
748
749
void GL_APIENTRY GL_MemoryBarrier(GLbitfield barriers)
750
{
751
Context *context = GetValidGlobalContext();
752
EVENT(context, GLMemoryBarrier, "context = %d, barriers = %s", CID(context),
753
GLbitfieldToString(GLenumGroup::MemoryBarrierMask, barriers).c_str());
754
755
if (context)
756
{
757
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
758
bool isCallValid = (context->skipValidation() || ValidateMemoryBarrier(context, barriers));
759
if (isCallValid)
760
{
761
context->memoryBarrier(barriers);
762
}
763
ANGLE_CAPTURE(MemoryBarrier, isCallValid, context, barriers);
764
}
765
else
766
{
767
GenerateContextLostErrorOnCurrentGlobalContext();
768
}
769
}
770
771
void GL_APIENTRY GL_MemoryBarrierByRegion(GLbitfield barriers)
772
{
773
Context *context = GetValidGlobalContext();
774
EVENT(context, GLMemoryBarrierByRegion, "context = %d, barriers = %s", CID(context),
775
GLbitfieldToString(GLenumGroup::MemoryBarrierMask, barriers).c_str());
776
777
if (context)
778
{
779
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
780
bool isCallValid =
781
(context->skipValidation() || ValidateMemoryBarrierByRegion(context, barriers));
782
if (isCallValid)
783
{
784
context->memoryBarrierByRegion(barriers);
785
}
786
ANGLE_CAPTURE(MemoryBarrierByRegion, isCallValid, context, barriers);
787
}
788
else
789
{
790
GenerateContextLostErrorOnCurrentGlobalContext();
791
}
792
}
793
794
void GL_APIENTRY GL_ProgramUniform1f(GLuint program, GLint location, GLfloat v0)
795
{
796
Context *context = GetValidGlobalContext();
797
EVENT(context, GLProgramUniform1f, "context = %d, program = %u, location = %d, v0 = %f",
798
CID(context), program, location, v0);
799
800
if (context)
801
{
802
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
803
UniformLocation locationPacked = PackParam<UniformLocation>(location);
804
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
805
bool isCallValid = (context->skipValidation() ||
806
ValidateProgramUniform1f(context, programPacked, locationPacked, v0));
807
if (isCallValid)
808
{
809
context->programUniform1f(programPacked, locationPacked, v0);
810
}
811
ANGLE_CAPTURE(ProgramUniform1f, isCallValid, context, programPacked, locationPacked, v0);
812
}
813
else
814
{
815
GenerateContextLostErrorOnCurrentGlobalContext();
816
}
817
}
818
819
void GL_APIENTRY GL_ProgramUniform1fv(GLuint program,
820
GLint location,
821
GLsizei count,
822
const GLfloat *value)
823
{
824
Context *context = GetValidGlobalContext();
825
EVENT(context, GLProgramUniform1fv,
826
"context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "",
827
CID(context), program, location, count, (uintptr_t)value);
828
829
if (context)
830
{
831
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
832
UniformLocation locationPacked = PackParam<UniformLocation>(location);
833
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
834
bool isCallValid =
835
(context->skipValidation() ||
836
ValidateProgramUniform1fv(context, programPacked, locationPacked, count, value));
837
if (isCallValid)
838
{
839
context->programUniform1fv(programPacked, locationPacked, count, value);
840
}
841
ANGLE_CAPTURE(ProgramUniform1fv, isCallValid, context, programPacked, locationPacked, count,
842
value);
843
}
844
else
845
{
846
GenerateContextLostErrorOnCurrentGlobalContext();
847
}
848
}
849
850
void GL_APIENTRY GL_ProgramUniform1i(GLuint program, GLint location, GLint v0)
851
{
852
Context *context = GetValidGlobalContext();
853
EVENT(context, GLProgramUniform1i, "context = %d, program = %u, location = %d, v0 = %d",
854
CID(context), program, location, v0);
855
856
if (context)
857
{
858
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
859
UniformLocation locationPacked = PackParam<UniformLocation>(location);
860
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
861
bool isCallValid = (context->skipValidation() ||
862
ValidateProgramUniform1i(context, programPacked, locationPacked, v0));
863
if (isCallValid)
864
{
865
context->programUniform1i(programPacked, locationPacked, v0);
866
}
867
ANGLE_CAPTURE(ProgramUniform1i, isCallValid, context, programPacked, locationPacked, v0);
868
}
869
else
870
{
871
GenerateContextLostErrorOnCurrentGlobalContext();
872
}
873
}
874
875
void GL_APIENTRY GL_ProgramUniform1iv(GLuint program,
876
GLint location,
877
GLsizei count,
878
const GLint *value)
879
{
880
Context *context = GetValidGlobalContext();
881
EVENT(context, GLProgramUniform1iv,
882
"context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "",
883
CID(context), program, location, count, (uintptr_t)value);
884
885
if (context)
886
{
887
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
888
UniformLocation locationPacked = PackParam<UniformLocation>(location);
889
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
890
bool isCallValid =
891
(context->skipValidation() ||
892
ValidateProgramUniform1iv(context, programPacked, locationPacked, count, value));
893
if (isCallValid)
894
{
895
context->programUniform1iv(programPacked, locationPacked, count, value);
896
}
897
ANGLE_CAPTURE(ProgramUniform1iv, isCallValid, context, programPacked, locationPacked, count,
898
value);
899
}
900
else
901
{
902
GenerateContextLostErrorOnCurrentGlobalContext();
903
}
904
}
905
906
void GL_APIENTRY GL_ProgramUniform1ui(GLuint program, GLint location, GLuint v0)
907
{
908
Context *context = GetValidGlobalContext();
909
EVENT(context, GLProgramUniform1ui, "context = %d, program = %u, location = %d, v0 = %u",
910
CID(context), program, location, v0);
911
912
if (context)
913
{
914
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
915
UniformLocation locationPacked = PackParam<UniformLocation>(location);
916
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
917
bool isCallValid = (context->skipValidation() ||
918
ValidateProgramUniform1ui(context, programPacked, locationPacked, v0));
919
if (isCallValid)
920
{
921
context->programUniform1ui(programPacked, locationPacked, v0);
922
}
923
ANGLE_CAPTURE(ProgramUniform1ui, isCallValid, context, programPacked, locationPacked, v0);
924
}
925
else
926
{
927
GenerateContextLostErrorOnCurrentGlobalContext();
928
}
929
}
930
931
void GL_APIENTRY GL_ProgramUniform1uiv(GLuint program,
932
GLint location,
933
GLsizei count,
934
const GLuint *value)
935
{
936
Context *context = GetValidGlobalContext();
937
EVENT(context, GLProgramUniform1uiv,
938
"context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "",
939
CID(context), program, location, count, (uintptr_t)value);
940
941
if (context)
942
{
943
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
944
UniformLocation locationPacked = PackParam<UniformLocation>(location);
945
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
946
bool isCallValid =
947
(context->skipValidation() ||
948
ValidateProgramUniform1uiv(context, programPacked, locationPacked, count, value));
949
if (isCallValid)
950
{
951
context->programUniform1uiv(programPacked, locationPacked, count, value);
952
}
953
ANGLE_CAPTURE(ProgramUniform1uiv, isCallValid, context, programPacked, locationPacked,
954
count, value);
955
}
956
else
957
{
958
GenerateContextLostErrorOnCurrentGlobalContext();
959
}
960
}
961
962
void GL_APIENTRY GL_ProgramUniform2f(GLuint program, GLint location, GLfloat v0, GLfloat v1)
963
{
964
Context *context = GetValidGlobalContext();
965
EVENT(context, GLProgramUniform2f,
966
"context = %d, program = %u, location = %d, v0 = %f, v1 = %f", CID(context), program,
967
location, v0, v1);
968
969
if (context)
970
{
971
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
972
UniformLocation locationPacked = PackParam<UniformLocation>(location);
973
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
974
bool isCallValid =
975
(context->skipValidation() ||
976
ValidateProgramUniform2f(context, programPacked, locationPacked, v0, v1));
977
if (isCallValid)
978
{
979
context->programUniform2f(programPacked, locationPacked, v0, v1);
980
}
981
ANGLE_CAPTURE(ProgramUniform2f, isCallValid, context, programPacked, locationPacked, v0,
982
v1);
983
}
984
else
985
{
986
GenerateContextLostErrorOnCurrentGlobalContext();
987
}
988
}
989
990
void GL_APIENTRY GL_ProgramUniform2fv(GLuint program,
991
GLint location,
992
GLsizei count,
993
const GLfloat *value)
994
{
995
Context *context = GetValidGlobalContext();
996
EVENT(context, GLProgramUniform2fv,
997
"context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "",
998
CID(context), program, location, count, (uintptr_t)value);
999
1000
if (context)
1001
{
1002
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1003
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1004
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1005
bool isCallValid =
1006
(context->skipValidation() ||
1007
ValidateProgramUniform2fv(context, programPacked, locationPacked, count, value));
1008
if (isCallValid)
1009
{
1010
context->programUniform2fv(programPacked, locationPacked, count, value);
1011
}
1012
ANGLE_CAPTURE(ProgramUniform2fv, isCallValid, context, programPacked, locationPacked, count,
1013
value);
1014
}
1015
else
1016
{
1017
GenerateContextLostErrorOnCurrentGlobalContext();
1018
}
1019
}
1020
1021
void GL_APIENTRY GL_ProgramUniform2i(GLuint program, GLint location, GLint v0, GLint v1)
1022
{
1023
Context *context = GetValidGlobalContext();
1024
EVENT(context, GLProgramUniform2i,
1025
"context = %d, program = %u, location = %d, v0 = %d, v1 = %d", CID(context), program,
1026
location, v0, v1);
1027
1028
if (context)
1029
{
1030
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1031
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1032
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1033
bool isCallValid =
1034
(context->skipValidation() ||
1035
ValidateProgramUniform2i(context, programPacked, locationPacked, v0, v1));
1036
if (isCallValid)
1037
{
1038
context->programUniform2i(programPacked, locationPacked, v0, v1);
1039
}
1040
ANGLE_CAPTURE(ProgramUniform2i, isCallValid, context, programPacked, locationPacked, v0,
1041
v1);
1042
}
1043
else
1044
{
1045
GenerateContextLostErrorOnCurrentGlobalContext();
1046
}
1047
}
1048
1049
void GL_APIENTRY GL_ProgramUniform2iv(GLuint program,
1050
GLint location,
1051
GLsizei count,
1052
const GLint *value)
1053
{
1054
Context *context = GetValidGlobalContext();
1055
EVENT(context, GLProgramUniform2iv,
1056
"context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "",
1057
CID(context), program, location, count, (uintptr_t)value);
1058
1059
if (context)
1060
{
1061
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1062
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1063
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1064
bool isCallValid =
1065
(context->skipValidation() ||
1066
ValidateProgramUniform2iv(context, programPacked, locationPacked, count, value));
1067
if (isCallValid)
1068
{
1069
context->programUniform2iv(programPacked, locationPacked, count, value);
1070
}
1071
ANGLE_CAPTURE(ProgramUniform2iv, isCallValid, context, programPacked, locationPacked, count,
1072
value);
1073
}
1074
else
1075
{
1076
GenerateContextLostErrorOnCurrentGlobalContext();
1077
}
1078
}
1079
1080
void GL_APIENTRY GL_ProgramUniform2ui(GLuint program, GLint location, GLuint v0, GLuint v1)
1081
{
1082
Context *context = GetValidGlobalContext();
1083
EVENT(context, GLProgramUniform2ui,
1084
"context = %d, program = %u, location = %d, v0 = %u, v1 = %u", CID(context), program,
1085
location, v0, v1);
1086
1087
if (context)
1088
{
1089
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1090
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1091
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1092
bool isCallValid =
1093
(context->skipValidation() ||
1094
ValidateProgramUniform2ui(context, programPacked, locationPacked, v0, v1));
1095
if (isCallValid)
1096
{
1097
context->programUniform2ui(programPacked, locationPacked, v0, v1);
1098
}
1099
ANGLE_CAPTURE(ProgramUniform2ui, isCallValid, context, programPacked, locationPacked, v0,
1100
v1);
1101
}
1102
else
1103
{
1104
GenerateContextLostErrorOnCurrentGlobalContext();
1105
}
1106
}
1107
1108
void GL_APIENTRY GL_ProgramUniform2uiv(GLuint program,
1109
GLint location,
1110
GLsizei count,
1111
const GLuint *value)
1112
{
1113
Context *context = GetValidGlobalContext();
1114
EVENT(context, GLProgramUniform2uiv,
1115
"context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "",
1116
CID(context), program, location, count, (uintptr_t)value);
1117
1118
if (context)
1119
{
1120
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1121
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1122
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1123
bool isCallValid =
1124
(context->skipValidation() ||
1125
ValidateProgramUniform2uiv(context, programPacked, locationPacked, count, value));
1126
if (isCallValid)
1127
{
1128
context->programUniform2uiv(programPacked, locationPacked, count, value);
1129
}
1130
ANGLE_CAPTURE(ProgramUniform2uiv, isCallValid, context, programPacked, locationPacked,
1131
count, value);
1132
}
1133
else
1134
{
1135
GenerateContextLostErrorOnCurrentGlobalContext();
1136
}
1137
}
1138
1139
void GL_APIENTRY
1140
GL_ProgramUniform3f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
1141
{
1142
Context *context = GetValidGlobalContext();
1143
EVENT(context, GLProgramUniform3f,
1144
"context = %d, program = %u, location = %d, v0 = %f, v1 = %f, v2 = %f", CID(context),
1145
program, location, v0, v1, v2);
1146
1147
if (context)
1148
{
1149
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1150
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1151
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1152
bool isCallValid =
1153
(context->skipValidation() ||
1154
ValidateProgramUniform3f(context, programPacked, locationPacked, v0, v1, v2));
1155
if (isCallValid)
1156
{
1157
context->programUniform3f(programPacked, locationPacked, v0, v1, v2);
1158
}
1159
ANGLE_CAPTURE(ProgramUniform3f, isCallValid, context, programPacked, locationPacked, v0, v1,
1160
v2);
1161
}
1162
else
1163
{
1164
GenerateContextLostErrorOnCurrentGlobalContext();
1165
}
1166
}
1167
1168
void GL_APIENTRY GL_ProgramUniform3fv(GLuint program,
1169
GLint location,
1170
GLsizei count,
1171
const GLfloat *value)
1172
{
1173
Context *context = GetValidGlobalContext();
1174
EVENT(context, GLProgramUniform3fv,
1175
"context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "",
1176
CID(context), program, location, count, (uintptr_t)value);
1177
1178
if (context)
1179
{
1180
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1181
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1182
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1183
bool isCallValid =
1184
(context->skipValidation() ||
1185
ValidateProgramUniform3fv(context, programPacked, locationPacked, count, value));
1186
if (isCallValid)
1187
{
1188
context->programUniform3fv(programPacked, locationPacked, count, value);
1189
}
1190
ANGLE_CAPTURE(ProgramUniform3fv, isCallValid, context, programPacked, locationPacked, count,
1191
value);
1192
}
1193
else
1194
{
1195
GenerateContextLostErrorOnCurrentGlobalContext();
1196
}
1197
}
1198
1199
void GL_APIENTRY GL_ProgramUniform3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2)
1200
{
1201
Context *context = GetValidGlobalContext();
1202
EVENT(context, GLProgramUniform3i,
1203
"context = %d, program = %u, location = %d, v0 = %d, v1 = %d, v2 = %d", CID(context),
1204
program, location, v0, v1, v2);
1205
1206
if (context)
1207
{
1208
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1209
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1210
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1211
bool isCallValid =
1212
(context->skipValidation() ||
1213
ValidateProgramUniform3i(context, programPacked, locationPacked, v0, v1, v2));
1214
if (isCallValid)
1215
{
1216
context->programUniform3i(programPacked, locationPacked, v0, v1, v2);
1217
}
1218
ANGLE_CAPTURE(ProgramUniform3i, isCallValid, context, programPacked, locationPacked, v0, v1,
1219
v2);
1220
}
1221
else
1222
{
1223
GenerateContextLostErrorOnCurrentGlobalContext();
1224
}
1225
}
1226
1227
void GL_APIENTRY GL_ProgramUniform3iv(GLuint program,
1228
GLint location,
1229
GLsizei count,
1230
const GLint *value)
1231
{
1232
Context *context = GetValidGlobalContext();
1233
EVENT(context, GLProgramUniform3iv,
1234
"context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "",
1235
CID(context), program, location, count, (uintptr_t)value);
1236
1237
if (context)
1238
{
1239
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1240
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1241
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1242
bool isCallValid =
1243
(context->skipValidation() ||
1244
ValidateProgramUniform3iv(context, programPacked, locationPacked, count, value));
1245
if (isCallValid)
1246
{
1247
context->programUniform3iv(programPacked, locationPacked, count, value);
1248
}
1249
ANGLE_CAPTURE(ProgramUniform3iv, isCallValid, context, programPacked, locationPacked, count,
1250
value);
1251
}
1252
else
1253
{
1254
GenerateContextLostErrorOnCurrentGlobalContext();
1255
}
1256
}
1257
1258
void GL_APIENTRY
1259
GL_ProgramUniform3ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)
1260
{
1261
Context *context = GetValidGlobalContext();
1262
EVENT(context, GLProgramUniform3ui,
1263
"context = %d, program = %u, location = %d, v0 = %u, v1 = %u, v2 = %u", CID(context),
1264
program, location, v0, v1, v2);
1265
1266
if (context)
1267
{
1268
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1269
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1270
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1271
bool isCallValid =
1272
(context->skipValidation() ||
1273
ValidateProgramUniform3ui(context, programPacked, locationPacked, v0, v1, v2));
1274
if (isCallValid)
1275
{
1276
context->programUniform3ui(programPacked, locationPacked, v0, v1, v2);
1277
}
1278
ANGLE_CAPTURE(ProgramUniform3ui, isCallValid, context, programPacked, locationPacked, v0,
1279
v1, v2);
1280
}
1281
else
1282
{
1283
GenerateContextLostErrorOnCurrentGlobalContext();
1284
}
1285
}
1286
1287
void GL_APIENTRY GL_ProgramUniform3uiv(GLuint program,
1288
GLint location,
1289
GLsizei count,
1290
const GLuint *value)
1291
{
1292
Context *context = GetValidGlobalContext();
1293
EVENT(context, GLProgramUniform3uiv,
1294
"context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "",
1295
CID(context), program, location, count, (uintptr_t)value);
1296
1297
if (context)
1298
{
1299
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1300
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1301
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1302
bool isCallValid =
1303
(context->skipValidation() ||
1304
ValidateProgramUniform3uiv(context, programPacked, locationPacked, count, value));
1305
if (isCallValid)
1306
{
1307
context->programUniform3uiv(programPacked, locationPacked, count, value);
1308
}
1309
ANGLE_CAPTURE(ProgramUniform3uiv, isCallValid, context, programPacked, locationPacked,
1310
count, value);
1311
}
1312
else
1313
{
1314
GenerateContextLostErrorOnCurrentGlobalContext();
1315
}
1316
}
1317
1318
void GL_APIENTRY
1319
GL_ProgramUniform4f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
1320
{
1321
Context *context = GetValidGlobalContext();
1322
EVENT(context, GLProgramUniform4f,
1323
"context = %d, program = %u, location = %d, v0 = %f, v1 = %f, v2 = %f, v3 = %f",
1324
CID(context), program, location, v0, v1, v2, v3);
1325
1326
if (context)
1327
{
1328
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1329
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1330
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1331
bool isCallValid =
1332
(context->skipValidation() ||
1333
ValidateProgramUniform4f(context, programPacked, locationPacked, v0, v1, v2, v3));
1334
if (isCallValid)
1335
{
1336
context->programUniform4f(programPacked, locationPacked, v0, v1, v2, v3);
1337
}
1338
ANGLE_CAPTURE(ProgramUniform4f, isCallValid, context, programPacked, locationPacked, v0, v1,
1339
v2, v3);
1340
}
1341
else
1342
{
1343
GenerateContextLostErrorOnCurrentGlobalContext();
1344
}
1345
}
1346
1347
void GL_APIENTRY GL_ProgramUniform4fv(GLuint program,
1348
GLint location,
1349
GLsizei count,
1350
const GLfloat *value)
1351
{
1352
Context *context = GetValidGlobalContext();
1353
EVENT(context, GLProgramUniform4fv,
1354
"context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "",
1355
CID(context), program, location, count, (uintptr_t)value);
1356
1357
if (context)
1358
{
1359
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1360
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1361
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1362
bool isCallValid =
1363
(context->skipValidation() ||
1364
ValidateProgramUniform4fv(context, programPacked, locationPacked, count, value));
1365
if (isCallValid)
1366
{
1367
context->programUniform4fv(programPacked, locationPacked, count, value);
1368
}
1369
ANGLE_CAPTURE(ProgramUniform4fv, isCallValid, context, programPacked, locationPacked, count,
1370
value);
1371
}
1372
else
1373
{
1374
GenerateContextLostErrorOnCurrentGlobalContext();
1375
}
1376
}
1377
1378
void GL_APIENTRY
1379
GL_ProgramUniform4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
1380
{
1381
Context *context = GetValidGlobalContext();
1382
EVENT(context, GLProgramUniform4i,
1383
"context = %d, program = %u, location = %d, v0 = %d, v1 = %d, v2 = %d, v3 = %d",
1384
CID(context), program, location, v0, v1, v2, v3);
1385
1386
if (context)
1387
{
1388
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1389
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1390
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1391
bool isCallValid =
1392
(context->skipValidation() ||
1393
ValidateProgramUniform4i(context, programPacked, locationPacked, v0, v1, v2, v3));
1394
if (isCallValid)
1395
{
1396
context->programUniform4i(programPacked, locationPacked, v0, v1, v2, v3);
1397
}
1398
ANGLE_CAPTURE(ProgramUniform4i, isCallValid, context, programPacked, locationPacked, v0, v1,
1399
v2, v3);
1400
}
1401
else
1402
{
1403
GenerateContextLostErrorOnCurrentGlobalContext();
1404
}
1405
}
1406
1407
void GL_APIENTRY GL_ProgramUniform4iv(GLuint program,
1408
GLint location,
1409
GLsizei count,
1410
const GLint *value)
1411
{
1412
Context *context = GetValidGlobalContext();
1413
EVENT(context, GLProgramUniform4iv,
1414
"context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "",
1415
CID(context), program, location, count, (uintptr_t)value);
1416
1417
if (context)
1418
{
1419
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1420
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1421
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1422
bool isCallValid =
1423
(context->skipValidation() ||
1424
ValidateProgramUniform4iv(context, programPacked, locationPacked, count, value));
1425
if (isCallValid)
1426
{
1427
context->programUniform4iv(programPacked, locationPacked, count, value);
1428
}
1429
ANGLE_CAPTURE(ProgramUniform4iv, isCallValid, context, programPacked, locationPacked, count,
1430
value);
1431
}
1432
else
1433
{
1434
GenerateContextLostErrorOnCurrentGlobalContext();
1435
}
1436
}
1437
1438
void GL_APIENTRY
1439
GL_ProgramUniform4ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
1440
{
1441
Context *context = GetValidGlobalContext();
1442
EVENT(context, GLProgramUniform4ui,
1443
"context = %d, program = %u, location = %d, v0 = %u, v1 = %u, v2 = %u, v3 = %u",
1444
CID(context), program, location, v0, v1, v2, v3);
1445
1446
if (context)
1447
{
1448
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1449
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1450
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1451
bool isCallValid =
1452
(context->skipValidation() ||
1453
ValidateProgramUniform4ui(context, programPacked, locationPacked, v0, v1, v2, v3));
1454
if (isCallValid)
1455
{
1456
context->programUniform4ui(programPacked, locationPacked, v0, v1, v2, v3);
1457
}
1458
ANGLE_CAPTURE(ProgramUniform4ui, isCallValid, context, programPacked, locationPacked, v0,
1459
v1, v2, v3);
1460
}
1461
else
1462
{
1463
GenerateContextLostErrorOnCurrentGlobalContext();
1464
}
1465
}
1466
1467
void GL_APIENTRY GL_ProgramUniform4uiv(GLuint program,
1468
GLint location,
1469
GLsizei count,
1470
const GLuint *value)
1471
{
1472
Context *context = GetValidGlobalContext();
1473
EVENT(context, GLProgramUniform4uiv,
1474
"context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "",
1475
CID(context), program, location, count, (uintptr_t)value);
1476
1477
if (context)
1478
{
1479
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1480
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1481
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1482
bool isCallValid =
1483
(context->skipValidation() ||
1484
ValidateProgramUniform4uiv(context, programPacked, locationPacked, count, value));
1485
if (isCallValid)
1486
{
1487
context->programUniform4uiv(programPacked, locationPacked, count, value);
1488
}
1489
ANGLE_CAPTURE(ProgramUniform4uiv, isCallValid, context, programPacked, locationPacked,
1490
count, value);
1491
}
1492
else
1493
{
1494
GenerateContextLostErrorOnCurrentGlobalContext();
1495
}
1496
}
1497
1498
void GL_APIENTRY GL_ProgramUniformMatrix2fv(GLuint program,
1499
GLint location,
1500
GLsizei count,
1501
GLboolean transpose,
1502
const GLfloat *value)
1503
{
1504
Context *context = GetValidGlobalContext();
1505
EVENT(context, GLProgramUniformMatrix2fv,
1506
"context = %d, program = %u, location = %d, count = %d, transpose = %s, value = "
1507
"0x%016" PRIxPTR "",
1508
CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value);
1509
1510
if (context)
1511
{
1512
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1513
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1514
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1515
bool isCallValid = (context->skipValidation() ||
1516
ValidateProgramUniformMatrix2fv(context, programPacked, locationPacked,
1517
count, transpose, value));
1518
if (isCallValid)
1519
{
1520
context->programUniformMatrix2fv(programPacked, locationPacked, count, transpose,
1521
value);
1522
}
1523
ANGLE_CAPTURE(ProgramUniformMatrix2fv, isCallValid, context, programPacked, locationPacked,
1524
count, transpose, value);
1525
}
1526
else
1527
{
1528
GenerateContextLostErrorOnCurrentGlobalContext();
1529
}
1530
}
1531
1532
void GL_APIENTRY GL_ProgramUniformMatrix2x3fv(GLuint program,
1533
GLint location,
1534
GLsizei count,
1535
GLboolean transpose,
1536
const GLfloat *value)
1537
{
1538
Context *context = GetValidGlobalContext();
1539
EVENT(context, GLProgramUniformMatrix2x3fv,
1540
"context = %d, program = %u, location = %d, count = %d, transpose = %s, value = "
1541
"0x%016" PRIxPTR "",
1542
CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value);
1543
1544
if (context)
1545
{
1546
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1547
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1548
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1549
bool isCallValid = (context->skipValidation() ||
1550
ValidateProgramUniformMatrix2x3fv(
1551
context, programPacked, locationPacked, count, transpose, value));
1552
if (isCallValid)
1553
{
1554
context->programUniformMatrix2x3fv(programPacked, locationPacked, count, transpose,
1555
value);
1556
}
1557
ANGLE_CAPTURE(ProgramUniformMatrix2x3fv, isCallValid, context, programPacked,
1558
locationPacked, count, transpose, value);
1559
}
1560
else
1561
{
1562
GenerateContextLostErrorOnCurrentGlobalContext();
1563
}
1564
}
1565
1566
void GL_APIENTRY GL_ProgramUniformMatrix2x4fv(GLuint program,
1567
GLint location,
1568
GLsizei count,
1569
GLboolean transpose,
1570
const GLfloat *value)
1571
{
1572
Context *context = GetValidGlobalContext();
1573
EVENT(context, GLProgramUniformMatrix2x4fv,
1574
"context = %d, program = %u, location = %d, count = %d, transpose = %s, value = "
1575
"0x%016" PRIxPTR "",
1576
CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value);
1577
1578
if (context)
1579
{
1580
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1581
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1582
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1583
bool isCallValid = (context->skipValidation() ||
1584
ValidateProgramUniformMatrix2x4fv(
1585
context, programPacked, locationPacked, count, transpose, value));
1586
if (isCallValid)
1587
{
1588
context->programUniformMatrix2x4fv(programPacked, locationPacked, count, transpose,
1589
value);
1590
}
1591
ANGLE_CAPTURE(ProgramUniformMatrix2x4fv, isCallValid, context, programPacked,
1592
locationPacked, count, transpose, value);
1593
}
1594
else
1595
{
1596
GenerateContextLostErrorOnCurrentGlobalContext();
1597
}
1598
}
1599
1600
void GL_APIENTRY GL_ProgramUniformMatrix3fv(GLuint program,
1601
GLint location,
1602
GLsizei count,
1603
GLboolean transpose,
1604
const GLfloat *value)
1605
{
1606
Context *context = GetValidGlobalContext();
1607
EVENT(context, GLProgramUniformMatrix3fv,
1608
"context = %d, program = %u, location = %d, count = %d, transpose = %s, value = "
1609
"0x%016" PRIxPTR "",
1610
CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value);
1611
1612
if (context)
1613
{
1614
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1615
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1616
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1617
bool isCallValid = (context->skipValidation() ||
1618
ValidateProgramUniformMatrix3fv(context, programPacked, locationPacked,
1619
count, transpose, value));
1620
if (isCallValid)
1621
{
1622
context->programUniformMatrix3fv(programPacked, locationPacked, count, transpose,
1623
value);
1624
}
1625
ANGLE_CAPTURE(ProgramUniformMatrix3fv, isCallValid, context, programPacked, locationPacked,
1626
count, transpose, value);
1627
}
1628
else
1629
{
1630
GenerateContextLostErrorOnCurrentGlobalContext();
1631
}
1632
}
1633
1634
void GL_APIENTRY GL_ProgramUniformMatrix3x2fv(GLuint program,
1635
GLint location,
1636
GLsizei count,
1637
GLboolean transpose,
1638
const GLfloat *value)
1639
{
1640
Context *context = GetValidGlobalContext();
1641
EVENT(context, GLProgramUniformMatrix3x2fv,
1642
"context = %d, program = %u, location = %d, count = %d, transpose = %s, value = "
1643
"0x%016" PRIxPTR "",
1644
CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value);
1645
1646
if (context)
1647
{
1648
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1649
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1650
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1651
bool isCallValid = (context->skipValidation() ||
1652
ValidateProgramUniformMatrix3x2fv(
1653
context, programPacked, locationPacked, count, transpose, value));
1654
if (isCallValid)
1655
{
1656
context->programUniformMatrix3x2fv(programPacked, locationPacked, count, transpose,
1657
value);
1658
}
1659
ANGLE_CAPTURE(ProgramUniformMatrix3x2fv, isCallValid, context, programPacked,
1660
locationPacked, count, transpose, value);
1661
}
1662
else
1663
{
1664
GenerateContextLostErrorOnCurrentGlobalContext();
1665
}
1666
}
1667
1668
void GL_APIENTRY GL_ProgramUniformMatrix3x4fv(GLuint program,
1669
GLint location,
1670
GLsizei count,
1671
GLboolean transpose,
1672
const GLfloat *value)
1673
{
1674
Context *context = GetValidGlobalContext();
1675
EVENT(context, GLProgramUniformMatrix3x4fv,
1676
"context = %d, program = %u, location = %d, count = %d, transpose = %s, value = "
1677
"0x%016" PRIxPTR "",
1678
CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value);
1679
1680
if (context)
1681
{
1682
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1683
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1684
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1685
bool isCallValid = (context->skipValidation() ||
1686
ValidateProgramUniformMatrix3x4fv(
1687
context, programPacked, locationPacked, count, transpose, value));
1688
if (isCallValid)
1689
{
1690
context->programUniformMatrix3x4fv(programPacked, locationPacked, count, transpose,
1691
value);
1692
}
1693
ANGLE_CAPTURE(ProgramUniformMatrix3x4fv, isCallValid, context, programPacked,
1694
locationPacked, count, transpose, value);
1695
}
1696
else
1697
{
1698
GenerateContextLostErrorOnCurrentGlobalContext();
1699
}
1700
}
1701
1702
void GL_APIENTRY GL_ProgramUniformMatrix4fv(GLuint program,
1703
GLint location,
1704
GLsizei count,
1705
GLboolean transpose,
1706
const GLfloat *value)
1707
{
1708
Context *context = GetValidGlobalContext();
1709
EVENT(context, GLProgramUniformMatrix4fv,
1710
"context = %d, program = %u, location = %d, count = %d, transpose = %s, value = "
1711
"0x%016" PRIxPTR "",
1712
CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value);
1713
1714
if (context)
1715
{
1716
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1717
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1718
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1719
bool isCallValid = (context->skipValidation() ||
1720
ValidateProgramUniformMatrix4fv(context, programPacked, locationPacked,
1721
count, transpose, value));
1722
if (isCallValid)
1723
{
1724
context->programUniformMatrix4fv(programPacked, locationPacked, count, transpose,
1725
value);
1726
}
1727
ANGLE_CAPTURE(ProgramUniformMatrix4fv, isCallValid, context, programPacked, locationPacked,
1728
count, transpose, value);
1729
}
1730
else
1731
{
1732
GenerateContextLostErrorOnCurrentGlobalContext();
1733
}
1734
}
1735
1736
void GL_APIENTRY GL_ProgramUniformMatrix4x2fv(GLuint program,
1737
GLint location,
1738
GLsizei count,
1739
GLboolean transpose,
1740
const GLfloat *value)
1741
{
1742
Context *context = GetValidGlobalContext();
1743
EVENT(context, GLProgramUniformMatrix4x2fv,
1744
"context = %d, program = %u, location = %d, count = %d, transpose = %s, value = "
1745
"0x%016" PRIxPTR "",
1746
CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value);
1747
1748
if (context)
1749
{
1750
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1751
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1752
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1753
bool isCallValid = (context->skipValidation() ||
1754
ValidateProgramUniformMatrix4x2fv(
1755
context, programPacked, locationPacked, count, transpose, value));
1756
if (isCallValid)
1757
{
1758
context->programUniformMatrix4x2fv(programPacked, locationPacked, count, transpose,
1759
value);
1760
}
1761
ANGLE_CAPTURE(ProgramUniformMatrix4x2fv, isCallValid, context, programPacked,
1762
locationPacked, count, transpose, value);
1763
}
1764
else
1765
{
1766
GenerateContextLostErrorOnCurrentGlobalContext();
1767
}
1768
}
1769
1770
void GL_APIENTRY GL_ProgramUniformMatrix4x3fv(GLuint program,
1771
GLint location,
1772
GLsizei count,
1773
GLboolean transpose,
1774
const GLfloat *value)
1775
{
1776
Context *context = GetValidGlobalContext();
1777
EVENT(context, GLProgramUniformMatrix4x3fv,
1778
"context = %d, program = %u, location = %d, count = %d, transpose = %s, value = "
1779
"0x%016" PRIxPTR "",
1780
CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value);
1781
1782
if (context)
1783
{
1784
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1785
UniformLocation locationPacked = PackParam<UniformLocation>(location);
1786
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1787
bool isCallValid = (context->skipValidation() ||
1788
ValidateProgramUniformMatrix4x3fv(
1789
context, programPacked, locationPacked, count, transpose, value));
1790
if (isCallValid)
1791
{
1792
context->programUniformMatrix4x3fv(programPacked, locationPacked, count, transpose,
1793
value);
1794
}
1795
ANGLE_CAPTURE(ProgramUniformMatrix4x3fv, isCallValid, context, programPacked,
1796
locationPacked, count, transpose, value);
1797
}
1798
else
1799
{
1800
GenerateContextLostErrorOnCurrentGlobalContext();
1801
}
1802
}
1803
1804
void GL_APIENTRY GL_SampleMaski(GLuint maskNumber, GLbitfield mask)
1805
{
1806
Context *context = GetValidGlobalContext();
1807
EVENT(context, GLSampleMaski, "context = %d, maskNumber = %u, mask = %s", CID(context),
1808
maskNumber, GLbitfieldToString(GLenumGroup::DefaultGroup, mask).c_str());
1809
1810
if (context)
1811
{
1812
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1813
bool isCallValid =
1814
(context->skipValidation() || ValidateSampleMaski(context, maskNumber, mask));
1815
if (isCallValid)
1816
{
1817
context->sampleMaski(maskNumber, mask);
1818
}
1819
ANGLE_CAPTURE(SampleMaski, isCallValid, context, maskNumber, mask);
1820
}
1821
else
1822
{
1823
GenerateContextLostErrorOnCurrentGlobalContext();
1824
}
1825
}
1826
1827
void GL_APIENTRY GL_TexStorage2DMultisample(GLenum target,
1828
GLsizei samples,
1829
GLenum internalformat,
1830
GLsizei width,
1831
GLsizei height,
1832
GLboolean fixedsamplelocations)
1833
{
1834
Context *context = GetValidGlobalContext();
1835
EVENT(context, GLTexStorage2DMultisample,
1836
"context = %d, target = %s, samples = %d, internalformat = %s, width = %d, height = %d, "
1837
"fixedsamplelocations = %s",
1838
CID(context), GLenumToString(GLenumGroup::TextureTarget, target), samples,
1839
GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height,
1840
GLbooleanToString(fixedsamplelocations));
1841
1842
if (context)
1843
{
1844
TextureType targetPacked = PackParam<TextureType>(target);
1845
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1846
bool isCallValid =
1847
(context->skipValidation() ||
1848
ValidateTexStorage2DMultisample(context, targetPacked, samples, internalformat, width,
1849
height, fixedsamplelocations));
1850
if (isCallValid)
1851
{
1852
context->texStorage2DMultisample(targetPacked, samples, internalformat, width, height,
1853
fixedsamplelocations);
1854
}
1855
ANGLE_CAPTURE(TexStorage2DMultisample, isCallValid, context, targetPacked, samples,
1856
internalformat, width, height, fixedsamplelocations);
1857
}
1858
else
1859
{
1860
GenerateContextLostErrorOnCurrentGlobalContext();
1861
}
1862
}
1863
1864
void GL_APIENTRY GL_UseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program)
1865
{
1866
Context *context = GetValidGlobalContext();
1867
EVENT(context, GLUseProgramStages, "context = %d, pipeline = %u, stages = %s, program = %u",
1868
CID(context), pipeline,
1869
GLbitfieldToString(GLenumGroup::UseProgramStageMask, stages).c_str(), program);
1870
1871
if (context)
1872
{
1873
ProgramPipelineID pipelinePacked = PackParam<ProgramPipelineID>(pipeline);
1874
ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);
1875
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1876
bool isCallValid =
1877
(context->skipValidation() ||
1878
ValidateUseProgramStages(context, pipelinePacked, stages, programPacked));
1879
if (isCallValid)
1880
{
1881
context->useProgramStages(pipelinePacked, stages, programPacked);
1882
}
1883
ANGLE_CAPTURE(UseProgramStages, isCallValid, context, pipelinePacked, stages,
1884
programPacked);
1885
}
1886
else
1887
{
1888
GenerateContextLostErrorOnCurrentGlobalContext();
1889
}
1890
}
1891
1892
void GL_APIENTRY GL_ValidateProgramPipeline(GLuint pipeline)
1893
{
1894
Context *context = GetValidGlobalContext();
1895
EVENT(context, GLValidateProgramPipeline, "context = %d, pipeline = %u", CID(context),
1896
pipeline);
1897
1898
if (context)
1899
{
1900
ProgramPipelineID pipelinePacked = PackParam<ProgramPipelineID>(pipeline);
1901
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1902
bool isCallValid =
1903
(context->skipValidation() || ValidateValidateProgramPipeline(context, pipelinePacked));
1904
if (isCallValid)
1905
{
1906
context->validateProgramPipeline(pipelinePacked);
1907
}
1908
ANGLE_CAPTURE(ValidateProgramPipeline, isCallValid, context, pipelinePacked);
1909
}
1910
else
1911
{
1912
GenerateContextLostErrorOnCurrentGlobalContext();
1913
}
1914
}
1915
1916
void GL_APIENTRY GL_VertexAttribBinding(GLuint attribindex, GLuint bindingindex)
1917
{
1918
Context *context = GetValidGlobalContext();
1919
EVENT(context, GLVertexAttribBinding, "context = %d, attribindex = %u, bindingindex = %u",
1920
CID(context), attribindex, bindingindex);
1921
1922
if (context)
1923
{
1924
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1925
bool isCallValid = (context->skipValidation() ||
1926
ValidateVertexAttribBinding(context, attribindex, bindingindex));
1927
if (isCallValid)
1928
{
1929
context->vertexAttribBinding(attribindex, bindingindex);
1930
}
1931
ANGLE_CAPTURE(VertexAttribBinding, isCallValid, context, attribindex, bindingindex);
1932
}
1933
else
1934
{
1935
GenerateContextLostErrorOnCurrentGlobalContext();
1936
}
1937
}
1938
1939
void GL_APIENTRY GL_VertexAttribFormat(GLuint attribindex,
1940
GLint size,
1941
GLenum type,
1942
GLboolean normalized,
1943
GLuint relativeoffset)
1944
{
1945
Context *context = GetValidGlobalContext();
1946
EVENT(context, GLVertexAttribFormat,
1947
"context = %d, attribindex = %u, size = %d, type = %s, normalized = %s, relativeoffset = "
1948
"%u",
1949
CID(context), attribindex, size, GLenumToString(GLenumGroup::DefaultGroup, type),
1950
GLbooleanToString(normalized), relativeoffset);
1951
1952
if (context)
1953
{
1954
VertexAttribType typePacked = PackParam<VertexAttribType>(type);
1955
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1956
bool isCallValid = (context->skipValidation() ||
1957
ValidateVertexAttribFormat(context, attribindex, size, typePacked,
1958
normalized, relativeoffset));
1959
if (isCallValid)
1960
{
1961
context->vertexAttribFormat(attribindex, size, typePacked, normalized, relativeoffset);
1962
}
1963
ANGLE_CAPTURE(VertexAttribFormat, isCallValid, context, attribindex, size, typePacked,
1964
normalized, relativeoffset);
1965
}
1966
else
1967
{
1968
GenerateContextLostErrorOnCurrentGlobalContext();
1969
}
1970
}
1971
1972
void GL_APIENTRY GL_VertexAttribIFormat(GLuint attribindex,
1973
GLint size,
1974
GLenum type,
1975
GLuint relativeoffset)
1976
{
1977
Context *context = GetValidGlobalContext();
1978
EVENT(context, GLVertexAttribIFormat,
1979
"context = %d, attribindex = %u, size = %d, type = %s, relativeoffset = %u", CID(context),
1980
attribindex, size, GLenumToString(GLenumGroup::DefaultGroup, type), relativeoffset);
1981
1982
if (context)
1983
{
1984
VertexAttribType typePacked = PackParam<VertexAttribType>(type);
1985
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
1986
bool isCallValid =
1987
(context->skipValidation() ||
1988
ValidateVertexAttribIFormat(context, attribindex, size, typePacked, relativeoffset));
1989
if (isCallValid)
1990
{
1991
context->vertexAttribIFormat(attribindex, size, typePacked, relativeoffset);
1992
}
1993
ANGLE_CAPTURE(VertexAttribIFormat, isCallValid, context, attribindex, size, typePacked,
1994
relativeoffset);
1995
}
1996
else
1997
{
1998
GenerateContextLostErrorOnCurrentGlobalContext();
1999
}
2000
}
2001
2002
void GL_APIENTRY GL_VertexBindingDivisor(GLuint bindingindex, GLuint divisor)
2003
{
2004
Context *context = GetValidGlobalContext();
2005
EVENT(context, GLVertexBindingDivisor, "context = %d, bindingindex = %u, divisor = %u",
2006
CID(context), bindingindex, divisor);
2007
2008
if (context)
2009
{
2010
std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);
2011
bool isCallValid = (context->skipValidation() ||
2012
ValidateVertexBindingDivisor(context, bindingindex, divisor));
2013
if (isCallValid)
2014
{
2015
context->vertexBindingDivisor(bindingindex, divisor);
2016
}
2017
ANGLE_CAPTURE(VertexBindingDivisor, isCallValid, context, bindingindex, divisor);
2018
}
2019
else
2020
{
2021
GenerateContextLostErrorOnCurrentGlobalContext();
2022
}
2023
}
2024
2025
} // extern "C"
2026
2027