diff options
Diffstat (limited to 'ddl/out/cpp/LambdaCube.IR2.hpp')
-rw-r--r-- | ddl/out/cpp/LambdaCube.IR2.hpp | 1071 |
1 files changed, 1071 insertions, 0 deletions
diff --git a/ddl/out/cpp/LambdaCube.IR2.hpp b/ddl/out/cpp/LambdaCube.IR2.hpp new file mode 100644 index 0000000..1ef1dc2 --- /dev/null +++ b/ddl/out/cpp/LambdaCube.IR2.hpp | |||
@@ -0,0 +1,1071 @@ | |||
1 | // generated file, do not modify! | ||
2 | // 2016-11-11T11:17:02.701527000000Z | ||
3 | |||
4 | #ifndef HEADER_LambdaCube.IR_H | ||
5 | #define HEADER_LambdaCube.IR_H | ||
6 | |||
7 | #include "RT.hpp" | ||
8 | |||
9 | |||
10 | typedef Int StreamName; | ||
11 | |||
12 | typedef Int ProgramName; | ||
13 | |||
14 | typedef Int TextureName; | ||
15 | |||
16 | typedef Int SamplerName; | ||
17 | |||
18 | typedef String UniformName; | ||
19 | |||
20 | typedef Int SlotName; | ||
21 | |||
22 | typedef Int FrameBufferComponent; | ||
23 | |||
24 | typedef Int TextureUnit; | ||
25 | |||
26 | typedef Int RenderTargetName; | ||
27 | |||
28 | typedef std::map<::UniformName, ::TextureUnit> TextureUnitMapping; | ||
29 | |||
30 | namespace data { | ||
31 | class VBoolArray { | ||
32 | public: | ||
33 | std::vector<Bool> _0; | ||
34 | }; | ||
35 | class VIntArray { | ||
36 | public: | ||
37 | std::vector<Int32> _0; | ||
38 | }; | ||
39 | class VWordArray { | ||
40 | public: | ||
41 | std::vector<Word32> _0; | ||
42 | }; | ||
43 | class VFloatArray { | ||
44 | public: | ||
45 | std::vector<Float> _0; | ||
46 | }; | ||
47 | } | ||
48 | class ArrayValue { | ||
49 | public: | ||
50 | enum class tag { | ||
51 | VBoolArray, | ||
52 | VIntArray, | ||
53 | VWordArray, | ||
54 | VFloatArray | ||
55 | } tag; | ||
56 | std::shared_ptr<data::VBoolArray> VBoolArray; | ||
57 | std::shared_ptr<data::VIntArray> VIntArray; | ||
58 | std::shared_ptr<data::VWordArray> VWordArray; | ||
59 | std::shared_ptr<data::VFloatArray> VFloatArray; | ||
60 | }; | ||
61 | namespace data { | ||
62 | class VBool { | ||
63 | public: | ||
64 | Bool _0; | ||
65 | }; | ||
66 | class VV2B { | ||
67 | public: | ||
68 | V2B _0; | ||
69 | }; | ||
70 | class VV3B { | ||
71 | public: | ||
72 | V3B _0; | ||
73 | }; | ||
74 | class VV4B { | ||
75 | public: | ||
76 | V4B _0; | ||
77 | }; | ||
78 | class VWord { | ||
79 | public: | ||
80 | Word32 _0; | ||
81 | }; | ||
82 | class VV2U { | ||
83 | public: | ||
84 | V2U _0; | ||
85 | }; | ||
86 | class VV3U { | ||
87 | public: | ||
88 | V3U _0; | ||
89 | }; | ||
90 | class VV4U { | ||
91 | public: | ||
92 | V4U _0; | ||
93 | }; | ||
94 | class VInt { | ||
95 | public: | ||
96 | Int32 _0; | ||
97 | }; | ||
98 | class VV2I { | ||
99 | public: | ||
100 | V2I _0; | ||
101 | }; | ||
102 | class VV3I { | ||
103 | public: | ||
104 | V3I _0; | ||
105 | }; | ||
106 | class VV4I { | ||
107 | public: | ||
108 | V4I _0; | ||
109 | }; | ||
110 | class VFloat { | ||
111 | public: | ||
112 | Float _0; | ||
113 | }; | ||
114 | class VV2F { | ||
115 | public: | ||
116 | V2F _0; | ||
117 | }; | ||
118 | class VV3F { | ||
119 | public: | ||
120 | V3F _0; | ||
121 | }; | ||
122 | class VV4F { | ||
123 | public: | ||
124 | V4F _0; | ||
125 | }; | ||
126 | class VM22F { | ||
127 | public: | ||
128 | M22F _0; | ||
129 | }; | ||
130 | class VM23F { | ||
131 | public: | ||
132 | M23F _0; | ||
133 | }; | ||
134 | class VM24F { | ||
135 | public: | ||
136 | M24F _0; | ||
137 | }; | ||
138 | class VM32F { | ||
139 | public: | ||
140 | M32F _0; | ||
141 | }; | ||
142 | class VM33F { | ||
143 | public: | ||
144 | M33F _0; | ||
145 | }; | ||
146 | class VM34F { | ||
147 | public: | ||
148 | M34F _0; | ||
149 | }; | ||
150 | class VM42F { | ||
151 | public: | ||
152 | M42F _0; | ||
153 | }; | ||
154 | class VM43F { | ||
155 | public: | ||
156 | M43F _0; | ||
157 | }; | ||
158 | class VM44F { | ||
159 | public: | ||
160 | M44F _0; | ||
161 | }; | ||
162 | } | ||
163 | class Value { | ||
164 | public: | ||
165 | enum class tag { | ||
166 | VBool, | ||
167 | VV2B, | ||
168 | VV3B, | ||
169 | VV4B, | ||
170 | VWord, | ||
171 | VV2U, | ||
172 | VV3U, | ||
173 | VV4U, | ||
174 | VInt, | ||
175 | VV2I, | ||
176 | VV3I, | ||
177 | VV4I, | ||
178 | VFloat, | ||
179 | VV2F, | ||
180 | VV3F, | ||
181 | VV4F, | ||
182 | VM22F, | ||
183 | VM23F, | ||
184 | VM24F, | ||
185 | VM32F, | ||
186 | VM33F, | ||
187 | VM34F, | ||
188 | VM42F, | ||
189 | VM43F, | ||
190 | VM44F | ||
191 | } tag; | ||
192 | std::shared_ptr<data::VBool> VBool; | ||
193 | std::shared_ptr<data::VV2B> VV2B; | ||
194 | std::shared_ptr<data::VV3B> VV3B; | ||
195 | std::shared_ptr<data::VV4B> VV4B; | ||
196 | std::shared_ptr<data::VWord> VWord; | ||
197 | std::shared_ptr<data::VV2U> VV2U; | ||
198 | std::shared_ptr<data::VV3U> VV3U; | ||
199 | std::shared_ptr<data::VV4U> VV4U; | ||
200 | std::shared_ptr<data::VInt> VInt; | ||
201 | std::shared_ptr<data::VV2I> VV2I; | ||
202 | std::shared_ptr<data::VV3I> VV3I; | ||
203 | std::shared_ptr<data::VV4I> VV4I; | ||
204 | std::shared_ptr<data::VFloat> VFloat; | ||
205 | std::shared_ptr<data::VV2F> VV2F; | ||
206 | std::shared_ptr<data::VV3F> VV3F; | ||
207 | std::shared_ptr<data::VV4F> VV4F; | ||
208 | std::shared_ptr<data::VM22F> VM22F; | ||
209 | std::shared_ptr<data::VM23F> VM23F; | ||
210 | std::shared_ptr<data::VM24F> VM24F; | ||
211 | std::shared_ptr<data::VM32F> VM32F; | ||
212 | std::shared_ptr<data::VM33F> VM33F; | ||
213 | std::shared_ptr<data::VM34F> VM34F; | ||
214 | std::shared_ptr<data::VM42F> VM42F; | ||
215 | std::shared_ptr<data::VM43F> VM43F; | ||
216 | std::shared_ptr<data::VM44F> VM44F; | ||
217 | }; | ||
218 | namespace data { | ||
219 | } | ||
220 | class InputType { | ||
221 | public: | ||
222 | enum class tag { | ||
223 | Bool, | ||
224 | V2B, | ||
225 | V3B, | ||
226 | V4B, | ||
227 | Word, | ||
228 | V2U, | ||
229 | V3U, | ||
230 | V4U, | ||
231 | Int, | ||
232 | V2I, | ||
233 | V3I, | ||
234 | V4I, | ||
235 | Float, | ||
236 | V2F, | ||
237 | V3F, | ||
238 | V4F, | ||
239 | M22F, | ||
240 | M23F, | ||
241 | M24F, | ||
242 | M32F, | ||
243 | M33F, | ||
244 | M34F, | ||
245 | M42F, | ||
246 | M43F, | ||
247 | M44F, | ||
248 | STexture1D, | ||
249 | STexture2D, | ||
250 | STextureCube, | ||
251 | STexture1DArray, | ||
252 | STexture2DArray, | ||
253 | STexture2DRect, | ||
254 | FTexture1D, | ||
255 | FTexture2D, | ||
256 | FTexture3D, | ||
257 | FTextureCube, | ||
258 | FTexture1DArray, | ||
259 | FTexture2DArray, | ||
260 | FTexture2DMS, | ||
261 | FTexture2DMSArray, | ||
262 | FTextureBuffer, | ||
263 | FTexture2DRect, | ||
264 | ITexture1D, | ||
265 | ITexture2D, | ||
266 | ITexture3D, | ||
267 | ITextureCube, | ||
268 | ITexture1DArray, | ||
269 | ITexture2DArray, | ||
270 | ITexture2DMS, | ||
271 | ITexture2DMSArray, | ||
272 | ITextureBuffer, | ||
273 | ITexture2DRect, | ||
274 | UTexture1D, | ||
275 | UTexture2D, | ||
276 | UTexture3D, | ||
277 | UTextureCube, | ||
278 | UTexture1DArray, | ||
279 | UTexture2DArray, | ||
280 | UTexture2DMS, | ||
281 | UTexture2DMSArray, | ||
282 | UTextureBuffer, | ||
283 | UTexture2DRect | ||
284 | } tag; | ||
285 | }; | ||
286 | namespace data { | ||
287 | } | ||
288 | class PointSpriteCoordOrigin { | ||
289 | public: | ||
290 | enum class tag { | ||
291 | LowerLeft, | ||
292 | UpperLeft | ||
293 | } tag; | ||
294 | }; | ||
295 | namespace data { | ||
296 | class PointSize { | ||
297 | public: | ||
298 | Float _0; | ||
299 | }; | ||
300 | } | ||
301 | class PointSize { | ||
302 | public: | ||
303 | enum class tag { | ||
304 | PointSize, | ||
305 | ProgramPointSize | ||
306 | } tag; | ||
307 | std::shared_ptr<data::PointSize> PointSize; | ||
308 | }; | ||
309 | namespace data { | ||
310 | class Offset { | ||
311 | public: | ||
312 | Float _0; | ||
313 | Float _1; | ||
314 | }; | ||
315 | } | ||
316 | class PolygonOffset { | ||
317 | public: | ||
318 | enum class tag { | ||
319 | NoOffset, | ||
320 | Offset | ||
321 | } tag; | ||
322 | std::shared_ptr<data::Offset> Offset; | ||
323 | }; | ||
324 | namespace data { | ||
325 | } | ||
326 | class FrontFace { | ||
327 | public: | ||
328 | enum class tag { | ||
329 | CCW, | ||
330 | CW | ||
331 | } tag; | ||
332 | }; | ||
333 | namespace data { | ||
334 | class PolygonPoint { | ||
335 | public: | ||
336 | std::shared_ptr<::PointSize> _0; | ||
337 | }; | ||
338 | class PolygonLine { | ||
339 | public: | ||
340 | Float _0; | ||
341 | }; | ||
342 | } | ||
343 | class PolygonMode { | ||
344 | public: | ||
345 | enum class tag { | ||
346 | PolygonPoint, | ||
347 | PolygonLine, | ||
348 | PolygonFill | ||
349 | } tag; | ||
350 | std::shared_ptr<data::PolygonPoint> PolygonPoint; | ||
351 | std::shared_ptr<data::PolygonLine> PolygonLine; | ||
352 | }; | ||
353 | namespace data { | ||
354 | } | ||
355 | class ProvokingVertex { | ||
356 | public: | ||
357 | enum class tag { | ||
358 | FirstVertex, | ||
359 | LastVertex | ||
360 | } tag; | ||
361 | }; | ||
362 | namespace data { | ||
363 | class CullFront { | ||
364 | public: | ||
365 | std::shared_ptr<::FrontFace> _0; | ||
366 | }; | ||
367 | class CullBack { | ||
368 | public: | ||
369 | std::shared_ptr<::FrontFace> _0; | ||
370 | }; | ||
371 | } | ||
372 | class CullMode { | ||
373 | public: | ||
374 | enum class tag { | ||
375 | CullNone, | ||
376 | CullFront, | ||
377 | CullBack | ||
378 | } tag; | ||
379 | std::shared_ptr<data::CullFront> CullFront; | ||
380 | std::shared_ptr<data::CullBack> CullBack; | ||
381 | }; | ||
382 | namespace data { | ||
383 | } | ||
384 | class ComparisonFunction { | ||
385 | public: | ||
386 | enum class tag { | ||
387 | Never, | ||
388 | Less, | ||
389 | Equal, | ||
390 | Lequal, | ||
391 | Greater, | ||
392 | Notequal, | ||
393 | Gequal, | ||
394 | Always | ||
395 | } tag; | ||
396 | }; | ||
397 | typedef ComparisonFunction DepthFunction; | ||
398 | |||
399 | namespace data { | ||
400 | } | ||
401 | class StencilOperation { | ||
402 | public: | ||
403 | enum class tag { | ||
404 | OpZero, | ||
405 | OpKeep, | ||
406 | OpReplace, | ||
407 | OpIncr, | ||
408 | OpIncrWrap, | ||
409 | OpDecr, | ||
410 | OpDecrWrap, | ||
411 | OpInvert | ||
412 | } tag; | ||
413 | }; | ||
414 | namespace data { | ||
415 | } | ||
416 | class BlendEquation { | ||
417 | public: | ||
418 | enum class tag { | ||
419 | FuncAdd, | ||
420 | FuncSubtract, | ||
421 | FuncReverseSubtract, | ||
422 | Min, | ||
423 | Max | ||
424 | } tag; | ||
425 | }; | ||
426 | namespace data { | ||
427 | } | ||
428 | class BlendingFactor { | ||
429 | public: | ||
430 | enum class tag { | ||
431 | Zero, | ||
432 | One, | ||
433 | SrcColor, | ||
434 | OneMinusSrcColor, | ||
435 | DstColor, | ||
436 | OneMinusDstColor, | ||
437 | SrcAlpha, | ||
438 | OneMinusSrcAlpha, | ||
439 | DstAlpha, | ||
440 | OneMinusDstAlpha, | ||
441 | ConstantColor, | ||
442 | OneMinusConstantColor, | ||
443 | ConstantAlpha, | ||
444 | OneMinusConstantAlpha, | ||
445 | SrcAlphaSaturate | ||
446 | } tag; | ||
447 | }; | ||
448 | namespace data { | ||
449 | } | ||
450 | class LogicOperation { | ||
451 | public: | ||
452 | enum class tag { | ||
453 | Clear, | ||
454 | And, | ||
455 | AndReverse, | ||
456 | Copy, | ||
457 | AndInverted, | ||
458 | Noop, | ||
459 | Xor, | ||
460 | Or, | ||
461 | Nor, | ||
462 | Equiv, | ||
463 | Invert, | ||
464 | OrReverse, | ||
465 | CopyInverted, | ||
466 | OrInverted, | ||
467 | Nand, | ||
468 | Set | ||
469 | } tag; | ||
470 | }; | ||
471 | namespace data { | ||
472 | class StencilOps { | ||
473 | public: | ||
474 | std::shared_ptr<::StencilOperation> frontStencilOp; | ||
475 | std::shared_ptr<::StencilOperation> backStencilOp; | ||
476 | }; | ||
477 | } | ||
478 | class StencilOps { | ||
479 | public: | ||
480 | enum class tag { | ||
481 | StencilOps | ||
482 | } tag; | ||
483 | std::shared_ptr<data::StencilOps> StencilOps; | ||
484 | }; | ||
485 | namespace data { | ||
486 | class StencilTest { | ||
487 | public: | ||
488 | std::shared_ptr<::ComparisonFunction> stencilComparision; | ||
489 | Int32 stencilReference; | ||
490 | Word32 stencilMask; | ||
491 | }; | ||
492 | } | ||
493 | class StencilTest { | ||
494 | public: | ||
495 | enum class tag { | ||
496 | StencilTest | ||
497 | } tag; | ||
498 | std::shared_ptr<data::StencilTest> StencilTest; | ||
499 | }; | ||
500 | namespace data { | ||
501 | class StencilTests { | ||
502 | public: | ||
503 | std::shared_ptr<::StencilTest> _0; | ||
504 | std::shared_ptr<::StencilTest> _1; | ||
505 | }; | ||
506 | } | ||
507 | class StencilTests { | ||
508 | public: | ||
509 | enum class tag { | ||
510 | StencilTests | ||
511 | } tag; | ||
512 | std::shared_ptr<data::StencilTests> StencilTests; | ||
513 | }; | ||
514 | namespace data { | ||
515 | } | ||
516 | class FetchPrimitive { | ||
517 | public: | ||
518 | enum class tag { | ||
519 | Points, | ||
520 | Lines, | ||
521 | Triangles, | ||
522 | LinesAdjacency, | ||
523 | TrianglesAdjacency | ||
524 | } tag; | ||
525 | }; | ||
526 | namespace data { | ||
527 | } | ||
528 | class OutputPrimitive { | ||
529 | public: | ||
530 | enum class tag { | ||
531 | TrianglesOutput, | ||
532 | LinesOutput, | ||
533 | PointsOutput | ||
534 | } tag; | ||
535 | }; | ||
536 | namespace data { | ||
537 | } | ||
538 | class ColorArity { | ||
539 | public: | ||
540 | enum class tag { | ||
541 | Red, | ||
542 | RG, | ||
543 | RGB, | ||
544 | RGBA | ||
545 | } tag; | ||
546 | }; | ||
547 | namespace data { | ||
548 | class BlendLogicOp { | ||
549 | public: | ||
550 | std::shared_ptr<::LogicOperation> _0; | ||
551 | }; | ||
552 | class Blend { | ||
553 | public: | ||
554 | std::shared_ptr<::BlendEquation> colorEqSrc; | ||
555 | std::shared_ptr<::BlendEquation> alphaEqSrc; | ||
556 | std::shared_ptr<::BlendingFactor> colorFSrc; | ||
557 | std::shared_ptr<::BlendingFactor> colorFDst; | ||
558 | std::shared_ptr<::BlendingFactor> alphaFSrc; | ||
559 | std::shared_ptr<::BlendingFactor> alphaFDst; | ||
560 | V4F color; | ||
561 | }; | ||
562 | } | ||
563 | class Blending { | ||
564 | public: | ||
565 | enum class tag { | ||
566 | NoBlending, | ||
567 | BlendLogicOp, | ||
568 | Blend | ||
569 | } tag; | ||
570 | std::shared_ptr<data::BlendLogicOp> BlendLogicOp; | ||
571 | std::shared_ptr<data::Blend> Blend; | ||
572 | }; | ||
573 | namespace data { | ||
574 | class PointCtx { | ||
575 | public: | ||
576 | std::shared_ptr<::PointSize> _0; | ||
577 | Float _1; | ||
578 | std::shared_ptr<::PointSpriteCoordOrigin> _2; | ||
579 | }; | ||
580 | class LineCtx { | ||
581 | public: | ||
582 | Float _0; | ||
583 | std::shared_ptr<::ProvokingVertex> _1; | ||
584 | }; | ||
585 | class TriangleCtx { | ||
586 | public: | ||
587 | std::shared_ptr<::CullMode> _0; | ||
588 | std::shared_ptr<::PolygonMode> _1; | ||
589 | std::shared_ptr<::PolygonOffset> _2; | ||
590 | std::shared_ptr<::ProvokingVertex> _3; | ||
591 | }; | ||
592 | } | ||
593 | class RasterContext { | ||
594 | public: | ||
595 | enum class tag { | ||
596 | PointCtx, | ||
597 | LineCtx, | ||
598 | TriangleCtx | ||
599 | } tag; | ||
600 | std::shared_ptr<data::PointCtx> PointCtx; | ||
601 | std::shared_ptr<data::LineCtx> LineCtx; | ||
602 | std::shared_ptr<data::TriangleCtx> TriangleCtx; | ||
603 | }; | ||
604 | namespace data { | ||
605 | class DepthOp { | ||
606 | public: | ||
607 | std::shared_ptr<::DepthFunction> _0; | ||
608 | Bool _1; | ||
609 | }; | ||
610 | class StencilOp { | ||
611 | public: | ||
612 | std::shared_ptr<::StencilTests> _0; | ||
613 | std::shared_ptr<::StencilOps> _1; | ||
614 | std::shared_ptr<::StencilOps> _2; | ||
615 | }; | ||
616 | class ColorOp { | ||
617 | public: | ||
618 | std::shared_ptr<::Blending> _0; | ||
619 | std::shared_ptr<::Value> _1; | ||
620 | }; | ||
621 | } | ||
622 | class FragmentOperation { | ||
623 | public: | ||
624 | enum class tag { | ||
625 | DepthOp, | ||
626 | StencilOp, | ||
627 | ColorOp | ||
628 | } tag; | ||
629 | std::shared_ptr<data::DepthOp> DepthOp; | ||
630 | std::shared_ptr<data::StencilOp> StencilOp; | ||
631 | std::shared_ptr<data::ColorOp> ColorOp; | ||
632 | }; | ||
633 | namespace data { | ||
634 | class AccumulationContext { | ||
635 | public: | ||
636 | Maybe<String> accViewportName; | ||
637 | std::vector<std::shared_ptr<::FragmentOperation>> accOperations; | ||
638 | }; | ||
639 | } | ||
640 | class AccumulationContext { | ||
641 | public: | ||
642 | enum class tag { | ||
643 | AccumulationContext | ||
644 | } tag; | ||
645 | std::shared_ptr<data::AccumulationContext> AccumulationContext; | ||
646 | }; | ||
647 | namespace data { | ||
648 | class FloatT { | ||
649 | public: | ||
650 | std::shared_ptr<::ColorArity> _0; | ||
651 | }; | ||
652 | class IntT { | ||
653 | public: | ||
654 | std::shared_ptr<::ColorArity> _0; | ||
655 | }; | ||
656 | class WordT { | ||
657 | public: | ||
658 | std::shared_ptr<::ColorArity> _0; | ||
659 | }; | ||
660 | } | ||
661 | class TextureDataType { | ||
662 | public: | ||
663 | enum class tag { | ||
664 | FloatT, | ||
665 | IntT, | ||
666 | WordT, | ||
667 | ShadowT | ||
668 | } tag; | ||
669 | std::shared_ptr<data::FloatT> FloatT; | ||
670 | std::shared_ptr<data::IntT> IntT; | ||
671 | std::shared_ptr<data::WordT> WordT; | ||
672 | }; | ||
673 | namespace data { | ||
674 | class Texture1D { | ||
675 | public: | ||
676 | std::shared_ptr<::TextureDataType> _0; | ||
677 | Int _1; | ||
678 | }; | ||
679 | class Texture2D { | ||
680 | public: | ||
681 | std::shared_ptr<::TextureDataType> _0; | ||
682 | Int _1; | ||
683 | }; | ||
684 | class Texture3D { | ||
685 | public: | ||
686 | std::shared_ptr<::TextureDataType> _0; | ||
687 | }; | ||
688 | class TextureCube { | ||
689 | public: | ||
690 | std::shared_ptr<::TextureDataType> _0; | ||
691 | }; | ||
692 | class TextureRect { | ||
693 | public: | ||
694 | std::shared_ptr<::TextureDataType> _0; | ||
695 | }; | ||
696 | class Texture2DMS { | ||
697 | public: | ||
698 | std::shared_ptr<::TextureDataType> _0; | ||
699 | Int _1; | ||
700 | Int _2; | ||
701 | Bool _3; | ||
702 | }; | ||
703 | class TextureBuffer { | ||
704 | public: | ||
705 | std::shared_ptr<::TextureDataType> _0; | ||
706 | }; | ||
707 | } | ||
708 | class TextureType { | ||
709 | public: | ||
710 | enum class tag { | ||
711 | Texture1D, | ||
712 | Texture2D, | ||
713 | Texture3D, | ||
714 | TextureCube, | ||
715 | TextureRect, | ||
716 | Texture2DMS, | ||
717 | TextureBuffer | ||
718 | } tag; | ||
719 | std::shared_ptr<data::Texture1D> Texture1D; | ||
720 | std::shared_ptr<data::Texture2D> Texture2D; | ||
721 | std::shared_ptr<data::Texture3D> Texture3D; | ||
722 | std::shared_ptr<data::TextureCube> TextureCube; | ||
723 | std::shared_ptr<data::TextureRect> TextureRect; | ||
724 | std::shared_ptr<data::Texture2DMS> Texture2DMS; | ||
725 | std::shared_ptr<data::TextureBuffer> TextureBuffer; | ||
726 | }; | ||
727 | namespace data { | ||
728 | class Mip { | ||
729 | public: | ||
730 | Int _0; | ||
731 | Int _1; | ||
732 | }; | ||
733 | class AutoMip { | ||
734 | public: | ||
735 | Int _0; | ||
736 | Int _1; | ||
737 | }; | ||
738 | } | ||
739 | class MipMap { | ||
740 | public: | ||
741 | enum class tag { | ||
742 | Mip, | ||
743 | NoMip, | ||
744 | AutoMip | ||
745 | } tag; | ||
746 | std::shared_ptr<data::Mip> Mip; | ||
747 | std::shared_ptr<data::AutoMip> AutoMip; | ||
748 | }; | ||
749 | namespace data { | ||
750 | } | ||
751 | class Filter { | ||
752 | public: | ||
753 | enum class tag { | ||
754 | Nearest, | ||
755 | Linear, | ||
756 | NearestMipmapNearest, | ||
757 | NearestMipmapLinear, | ||
758 | LinearMipmapNearest, | ||
759 | LinearMipmapLinear | ||
760 | } tag; | ||
761 | }; | ||
762 | namespace data { | ||
763 | } | ||
764 | class EdgeMode { | ||
765 | public: | ||
766 | enum class tag { | ||
767 | Repeat, | ||
768 | MirroredRepeat, | ||
769 | ClampToEdge, | ||
770 | ClampToBorder | ||
771 | } tag; | ||
772 | }; | ||
773 | namespace data { | ||
774 | } | ||
775 | class ImageSemantic { | ||
776 | public: | ||
777 | enum class tag { | ||
778 | Depth, | ||
779 | Stencil, | ||
780 | Color | ||
781 | } tag; | ||
782 | }; | ||
783 | namespace data { | ||
784 | class TextureImage { | ||
785 | public: | ||
786 | ::TextureName _0; | ||
787 | Int _1; | ||
788 | Maybe<Int> _2; | ||
789 | }; | ||
790 | class Framebuffer { | ||
791 | public: | ||
792 | std::shared_ptr<::ImageSemantic> _0; | ||
793 | }; | ||
794 | } | ||
795 | class ImageRef { | ||
796 | public: | ||
797 | enum class tag { | ||
798 | TextureImage, | ||
799 | Framebuffer | ||
800 | } tag; | ||
801 | std::shared_ptr<data::TextureImage> TextureImage; | ||
802 | std::shared_ptr<data::Framebuffer> Framebuffer; | ||
803 | }; | ||
804 | namespace data { | ||
805 | class ClearImage { | ||
806 | public: | ||
807 | std::shared_ptr<::ImageSemantic> imageSemantic; | ||
808 | std::shared_ptr<::Value> clearValue; | ||
809 | }; | ||
810 | } | ||
811 | class ClearImage { | ||
812 | public: | ||
813 | enum class tag { | ||
814 | ClearImage | ||
815 | } tag; | ||
816 | std::shared_ptr<data::ClearImage> ClearImage; | ||
817 | }; | ||
818 | namespace data { | ||
819 | class SetRasterContext { | ||
820 | public: | ||
821 | std::shared_ptr<::RasterContext> _0; | ||
822 | }; | ||
823 | class SetAccumulationContext { | ||
824 | public: | ||
825 | std::shared_ptr<::AccumulationContext> _0; | ||
826 | }; | ||
827 | class SetRenderTarget { | ||
828 | public: | ||
829 | ::RenderTargetName _0; | ||
830 | }; | ||
831 | class SetProgram { | ||
832 | public: | ||
833 | ::ProgramName _0; | ||
834 | }; | ||
835 | class SetSamplerUniform { | ||
836 | public: | ||
837 | ::UniformName _0; | ||
838 | ::TextureUnit _1; | ||
839 | }; | ||
840 | class SetTexture { | ||
841 | public: | ||
842 | ::TextureUnit _0; | ||
843 | ::TextureName _1; | ||
844 | }; | ||
845 | class SetSampler { | ||
846 | public: | ||
847 | ::TextureUnit _0; | ||
848 | Maybe<::SamplerName> _1; | ||
849 | }; | ||
850 | class RenderSlot { | ||
851 | public: | ||
852 | ::SlotName _0; | ||
853 | }; | ||
854 | class RenderStream { | ||
855 | public: | ||
856 | ::StreamName _0; | ||
857 | }; | ||
858 | class ClearRenderTarget { | ||
859 | public: | ||
860 | std::vector<std::shared_ptr<::ClearImage>> _0; | ||
861 | }; | ||
862 | class GenerateMipMap { | ||
863 | public: | ||
864 | ::TextureUnit _0; | ||
865 | }; | ||
866 | class SaveImage { | ||
867 | public: | ||
868 | ::FrameBufferComponent _0; | ||
869 | std::shared_ptr<::ImageRef> _1; | ||
870 | }; | ||
871 | class LoadImage { | ||
872 | public: | ||
873 | std::shared_ptr<::ImageRef> _0; | ||
874 | ::FrameBufferComponent _1; | ||
875 | }; | ||
876 | } | ||
877 | class Command { | ||
878 | public: | ||
879 | enum class tag { | ||
880 | SetRasterContext, | ||
881 | SetAccumulationContext, | ||
882 | SetRenderTarget, | ||
883 | SetProgram, | ||
884 | SetSamplerUniform, | ||
885 | SetTexture, | ||
886 | SetSampler, | ||
887 | RenderSlot, | ||
888 | RenderStream, | ||
889 | ClearRenderTarget, | ||
890 | GenerateMipMap, | ||
891 | SaveImage, | ||
892 | LoadImage | ||
893 | } tag; | ||
894 | std::shared_ptr<data::SetRasterContext> SetRasterContext; | ||
895 | std::shared_ptr<data::SetAccumulationContext> SetAccumulationContext; | ||
896 | std::shared_ptr<data::SetRenderTarget> SetRenderTarget; | ||
897 | std::shared_ptr<data::SetProgram> SetProgram; | ||
898 | std::shared_ptr<data::SetSamplerUniform> SetSamplerUniform; | ||
899 | std::shared_ptr<data::SetTexture> SetTexture; | ||
900 | std::shared_ptr<data::SetSampler> SetSampler; | ||
901 | std::shared_ptr<data::RenderSlot> RenderSlot; | ||
902 | std::shared_ptr<data::RenderStream> RenderStream; | ||
903 | std::shared_ptr<data::ClearRenderTarget> ClearRenderTarget; | ||
904 | std::shared_ptr<data::GenerateMipMap> GenerateMipMap; | ||
905 | std::shared_ptr<data::SaveImage> SaveImage; | ||
906 | std::shared_ptr<data::LoadImage> LoadImage; | ||
907 | }; | ||
908 | namespace data { | ||
909 | class SamplerDescriptor { | ||
910 | public: | ||
911 | std::shared_ptr<::EdgeMode> samplerWrapS; | ||
912 | Maybe<std::shared_ptr<::EdgeMode>> samplerWrapT; | ||
913 | Maybe<std::shared_ptr<::EdgeMode>> samplerWrapR; | ||
914 | std::shared_ptr<::Filter> samplerMinFilter; | ||
915 | std::shared_ptr<::Filter> samplerMagFilter; | ||
916 | std::shared_ptr<::Value> samplerBorderColor; | ||
917 | Maybe<Float> samplerMinLod; | ||
918 | Maybe<Float> samplerMaxLod; | ||
919 | Float samplerLodBias; | ||
920 | Maybe<std::shared_ptr<::ComparisonFunction>> samplerCompareFunc; | ||
921 | }; | ||
922 | } | ||
923 | class SamplerDescriptor { | ||
924 | public: | ||
925 | enum class tag { | ||
926 | SamplerDescriptor | ||
927 | } tag; | ||
928 | std::shared_ptr<data::SamplerDescriptor> SamplerDescriptor; | ||
929 | }; | ||
930 | namespace data { | ||
931 | class TextureDescriptor { | ||
932 | public: | ||
933 | std::shared_ptr<::TextureType> textureType; | ||
934 | std::shared_ptr<::Value> textureSize; | ||
935 | std::shared_ptr<::ImageSemantic> textureSemantic; | ||
936 | std::shared_ptr<::SamplerDescriptor> textureSampler; | ||
937 | Int textureBaseLevel; | ||
938 | Int textureMaxLevel; | ||
939 | }; | ||
940 | } | ||
941 | class TextureDescriptor { | ||
942 | public: | ||
943 | enum class tag { | ||
944 | TextureDescriptor | ||
945 | } tag; | ||
946 | std::shared_ptr<data::TextureDescriptor> TextureDescriptor; | ||
947 | }; | ||
948 | namespace data { | ||
949 | class Parameter { | ||
950 | public: | ||
951 | String name; | ||
952 | std::shared_ptr<::InputType> ty; | ||
953 | }; | ||
954 | } | ||
955 | class Parameter { | ||
956 | public: | ||
957 | enum class tag { | ||
958 | Parameter | ||
959 | } tag; | ||
960 | std::shared_ptr<data::Parameter> Parameter; | ||
961 | }; | ||
962 | namespace data { | ||
963 | class Program { | ||
964 | public: | ||
965 | std::map<::UniformName, std::shared_ptr<::InputType>> programUniforms; | ||
966 | std::map<::UniformName, std::shared_ptr<::Parameter>> programStreams; | ||
967 | std::map<::UniformName, std::shared_ptr<::InputType>> programInTextures; | ||
968 | std::vector<std::shared_ptr<::Parameter>> programOutput; | ||
969 | String vertexShader; | ||
970 | Maybe<String> geometryShader; | ||
971 | String fragmentShader; | ||
972 | }; | ||
973 | } | ||
974 | class Program { | ||
975 | public: | ||
976 | enum class tag { | ||
977 | Program | ||
978 | } tag; | ||
979 | std::shared_ptr<data::Program> Program; | ||
980 | }; | ||
981 | namespace data { | ||
982 | class Slot { | ||
983 | public: | ||
984 | String slotName; | ||
985 | std::map<String, std::shared_ptr<::InputType>> slotStreams; | ||
986 | std::map<::UniformName, std::shared_ptr<::InputType>> slotUniforms; | ||
987 | std::shared_ptr<::FetchPrimitive> slotPrimitive; | ||
988 | std::vector<::ProgramName> slotPrograms; | ||
989 | }; | ||
990 | } | ||
991 | class Slot { | ||
992 | public: | ||
993 | enum class tag { | ||
994 | Slot | ||
995 | } tag; | ||
996 | std::shared_ptr<data::Slot> Slot; | ||
997 | }; | ||
998 | namespace data { | ||
999 | class StreamData { | ||
1000 | public: | ||
1001 | std::map<String, std::shared_ptr<::ArrayValue>> streamData; | ||
1002 | std::map<String, std::shared_ptr<::InputType>> streamType; | ||
1003 | std::shared_ptr<::FetchPrimitive> streamPrimitive; | ||
1004 | std::vector<::ProgramName> streamPrograms; | ||
1005 | }; | ||
1006 | } | ||
1007 | class StreamData { | ||
1008 | public: | ||
1009 | enum class tag { | ||
1010 | StreamData | ||
1011 | } tag; | ||
1012 | std::shared_ptr<data::StreamData> StreamData; | ||
1013 | }; | ||
1014 | namespace data { | ||
1015 | class TargetItem { | ||
1016 | public: | ||
1017 | std::shared_ptr<::ImageSemantic> targetSemantic; | ||
1018 | Maybe<std::shared_ptr<::ImageRef>> targetRef; | ||
1019 | }; | ||
1020 | } | ||
1021 | class TargetItem { | ||
1022 | public: | ||
1023 | enum class tag { | ||
1024 | TargetItem | ||
1025 | } tag; | ||
1026 | std::shared_ptr<data::TargetItem> TargetItem; | ||
1027 | }; | ||
1028 | namespace data { | ||
1029 | class RenderTarget { | ||
1030 | public: | ||
1031 | std::vector<std::shared_ptr<::TargetItem>> renderTargets; | ||
1032 | }; | ||
1033 | } | ||
1034 | class RenderTarget { | ||
1035 | public: | ||
1036 | enum class tag { | ||
1037 | RenderTarget | ||
1038 | } tag; | ||
1039 | std::shared_ptr<data::RenderTarget> RenderTarget; | ||
1040 | }; | ||
1041 | namespace data { | ||
1042 | } | ||
1043 | class Backend { | ||
1044 | public: | ||
1045 | enum class tag { | ||
1046 | WebGL1, | ||
1047 | OpenGL33 | ||
1048 | } tag; | ||
1049 | }; | ||
1050 | namespace data { | ||
1051 | class Pipeline { | ||
1052 | public: | ||
1053 | String info; | ||
1054 | std::shared_ptr<::Backend> backend; | ||
1055 | std::vector<std::shared_ptr<::TextureDescriptor>> textures; | ||
1056 | std::vector<std::shared_ptr<::SamplerDescriptor>> samplers; | ||
1057 | std::vector<std::shared_ptr<::RenderTarget>> targets; | ||
1058 | std::vector<std::shared_ptr<::Program>> programs; | ||
1059 | std::vector<std::shared_ptr<::Slot>> slots; | ||
1060 | std::vector<std::shared_ptr<::StreamData>> streams; | ||
1061 | std::vector<std::shared_ptr<::Command>> commands; | ||
1062 | }; | ||
1063 | } | ||
1064 | class Pipeline { | ||
1065 | public: | ||
1066 | enum class tag { | ||
1067 | Pipeline | ||
1068 | } tag; | ||
1069 | std::shared_ptr<data::Pipeline> Pipeline; | ||
1070 | }; | ||
1071 | #endif | ||