• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 &paramValue);
1054 const char *ParamTypeToString(ParamType paramType);
1055 }  // namespace angle
1056 
1057 #endif  // LIBANGLE_FRAME_CAPTURE_UTILS_AUTOGEN_H_
1058