1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by generate_entry_points.py using data from gl.xml and gl_angle_ext.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 // frame_capture_utils_autogen.h:
9 // ANGLE Frame capture types and helper functions.
10
11 #ifndef LIBANGLE_FRAME_CAPTURE_UTILS_AUTOGEN_H_
12 #define LIBANGLE_FRAME_CAPTURE_UTILS_AUTOGEN_H_
13
14 #include "common/PackedEnums.h"
15
16 namespace angle
17 {
18 enum class ParamType
19 {
20 TAlphaTestFunc,
21 TBufferBinding,
22 TBufferID,
23 TBufferIDConstPointer,
24 TBufferIDPointer,
25 TBufferUsage,
26 TClientVertexArrayType,
27 TCullFaceMode,
28 TDrawElementsType,
29 TGLDEBUGPROC,
30 TGLDEBUGPROCKHR,
31 TGLbitfield,
32 TGLboolean,
33 TGLbooleanConstPointer,
34 TGLbooleanPointer,
35 TGLbyte,
36 TGLbyteConstPointer,
37 TGLcharConstPointer,
38 TGLcharConstPointerPointer,
39 TGLcharPointer,
40 TGLclampx,
41 TGLdouble,
42 TGLdoubleConstPointer,
43 TGLdoublePointer,
44 TGLeglImageOES,
45 TGLenum,
46 TGLenumConstPointer,
47 TGLenumPointer,
48 TGLfixed,
49 TGLfixedConstPointer,
50 TGLfixedPointer,
51 TGLfloat,
52 TGLfloatConstPointer,
53 TGLfloatPointer,
54 TGLint,
55 TGLint64Pointer,
56 TGLintConstPointer,
57 TGLintPointer,
58 TGLintptr,
59 TGLintptrConstPointer,
60 TGLshort,
61 TGLshortConstPointer,
62 TGLsizei,
63 TGLsizeiConstPointer,
64 TGLsizeiPointer,
65 TGLsizeiptr,
66 TGLsizeiptrConstPointer,
67 TGLsync,
68 TGLubyte,
69 TGLubyteConstPointer,
70 TGLubytePointer,
71 TGLuint,
72 TGLuint64,
73 TGLuint64ConstPointer,
74 TGLuint64Pointer,
75 TGLuintConstPointer,
76 TGLuintPointer,
77 TGLushort,
78 TGLushortConstPointer,
79 TGLushortPointer,
80 TGLvoidConstPointer,
81 TGLvoidConstPointerPointer,
82 TGraphicsResetStatus,
83 THandleType,
84 TLightParameter,
85 TLogicalOperation,
86 TMaterialParameter,
87 TMatrixType,
88 TPointParameter,
89 TPrimitiveMode,
90 TProvokingVertexConvention,
91 TQueryType,
92 TRenderbufferID,
93 TRenderbufferIDConstPointer,
94 TRenderbufferIDPointer,
95 TShaderType,
96 TShadingModel,
97 TTextureEnvParameter,
98 TTextureEnvTarget,
99 TTextureID,
100 TTextureIDConstPointer,
101 TTextureIDPointer,
102 TTextureTarget,
103 TTextureType,
104 TVertexAttribType,
105 TvoidConstPointer,
106 TvoidConstPointerPointer,
107 TvoidPointer,
108 TvoidPointerPointer,
109 };
110
111 union ParamValue
112 {
113 gl::AlphaTestFunc AlphaTestFuncVal;
114 gl::BufferBinding BufferBindingVal;
115 gl::BufferID BufferIDVal;
116 const gl::BufferID *BufferIDConstPointerVal;
117 gl::BufferID *BufferIDPointerVal;
118 gl::BufferUsage BufferUsageVal;
119 gl::ClientVertexArrayType ClientVertexArrayTypeVal;
120 gl::CullFaceMode CullFaceModeVal;
121 gl::DrawElementsType DrawElementsTypeVal;
122 GLDEBUGPROC GLDEBUGPROCVal;
123 GLDEBUGPROCKHR GLDEBUGPROCKHRVal;
124 GLbitfield GLbitfieldVal;
125 GLboolean GLbooleanVal;
126 const GLboolean *GLbooleanConstPointerVal;
127 GLboolean *GLbooleanPointerVal;
128 GLbyte GLbyteVal;
129 const GLbyte *GLbyteConstPointerVal;
130 const GLchar *GLcharConstPointerVal;
131 const GLchar *const *GLcharConstPointerPointerVal;
132 GLchar *GLcharPointerVal;
133 GLclampx GLclampxVal;
134 GLdouble GLdoubleVal;
135 const GLdouble *GLdoubleConstPointerVal;
136 GLdouble *GLdoublePointerVal;
137 GLeglImageOES GLeglImageOESVal;
138 GLenum GLenumVal;
139 const GLenum *GLenumConstPointerVal;
140 GLenum *GLenumPointerVal;
141 GLfixed GLfixedVal;
142 const GLfixed *GLfixedConstPointerVal;
143 GLfixed *GLfixedPointerVal;
144 GLfloat GLfloatVal;
145 const GLfloat *GLfloatConstPointerVal;
146 GLfloat *GLfloatPointerVal;
147 GLint GLintVal;
148 GLint64 *GLint64PointerVal;
149 const GLint *GLintConstPointerVal;
150 GLint *GLintPointerVal;
151 GLintptr GLintptrVal;
152 const GLintptr *GLintptrConstPointerVal;
153 GLshort GLshortVal;
154 const GLshort *GLshortConstPointerVal;
155 GLsizei GLsizeiVal;
156 const GLsizei *GLsizeiConstPointerVal;
157 GLsizei *GLsizeiPointerVal;
158 GLsizeiptr GLsizeiptrVal;
159 const GLsizeiptr *GLsizeiptrConstPointerVal;
160 GLsync GLsyncVal;
161 GLubyte GLubyteVal;
162 const GLubyte *GLubyteConstPointerVal;
163 GLubyte *GLubytePointerVal;
164 GLuint GLuintVal;
165 GLuint64 GLuint64Val;
166 const GLuint64 *GLuint64ConstPointerVal;
167 GLuint64 *GLuint64PointerVal;
168 const GLuint *GLuintConstPointerVal;
169 GLuint *GLuintPointerVal;
170 GLushort GLushortVal;
171 const GLushort *GLushortConstPointerVal;
172 GLushort *GLushortPointerVal;
173 const GLvoid *GLvoidConstPointerVal;
174 const GLvoid *const *GLvoidConstPointerPointerVal;
175 gl::GraphicsResetStatus GraphicsResetStatusVal;
176 gl::HandleType HandleTypeVal;
177 gl::LightParameter LightParameterVal;
178 gl::LogicalOperation LogicalOperationVal;
179 gl::MaterialParameter MaterialParameterVal;
180 gl::MatrixType MatrixTypeVal;
181 gl::PointParameter PointParameterVal;
182 gl::PrimitiveMode PrimitiveModeVal;
183 gl::ProvokingVertexConvention ProvokingVertexConventionVal;
184 gl::QueryType QueryTypeVal;
185 gl::RenderbufferID RenderbufferIDVal;
186 const gl::RenderbufferID *RenderbufferIDConstPointerVal;
187 gl::RenderbufferID *RenderbufferIDPointerVal;
188 gl::ShaderType ShaderTypeVal;
189 gl::ShadingModel ShadingModelVal;
190 gl::TextureEnvParameter TextureEnvParameterVal;
191 gl::TextureEnvTarget TextureEnvTargetVal;
192 gl::TextureID TextureIDVal;
193 const gl::TextureID *TextureIDConstPointerVal;
194 gl::TextureID *TextureIDPointerVal;
195 gl::TextureTarget TextureTargetVal;
196 gl::TextureType TextureTypeVal;
197 gl::VertexAttribType VertexAttribTypeVal;
198 const void *voidConstPointerVal;
199 const void *const *voidConstPointerPointerVal;
200 void *voidPointerVal;
201 void **voidPointerPointerVal;
202 };
203
204 template <ParamType PType, typename T>
205 void SetParamVal(T valueIn, ParamValue *valueOut);
206
207 template <>
208 inline void SetParamVal<ParamType::TAlphaTestFunc>(gl::AlphaTestFunc valueIn, ParamValue *valueOut)
209 {
210 valueOut->AlphaTestFuncVal = valueIn;
211 }
212
213 template <>
214 inline void SetParamVal<ParamType::TBufferBinding>(gl::BufferBinding valueIn, ParamValue *valueOut)
215 {
216 valueOut->BufferBindingVal = valueIn;
217 }
218
219 template <>
220 inline void SetParamVal<ParamType::TBufferID>(gl::BufferID valueIn, ParamValue *valueOut)
221 {
222 valueOut->BufferIDVal = valueIn;
223 }
224
225 template <>
226 inline void SetParamVal<ParamType::TBufferIDConstPointer>(const gl::BufferID *valueIn,
227 ParamValue *valueOut)
228 {
229 valueOut->BufferIDConstPointerVal = valueIn;
230 }
231
232 template <>
233 inline void SetParamVal<ParamType::TBufferIDPointer>(gl::BufferID *valueIn, ParamValue *valueOut)
234 {
235 valueOut->BufferIDPointerVal = valueIn;
236 }
237
238 template <>
239 inline void SetParamVal<ParamType::TBufferUsage>(gl::BufferUsage valueIn, ParamValue *valueOut)
240 {
241 valueOut->BufferUsageVal = valueIn;
242 }
243
244 template <>
245 inline void SetParamVal<ParamType::TClientVertexArrayType>(gl::ClientVertexArrayType valueIn,
246 ParamValue *valueOut)
247 {
248 valueOut->ClientVertexArrayTypeVal = valueIn;
249 }
250
251 template <>
252 inline void SetParamVal<ParamType::TCullFaceMode>(gl::CullFaceMode valueIn, ParamValue *valueOut)
253 {
254 valueOut->CullFaceModeVal = valueIn;
255 }
256
257 template <>
258 inline void SetParamVal<ParamType::TDrawElementsType>(gl::DrawElementsType valueIn,
259 ParamValue *valueOut)
260 {
261 valueOut->DrawElementsTypeVal = valueIn;
262 }
263
264 template <>
265 inline void SetParamVal<ParamType::TGLDEBUGPROC>(GLDEBUGPROC valueIn, ParamValue *valueOut)
266 {
267 valueOut->GLDEBUGPROCVal = valueIn;
268 }
269
270 template <>
271 inline void SetParamVal<ParamType::TGLDEBUGPROCKHR>(GLDEBUGPROCKHR valueIn, ParamValue *valueOut)
272 {
273 valueOut->GLDEBUGPROCKHRVal = valueIn;
274 }
275
276 template <>
277 inline void SetParamVal<ParamType::TGLbitfield>(GLbitfield valueIn, ParamValue *valueOut)
278 {
279 valueOut->GLbitfieldVal = valueIn;
280 }
281
282 template <>
283 inline void SetParamVal<ParamType::TGLboolean>(GLboolean valueIn, ParamValue *valueOut)
284 {
285 valueOut->GLbooleanVal = valueIn;
286 }
287
288 template <>
289 inline void SetParamVal<ParamType::TGLbooleanConstPointer>(const GLboolean *valueIn,
290 ParamValue *valueOut)
291 {
292 valueOut->GLbooleanConstPointerVal = valueIn;
293 }
294
295 template <>
296 inline void SetParamVal<ParamType::TGLbooleanPointer>(GLboolean *valueIn, ParamValue *valueOut)
297 {
298 valueOut->GLbooleanPointerVal = valueIn;
299 }
300
301 template <>
302 inline void SetParamVal<ParamType::TGLbyte>(GLbyte valueIn, ParamValue *valueOut)
303 {
304 valueOut->GLbyteVal = valueIn;
305 }
306
307 template <>
308 inline void SetParamVal<ParamType::TGLbyteConstPointer>(const GLbyte *valueIn, ParamValue *valueOut)
309 {
310 valueOut->GLbyteConstPointerVal = valueIn;
311 }
312
313 template <>
314 inline void SetParamVal<ParamType::TGLcharConstPointer>(const GLchar *valueIn, ParamValue *valueOut)
315 {
316 valueOut->GLcharConstPointerVal = valueIn;
317 }
318
319 template <>
320 inline void SetParamVal<ParamType::TGLcharConstPointerPointer>(const GLchar *const *valueIn,
321 ParamValue *valueOut)
322 {
323 valueOut->GLcharConstPointerPointerVal = valueIn;
324 }
325
326 template <>
327 inline void SetParamVal<ParamType::TGLcharPointer>(GLchar *valueIn, ParamValue *valueOut)
328 {
329 valueOut->GLcharPointerVal = valueIn;
330 }
331
332 template <>
333 inline void SetParamVal<ParamType::TGLclampx>(GLclampx valueIn, ParamValue *valueOut)
334 {
335 valueOut->GLclampxVal = valueIn;
336 }
337
338 template <>
339 inline void SetParamVal<ParamType::TGLdouble>(GLdouble valueIn, ParamValue *valueOut)
340 {
341 valueOut->GLdoubleVal = valueIn;
342 }
343
344 template <>
345 inline void SetParamVal<ParamType::TGLdoubleConstPointer>(const GLdouble *valueIn,
346 ParamValue *valueOut)
347 {
348 valueOut->GLdoubleConstPointerVal = valueIn;
349 }
350
351 template <>
352 inline void SetParamVal<ParamType::TGLdoublePointer>(GLdouble *valueIn, ParamValue *valueOut)
353 {
354 valueOut->GLdoublePointerVal = valueIn;
355 }
356
357 template <>
358 inline void SetParamVal<ParamType::TGLeglImageOES>(GLeglImageOES valueIn, ParamValue *valueOut)
359 {
360 valueOut->GLeglImageOESVal = valueIn;
361 }
362
363 template <>
364 inline void SetParamVal<ParamType::TGLenum>(GLenum valueIn, ParamValue *valueOut)
365 {
366 valueOut->GLenumVal = valueIn;
367 }
368
369 template <>
370 inline void SetParamVal<ParamType::TGLenumConstPointer>(const GLenum *valueIn, ParamValue *valueOut)
371 {
372 valueOut->GLenumConstPointerVal = valueIn;
373 }
374
375 template <>
376 inline void SetParamVal<ParamType::TGLenumPointer>(GLenum *valueIn, ParamValue *valueOut)
377 {
378 valueOut->GLenumPointerVal = valueIn;
379 }
380
381 template <>
382 inline void SetParamVal<ParamType::TGLfixed>(GLfixed valueIn, ParamValue *valueOut)
383 {
384 valueOut->GLfixedVal = valueIn;
385 }
386
387 template <>
388 inline void SetParamVal<ParamType::TGLfixedConstPointer>(const GLfixed *valueIn,
389 ParamValue *valueOut)
390 {
391 valueOut->GLfixedConstPointerVal = valueIn;
392 }
393
394 template <>
395 inline void SetParamVal<ParamType::TGLfixedPointer>(GLfixed *valueIn, ParamValue *valueOut)
396 {
397 valueOut->GLfixedPointerVal = valueIn;
398 }
399
400 template <>
401 inline void SetParamVal<ParamType::TGLfloat>(GLfloat valueIn, ParamValue *valueOut)
402 {
403 valueOut->GLfloatVal = valueIn;
404 }
405
406 template <>
407 inline void SetParamVal<ParamType::TGLfloatConstPointer>(const GLfloat *valueIn,
408 ParamValue *valueOut)
409 {
410 valueOut->GLfloatConstPointerVal = valueIn;
411 }
412
413 template <>
414 inline void SetParamVal<ParamType::TGLfloatPointer>(GLfloat *valueIn, ParamValue *valueOut)
415 {
416 valueOut->GLfloatPointerVal = valueIn;
417 }
418
419 template <>
420 inline void SetParamVal<ParamType::TGLint>(GLint valueIn, ParamValue *valueOut)
421 {
422 valueOut->GLintVal = valueIn;
423 }
424
425 template <>
426 inline void SetParamVal<ParamType::TGLint64Pointer>(GLint64 *valueIn, ParamValue *valueOut)
427 {
428 valueOut->GLint64PointerVal = valueIn;
429 }
430
431 template <>
432 inline void SetParamVal<ParamType::TGLintConstPointer>(const GLint *valueIn, ParamValue *valueOut)
433 {
434 valueOut->GLintConstPointerVal = valueIn;
435 }
436
437 template <>
438 inline void SetParamVal<ParamType::TGLintPointer>(GLint *valueIn, ParamValue *valueOut)
439 {
440 valueOut->GLintPointerVal = valueIn;
441 }
442
443 template <>
444 inline void SetParamVal<ParamType::TGLintptr>(GLintptr valueIn, ParamValue *valueOut)
445 {
446 valueOut->GLintptrVal = valueIn;
447 }
448
449 template <>
450 inline void SetParamVal<ParamType::TGLintptrConstPointer>(const GLintptr *valueIn,
451 ParamValue *valueOut)
452 {
453 valueOut->GLintptrConstPointerVal = valueIn;
454 }
455
456 template <>
457 inline void SetParamVal<ParamType::TGLshort>(GLshort valueIn, ParamValue *valueOut)
458 {
459 valueOut->GLshortVal = valueIn;
460 }
461
462 template <>
463 inline void SetParamVal<ParamType::TGLshortConstPointer>(const GLshort *valueIn,
464 ParamValue *valueOut)
465 {
466 valueOut->GLshortConstPointerVal = valueIn;
467 }
468
469 template <>
470 inline void SetParamVal<ParamType::TGLsizei>(GLsizei valueIn, ParamValue *valueOut)
471 {
472 valueOut->GLsizeiVal = valueIn;
473 }
474
475 template <>
476 inline void SetParamVal<ParamType::TGLsizeiConstPointer>(const GLsizei *valueIn,
477 ParamValue *valueOut)
478 {
479 valueOut->GLsizeiConstPointerVal = valueIn;
480 }
481
482 template <>
483 inline void SetParamVal<ParamType::TGLsizeiPointer>(GLsizei *valueIn, ParamValue *valueOut)
484 {
485 valueOut->GLsizeiPointerVal = valueIn;
486 }
487
488 template <>
489 inline void SetParamVal<ParamType::TGLsizeiptr>(GLsizeiptr valueIn, ParamValue *valueOut)
490 {
491 valueOut->GLsizeiptrVal = valueIn;
492 }
493
494 template <>
495 inline void SetParamVal<ParamType::TGLsizeiptrConstPointer>(const GLsizeiptr *valueIn,
496 ParamValue *valueOut)
497 {
498 valueOut->GLsizeiptrConstPointerVal = valueIn;
499 }
500
501 template <>
502 inline void SetParamVal<ParamType::TGLsync>(GLsync valueIn, ParamValue *valueOut)
503 {
504 valueOut->GLsyncVal = valueIn;
505 }
506
507 template <>
508 inline void SetParamVal<ParamType::TGLubyte>(GLubyte valueIn, ParamValue *valueOut)
509 {
510 valueOut->GLubyteVal = valueIn;
511 }
512
513 template <>
514 inline void SetParamVal<ParamType::TGLubyteConstPointer>(const GLubyte *valueIn,
515 ParamValue *valueOut)
516 {
517 valueOut->GLubyteConstPointerVal = valueIn;
518 }
519
520 template <>
521 inline void SetParamVal<ParamType::TGLubytePointer>(GLubyte *valueIn, ParamValue *valueOut)
522 {
523 valueOut->GLubytePointerVal = valueIn;
524 }
525
526 template <>
527 inline void SetParamVal<ParamType::TGLuint>(GLuint valueIn, ParamValue *valueOut)
528 {
529 valueOut->GLuintVal = valueIn;
530 }
531
532 template <>
533 inline void SetParamVal<ParamType::TGLuint64>(GLuint64 valueIn, ParamValue *valueOut)
534 {
535 valueOut->GLuint64Val = valueIn;
536 }
537
538 template <>
539 inline void SetParamVal<ParamType::TGLuint64ConstPointer>(const GLuint64 *valueIn,
540 ParamValue *valueOut)
541 {
542 valueOut->GLuint64ConstPointerVal = valueIn;
543 }
544
545 template <>
546 inline void SetParamVal<ParamType::TGLuint64Pointer>(GLuint64 *valueIn, ParamValue *valueOut)
547 {
548 valueOut->GLuint64PointerVal = valueIn;
549 }
550
551 template <>
552 inline void SetParamVal<ParamType::TGLuintConstPointer>(const GLuint *valueIn, ParamValue *valueOut)
553 {
554 valueOut->GLuintConstPointerVal = valueIn;
555 }
556
557 template <>
558 inline void SetParamVal<ParamType::TGLuintPointer>(GLuint *valueIn, ParamValue *valueOut)
559 {
560 valueOut->GLuintPointerVal = valueIn;
561 }
562
563 template <>
564 inline void SetParamVal<ParamType::TGLushort>(GLushort valueIn, ParamValue *valueOut)
565 {
566 valueOut->GLushortVal = valueIn;
567 }
568
569 template <>
570 inline void SetParamVal<ParamType::TGLushortConstPointer>(const GLushort *valueIn,
571 ParamValue *valueOut)
572 {
573 valueOut->GLushortConstPointerVal = valueIn;
574 }
575
576 template <>
577 inline void SetParamVal<ParamType::TGLushortPointer>(GLushort *valueIn, ParamValue *valueOut)
578 {
579 valueOut->GLushortPointerVal = valueIn;
580 }
581
582 template <>
583 inline void SetParamVal<ParamType::TGLvoidConstPointer>(const GLvoid *valueIn, ParamValue *valueOut)
584 {
585 valueOut->GLvoidConstPointerVal = valueIn;
586 }
587
588 template <>
589 inline void SetParamVal<ParamType::TGLvoidConstPointerPointer>(const GLvoid *const *valueIn,
590 ParamValue *valueOut)
591 {
592 valueOut->GLvoidConstPointerPointerVal = valueIn;
593 }
594
595 template <>
596 inline void SetParamVal<ParamType::TGraphicsResetStatus>(gl::GraphicsResetStatus valueIn,
597 ParamValue *valueOut)
598 {
599 valueOut->GraphicsResetStatusVal = valueIn;
600 }
601
602 template <>
603 inline void SetParamVal<ParamType::THandleType>(gl::HandleType valueIn, ParamValue *valueOut)
604 {
605 valueOut->HandleTypeVal = valueIn;
606 }
607
608 template <>
609 inline void SetParamVal<ParamType::TLightParameter>(gl::LightParameter valueIn,
610 ParamValue *valueOut)
611 {
612 valueOut->LightParameterVal = valueIn;
613 }
614
615 template <>
616 inline void SetParamVal<ParamType::TLogicalOperation>(gl::LogicalOperation valueIn,
617 ParamValue *valueOut)
618 {
619 valueOut->LogicalOperationVal = valueIn;
620 }
621
622 template <>
623 inline void SetParamVal<ParamType::TMaterialParameter>(gl::MaterialParameter valueIn,
624 ParamValue *valueOut)
625 {
626 valueOut->MaterialParameterVal = valueIn;
627 }
628
629 template <>
630 inline void SetParamVal<ParamType::TMatrixType>(gl::MatrixType valueIn, ParamValue *valueOut)
631 {
632 valueOut->MatrixTypeVal = valueIn;
633 }
634
635 template <>
636 inline void SetParamVal<ParamType::TPointParameter>(gl::PointParameter valueIn,
637 ParamValue *valueOut)
638 {
639 valueOut->PointParameterVal = valueIn;
640 }
641
642 template <>
643 inline void SetParamVal<ParamType::TPrimitiveMode>(gl::PrimitiveMode valueIn, ParamValue *valueOut)
644 {
645 valueOut->PrimitiveModeVal = valueIn;
646 }
647
648 template <>
649 inline void SetParamVal<ParamType::TProvokingVertexConvention>(
650 gl::ProvokingVertexConvention valueIn,
651 ParamValue *valueOut)
652 {
653 valueOut->ProvokingVertexConventionVal = valueIn;
654 }
655
656 template <>
657 inline void SetParamVal<ParamType::TQueryType>(gl::QueryType valueIn, ParamValue *valueOut)
658 {
659 valueOut->QueryTypeVal = valueIn;
660 }
661
662 template <>
663 inline void SetParamVal<ParamType::TRenderbufferID>(gl::RenderbufferID valueIn,
664 ParamValue *valueOut)
665 {
666 valueOut->RenderbufferIDVal = valueIn;
667 }
668
669 template <>
670 inline void SetParamVal<ParamType::TRenderbufferIDConstPointer>(const gl::RenderbufferID *valueIn,
671 ParamValue *valueOut)
672 {
673 valueOut->RenderbufferIDConstPointerVal = valueIn;
674 }
675
676 template <>
677 inline void SetParamVal<ParamType::TRenderbufferIDPointer>(gl::RenderbufferID *valueIn,
678 ParamValue *valueOut)
679 {
680 valueOut->RenderbufferIDPointerVal = valueIn;
681 }
682
683 template <>
684 inline void SetParamVal<ParamType::TShaderType>(gl::ShaderType valueIn, ParamValue *valueOut)
685 {
686 valueOut->ShaderTypeVal = valueIn;
687 }
688
689 template <>
690 inline void SetParamVal<ParamType::TShadingModel>(gl::ShadingModel valueIn, ParamValue *valueOut)
691 {
692 valueOut->ShadingModelVal = valueIn;
693 }
694
695 template <>
696 inline void SetParamVal<ParamType::TTextureEnvParameter>(gl::TextureEnvParameter valueIn,
697 ParamValue *valueOut)
698 {
699 valueOut->TextureEnvParameterVal = valueIn;
700 }
701
702 template <>
703 inline void SetParamVal<ParamType::TTextureEnvTarget>(gl::TextureEnvTarget valueIn,
704 ParamValue *valueOut)
705 {
706 valueOut->TextureEnvTargetVal = valueIn;
707 }
708
709 template <>
710 inline void SetParamVal<ParamType::TTextureID>(gl::TextureID valueIn, ParamValue *valueOut)
711 {
712 valueOut->TextureIDVal = valueIn;
713 }
714
715 template <>
716 inline void SetParamVal<ParamType::TTextureIDConstPointer>(const gl::TextureID *valueIn,
717 ParamValue *valueOut)
718 {
719 valueOut->TextureIDConstPointerVal = valueIn;
720 }
721
722 template <>
723 inline void SetParamVal<ParamType::TTextureIDPointer>(gl::TextureID *valueIn, ParamValue *valueOut)
724 {
725 valueOut->TextureIDPointerVal = valueIn;
726 }
727
728 template <>
729 inline void SetParamVal<ParamType::TTextureTarget>(gl::TextureTarget valueIn, ParamValue *valueOut)
730 {
731 valueOut->TextureTargetVal = valueIn;
732 }
733
734 template <>
735 inline void SetParamVal<ParamType::TTextureType>(gl::TextureType valueIn, ParamValue *valueOut)
736 {
737 valueOut->TextureTypeVal = valueIn;
738 }
739
740 template <>
741 inline void SetParamVal<ParamType::TVertexAttribType>(gl::VertexAttribType valueIn,
742 ParamValue *valueOut)
743 {
744 valueOut->VertexAttribTypeVal = valueIn;
745 }
746
747 template <>
748 inline void SetParamVal<ParamType::TvoidConstPointer>(const void *valueIn, ParamValue *valueOut)
749 {
750 valueOut->voidConstPointerVal = valueIn;
751 }
752
753 template <>
754 inline void SetParamVal<ParamType::TvoidConstPointerPointer>(const void *const *valueIn,
755 ParamValue *valueOut)
756 {
757 valueOut->voidConstPointerPointerVal = valueIn;
758 }
759
760 template <>
761 inline void SetParamVal<ParamType::TvoidPointer>(void *valueIn, ParamValue *valueOut)
762 {
763 valueOut->voidPointerVal = valueIn;
764 }
765
766 template <>
767 inline void SetParamVal<ParamType::TvoidPointerPointer>(void **valueIn, ParamValue *valueOut)
768 {
769 valueOut->voidPointerPointerVal = valueIn;
770 }
771
772 template <ParamType PType, typename T>
SetParamVal(T valueIn,ParamValue * valueOut)773 void SetParamVal(T valueIn, ParamValue *valueOut)
774 {
775 UNREACHABLE();
776 }
777
778 template <typename T>
InitParamValue(ParamType paramType,T valueIn,ParamValue * valueOut)779 void InitParamValue(ParamType paramType, T valueIn, ParamValue *valueOut)
780 {
781 switch (paramType)
782 {
783 case ParamType::TAlphaTestFunc:
784 SetParamVal<ParamType::TAlphaTestFunc>(valueIn, valueOut);
785 break;
786 case ParamType::TBufferBinding:
787 SetParamVal<ParamType::TBufferBinding>(valueIn, valueOut);
788 break;
789 case ParamType::TBufferID:
790 SetParamVal<ParamType::TBufferID>(valueIn, valueOut);
791 break;
792 case ParamType::TBufferIDConstPointer:
793 SetParamVal<ParamType::TBufferIDConstPointer>(valueIn, valueOut);
794 break;
795 case ParamType::TBufferIDPointer:
796 SetParamVal<ParamType::TBufferIDPointer>(valueIn, valueOut);
797 break;
798 case ParamType::TBufferUsage:
799 SetParamVal<ParamType::TBufferUsage>(valueIn, valueOut);
800 break;
801 case ParamType::TClientVertexArrayType:
802 SetParamVal<ParamType::TClientVertexArrayType>(valueIn, valueOut);
803 break;
804 case ParamType::TCullFaceMode:
805 SetParamVal<ParamType::TCullFaceMode>(valueIn, valueOut);
806 break;
807 case ParamType::TDrawElementsType:
808 SetParamVal<ParamType::TDrawElementsType>(valueIn, valueOut);
809 break;
810 case ParamType::TGLDEBUGPROC:
811 SetParamVal<ParamType::TGLDEBUGPROC>(valueIn, valueOut);
812 break;
813 case ParamType::TGLDEBUGPROCKHR:
814 SetParamVal<ParamType::TGLDEBUGPROCKHR>(valueIn, valueOut);
815 break;
816 case ParamType::TGLbitfield:
817 SetParamVal<ParamType::TGLbitfield>(valueIn, valueOut);
818 break;
819 case ParamType::TGLboolean:
820 SetParamVal<ParamType::TGLboolean>(valueIn, valueOut);
821 break;
822 case ParamType::TGLbooleanConstPointer:
823 SetParamVal<ParamType::TGLbooleanConstPointer>(valueIn, valueOut);
824 break;
825 case ParamType::TGLbooleanPointer:
826 SetParamVal<ParamType::TGLbooleanPointer>(valueIn, valueOut);
827 break;
828 case ParamType::TGLbyte:
829 SetParamVal<ParamType::TGLbyte>(valueIn, valueOut);
830 break;
831 case ParamType::TGLbyteConstPointer:
832 SetParamVal<ParamType::TGLbyteConstPointer>(valueIn, valueOut);
833 break;
834 case ParamType::TGLcharConstPointer:
835 SetParamVal<ParamType::TGLcharConstPointer>(valueIn, valueOut);
836 break;
837 case ParamType::TGLcharConstPointerPointer:
838 SetParamVal<ParamType::TGLcharConstPointerPointer>(valueIn, valueOut);
839 break;
840 case ParamType::TGLcharPointer:
841 SetParamVal<ParamType::TGLcharPointer>(valueIn, valueOut);
842 break;
843 case ParamType::TGLclampx:
844 SetParamVal<ParamType::TGLclampx>(valueIn, valueOut);
845 break;
846 case ParamType::TGLdouble:
847 SetParamVal<ParamType::TGLdouble>(valueIn, valueOut);
848 break;
849 case ParamType::TGLdoubleConstPointer:
850 SetParamVal<ParamType::TGLdoubleConstPointer>(valueIn, valueOut);
851 break;
852 case ParamType::TGLdoublePointer:
853 SetParamVal<ParamType::TGLdoublePointer>(valueIn, valueOut);
854 break;
855 case ParamType::TGLeglImageOES:
856 SetParamVal<ParamType::TGLeglImageOES>(valueIn, valueOut);
857 break;
858 case ParamType::TGLenum:
859 SetParamVal<ParamType::TGLenum>(valueIn, valueOut);
860 break;
861 case ParamType::TGLenumConstPointer:
862 SetParamVal<ParamType::TGLenumConstPointer>(valueIn, valueOut);
863 break;
864 case ParamType::TGLenumPointer:
865 SetParamVal<ParamType::TGLenumPointer>(valueIn, valueOut);
866 break;
867 case ParamType::TGLfixed:
868 SetParamVal<ParamType::TGLfixed>(valueIn, valueOut);
869 break;
870 case ParamType::TGLfixedConstPointer:
871 SetParamVal<ParamType::TGLfixedConstPointer>(valueIn, valueOut);
872 break;
873 case ParamType::TGLfixedPointer:
874 SetParamVal<ParamType::TGLfixedPointer>(valueIn, valueOut);
875 break;
876 case ParamType::TGLfloat:
877 SetParamVal<ParamType::TGLfloat>(valueIn, valueOut);
878 break;
879 case ParamType::TGLfloatConstPointer:
880 SetParamVal<ParamType::TGLfloatConstPointer>(valueIn, valueOut);
881 break;
882 case ParamType::TGLfloatPointer:
883 SetParamVal<ParamType::TGLfloatPointer>(valueIn, valueOut);
884 break;
885 case ParamType::TGLint:
886 SetParamVal<ParamType::TGLint>(valueIn, valueOut);
887 break;
888 case ParamType::TGLint64Pointer:
889 SetParamVal<ParamType::TGLint64Pointer>(valueIn, valueOut);
890 break;
891 case ParamType::TGLintConstPointer:
892 SetParamVal<ParamType::TGLintConstPointer>(valueIn, valueOut);
893 break;
894 case ParamType::TGLintPointer:
895 SetParamVal<ParamType::TGLintPointer>(valueIn, valueOut);
896 break;
897 case ParamType::TGLintptr:
898 SetParamVal<ParamType::TGLintptr>(valueIn, valueOut);
899 break;
900 case ParamType::TGLintptrConstPointer:
901 SetParamVal<ParamType::TGLintptrConstPointer>(valueIn, valueOut);
902 break;
903 case ParamType::TGLshort:
904 SetParamVal<ParamType::TGLshort>(valueIn, valueOut);
905 break;
906 case ParamType::TGLshortConstPointer:
907 SetParamVal<ParamType::TGLshortConstPointer>(valueIn, valueOut);
908 break;
909 case ParamType::TGLsizei:
910 SetParamVal<ParamType::TGLsizei>(valueIn, valueOut);
911 break;
912 case ParamType::TGLsizeiConstPointer:
913 SetParamVal<ParamType::TGLsizeiConstPointer>(valueIn, valueOut);
914 break;
915 case ParamType::TGLsizeiPointer:
916 SetParamVal<ParamType::TGLsizeiPointer>(valueIn, valueOut);
917 break;
918 case ParamType::TGLsizeiptr:
919 SetParamVal<ParamType::TGLsizeiptr>(valueIn, valueOut);
920 break;
921 case ParamType::TGLsizeiptrConstPointer:
922 SetParamVal<ParamType::TGLsizeiptrConstPointer>(valueIn, valueOut);
923 break;
924 case ParamType::TGLsync:
925 SetParamVal<ParamType::TGLsync>(valueIn, valueOut);
926 break;
927 case ParamType::TGLubyte:
928 SetParamVal<ParamType::TGLubyte>(valueIn, valueOut);
929 break;
930 case ParamType::TGLubyteConstPointer:
931 SetParamVal<ParamType::TGLubyteConstPointer>(valueIn, valueOut);
932 break;
933 case ParamType::TGLubytePointer:
934 SetParamVal<ParamType::TGLubytePointer>(valueIn, valueOut);
935 break;
936 case ParamType::TGLuint:
937 SetParamVal<ParamType::TGLuint>(valueIn, valueOut);
938 break;
939 case ParamType::TGLuint64:
940 SetParamVal<ParamType::TGLuint64>(valueIn, valueOut);
941 break;
942 case ParamType::TGLuint64ConstPointer:
943 SetParamVal<ParamType::TGLuint64ConstPointer>(valueIn, valueOut);
944 break;
945 case ParamType::TGLuint64Pointer:
946 SetParamVal<ParamType::TGLuint64Pointer>(valueIn, valueOut);
947 break;
948 case ParamType::TGLuintConstPointer:
949 SetParamVal<ParamType::TGLuintConstPointer>(valueIn, valueOut);
950 break;
951 case ParamType::TGLuintPointer:
952 SetParamVal<ParamType::TGLuintPointer>(valueIn, valueOut);
953 break;
954 case ParamType::TGLushort:
955 SetParamVal<ParamType::TGLushort>(valueIn, valueOut);
956 break;
957 case ParamType::TGLushortConstPointer:
958 SetParamVal<ParamType::TGLushortConstPointer>(valueIn, valueOut);
959 break;
960 case ParamType::TGLushortPointer:
961 SetParamVal<ParamType::TGLushortPointer>(valueIn, valueOut);
962 break;
963 case ParamType::TGLvoidConstPointer:
964 SetParamVal<ParamType::TGLvoidConstPointer>(valueIn, valueOut);
965 break;
966 case ParamType::TGLvoidConstPointerPointer:
967 SetParamVal<ParamType::TGLvoidConstPointerPointer>(valueIn, valueOut);
968 break;
969 case ParamType::TGraphicsResetStatus:
970 SetParamVal<ParamType::TGraphicsResetStatus>(valueIn, valueOut);
971 break;
972 case ParamType::THandleType:
973 SetParamVal<ParamType::THandleType>(valueIn, valueOut);
974 break;
975 case ParamType::TLightParameter:
976 SetParamVal<ParamType::TLightParameter>(valueIn, valueOut);
977 break;
978 case ParamType::TLogicalOperation:
979 SetParamVal<ParamType::TLogicalOperation>(valueIn, valueOut);
980 break;
981 case ParamType::TMaterialParameter:
982 SetParamVal<ParamType::TMaterialParameter>(valueIn, valueOut);
983 break;
984 case ParamType::TMatrixType:
985 SetParamVal<ParamType::TMatrixType>(valueIn, valueOut);
986 break;
987 case ParamType::TPointParameter:
988 SetParamVal<ParamType::TPointParameter>(valueIn, valueOut);
989 break;
990 case ParamType::TPrimitiveMode:
991 SetParamVal<ParamType::TPrimitiveMode>(valueIn, valueOut);
992 break;
993 case ParamType::TProvokingVertexConvention:
994 SetParamVal<ParamType::TProvokingVertexConvention>(valueIn, valueOut);
995 break;
996 case ParamType::TQueryType:
997 SetParamVal<ParamType::TQueryType>(valueIn, valueOut);
998 break;
999 case ParamType::TRenderbufferID:
1000 SetParamVal<ParamType::TRenderbufferID>(valueIn, valueOut);
1001 break;
1002 case ParamType::TRenderbufferIDConstPointer:
1003 SetParamVal<ParamType::TRenderbufferIDConstPointer>(valueIn, valueOut);
1004 break;
1005 case ParamType::TRenderbufferIDPointer:
1006 SetParamVal<ParamType::TRenderbufferIDPointer>(valueIn, valueOut);
1007 break;
1008 case ParamType::TShaderType:
1009 SetParamVal<ParamType::TShaderType>(valueIn, valueOut);
1010 break;
1011 case ParamType::TShadingModel:
1012 SetParamVal<ParamType::TShadingModel>(valueIn, valueOut);
1013 break;
1014 case ParamType::TTextureEnvParameter:
1015 SetParamVal<ParamType::TTextureEnvParameter>(valueIn, valueOut);
1016 break;
1017 case ParamType::TTextureEnvTarget:
1018 SetParamVal<ParamType::TTextureEnvTarget>(valueIn, valueOut);
1019 break;
1020 case ParamType::TTextureID:
1021 SetParamVal<ParamType::TTextureID>(valueIn, valueOut);
1022 break;
1023 case ParamType::TTextureIDConstPointer:
1024 SetParamVal<ParamType::TTextureIDConstPointer>(valueIn, valueOut);
1025 break;
1026 case ParamType::TTextureIDPointer:
1027 SetParamVal<ParamType::TTextureIDPointer>(valueIn, valueOut);
1028 break;
1029 case ParamType::TTextureTarget:
1030 SetParamVal<ParamType::TTextureTarget>(valueIn, valueOut);
1031 break;
1032 case ParamType::TTextureType:
1033 SetParamVal<ParamType::TTextureType>(valueIn, valueOut);
1034 break;
1035 case ParamType::TVertexAttribType:
1036 SetParamVal<ParamType::TVertexAttribType>(valueIn, valueOut);
1037 break;
1038 case ParamType::TvoidConstPointer:
1039 SetParamVal<ParamType::TvoidConstPointer>(valueIn, valueOut);
1040 break;
1041 case ParamType::TvoidConstPointerPointer:
1042 SetParamVal<ParamType::TvoidConstPointerPointer>(valueIn, valueOut);
1043 break;
1044 case ParamType::TvoidPointer:
1045 SetParamVal<ParamType::TvoidPointer>(valueIn, valueOut);
1046 break;
1047 case ParamType::TvoidPointerPointer:
1048 SetParamVal<ParamType::TvoidPointerPointer>(valueIn, valueOut);
1049 break;
1050 }
1051 }
1052
1053 void WriteParamTypeToStream(std::ostream &os, ParamType paramType, const ParamValue ¶mValue);
1054 const char *ParamTypeToString(ParamType paramType);
1055 } // namespace angle
1056
1057 #endif // LIBANGLE_FRAME_CAPTURE_UTILS_AUTOGEN_H_
1058