summaryrefslogtreecommitdiff
path: root/ddl/out/cpp/LambdaCube.IR2.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'ddl/out/cpp/LambdaCube.IR2.hpp')
-rw-r--r--ddl/out/cpp/LambdaCube.IR2.hpp1071
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
10typedef Int StreamName;
11
12typedef Int ProgramName;
13
14typedef Int TextureName;
15
16typedef Int SamplerName;
17
18typedef String UniformName;
19
20typedef Int SlotName;
21
22typedef Int FrameBufferComponent;
23
24typedef Int TextureUnit;
25
26typedef Int RenderTargetName;
27
28typedef std::map<::UniformName, ::TextureUnit> TextureUnitMapping;
29
30namespace 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}
48class ArrayValue {
49public:
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};
61namespace 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}
163class Value {
164public:
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};
218namespace data {
219}
220class InputType {
221public:
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};
286namespace data {
287}
288class PointSpriteCoordOrigin {
289public:
290 enum class tag {
291 LowerLeft,
292 UpperLeft
293 } tag;
294};
295namespace data {
296 class PointSize {
297 public:
298 Float _0;
299 };
300}
301class PointSize {
302public:
303 enum class tag {
304 PointSize,
305 ProgramPointSize
306 } tag;
307 std::shared_ptr<data::PointSize> PointSize;
308};
309namespace data {
310 class Offset {
311 public:
312 Float _0;
313 Float _1;
314 };
315}
316class PolygonOffset {
317public:
318 enum class tag {
319 NoOffset,
320 Offset
321 } tag;
322 std::shared_ptr<data::Offset> Offset;
323};
324namespace data {
325}
326class FrontFace {
327public:
328 enum class tag {
329 CCW,
330 CW
331 } tag;
332};
333namespace data {
334 class PolygonPoint {
335 public:
336 std::shared_ptr<::PointSize> _0;
337 };
338 class PolygonLine {
339 public:
340 Float _0;
341 };
342}
343class PolygonMode {
344public:
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};
353namespace data {
354}
355class ProvokingVertex {
356public:
357 enum class tag {
358 FirstVertex,
359 LastVertex
360 } tag;
361};
362namespace 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}
372class CullMode {
373public:
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};
382namespace data {
383}
384class ComparisonFunction {
385public:
386 enum class tag {
387 Never,
388 Less,
389 Equal,
390 Lequal,
391 Greater,
392 Notequal,
393 Gequal,
394 Always
395 } tag;
396};
397typedef ComparisonFunction DepthFunction;
398
399namespace data {
400}
401class StencilOperation {
402public:
403 enum class tag {
404 OpZero,
405 OpKeep,
406 OpReplace,
407 OpIncr,
408 OpIncrWrap,
409 OpDecr,
410 OpDecrWrap,
411 OpInvert
412 } tag;
413};
414namespace data {
415}
416class BlendEquation {
417public:
418 enum class tag {
419 FuncAdd,
420 FuncSubtract,
421 FuncReverseSubtract,
422 Min,
423 Max
424 } tag;
425};
426namespace data {
427}
428class BlendingFactor {
429public:
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};
448namespace data {
449}
450class LogicOperation {
451public:
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};
471namespace data {
472 class StencilOps {
473 public:
474 std::shared_ptr<::StencilOperation> frontStencilOp;
475 std::shared_ptr<::StencilOperation> backStencilOp;
476 };
477}
478class StencilOps {
479public:
480 enum class tag {
481 StencilOps
482 } tag;
483 std::shared_ptr<data::StencilOps> StencilOps;
484};
485namespace data {
486 class StencilTest {
487 public:
488 std::shared_ptr<::ComparisonFunction> stencilComparision;
489 Int32 stencilReference;
490 Word32 stencilMask;
491 };
492}
493class StencilTest {
494public:
495 enum class tag {
496 StencilTest
497 } tag;
498 std::shared_ptr<data::StencilTest> StencilTest;
499};
500namespace data {
501 class StencilTests {
502 public:
503 std::shared_ptr<::StencilTest> _0;
504 std::shared_ptr<::StencilTest> _1;
505 };
506}
507class StencilTests {
508public:
509 enum class tag {
510 StencilTests
511 } tag;
512 std::shared_ptr<data::StencilTests> StencilTests;
513};
514namespace data {
515}
516class FetchPrimitive {
517public:
518 enum class tag {
519 Points,
520 Lines,
521 Triangles,
522 LinesAdjacency,
523 TrianglesAdjacency
524 } tag;
525};
526namespace data {
527}
528class OutputPrimitive {
529public:
530 enum class tag {
531 TrianglesOutput,
532 LinesOutput,
533 PointsOutput
534 } tag;
535};
536namespace data {
537}
538class ColorArity {
539public:
540 enum class tag {
541 Red,
542 RG,
543 RGB,
544 RGBA
545 } tag;
546};
547namespace 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}
563class Blending {
564public:
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};
573namespace 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}
593class RasterContext {
594public:
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};
604namespace 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}
622class FragmentOperation {
623public:
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};
633namespace data {
634 class AccumulationContext {
635 public:
636 Maybe<String> accViewportName;
637 std::vector<std::shared_ptr<::FragmentOperation>> accOperations;
638 };
639}
640class AccumulationContext {
641public:
642 enum class tag {
643 AccumulationContext
644 } tag;
645 std::shared_ptr<data::AccumulationContext> AccumulationContext;
646};
647namespace 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}
661class TextureDataType {
662public:
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};
673namespace 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}
708class TextureType {
709public:
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};
727namespace 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}
739class MipMap {
740public:
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};
749namespace data {
750}
751class Filter {
752public:
753 enum class tag {
754 Nearest,
755 Linear,
756 NearestMipmapNearest,
757 NearestMipmapLinear,
758 LinearMipmapNearest,
759 LinearMipmapLinear
760 } tag;
761};
762namespace data {
763}
764class EdgeMode {
765public:
766 enum class tag {
767 Repeat,
768 MirroredRepeat,
769 ClampToEdge,
770 ClampToBorder
771 } tag;
772};
773namespace data {
774}
775class ImageSemantic {
776public:
777 enum class tag {
778 Depth,
779 Stencil,
780 Color
781 } tag;
782};
783namespace 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}
795class ImageRef {
796public:
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};
804namespace data {
805 class ClearImage {
806 public:
807 std::shared_ptr<::ImageSemantic> imageSemantic;
808 std::shared_ptr<::Value> clearValue;
809 };
810}
811class ClearImage {
812public:
813 enum class tag {
814 ClearImage
815 } tag;
816 std::shared_ptr<data::ClearImage> ClearImage;
817};
818namespace 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}
877class Command {
878public:
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};
908namespace 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}
923class SamplerDescriptor {
924public:
925 enum class tag {
926 SamplerDescriptor
927 } tag;
928 std::shared_ptr<data::SamplerDescriptor> SamplerDescriptor;
929};
930namespace 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}
941class TextureDescriptor {
942public:
943 enum class tag {
944 TextureDescriptor
945 } tag;
946 std::shared_ptr<data::TextureDescriptor> TextureDescriptor;
947};
948namespace data {
949 class Parameter {
950 public:
951 String name;
952 std::shared_ptr<::InputType> ty;
953 };
954}
955class Parameter {
956public:
957 enum class tag {
958 Parameter
959 } tag;
960 std::shared_ptr<data::Parameter> Parameter;
961};
962namespace 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}
974class Program {
975public:
976 enum class tag {
977 Program
978 } tag;
979 std::shared_ptr<data::Program> Program;
980};
981namespace 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}
991class Slot {
992public:
993 enum class tag {
994 Slot
995 } tag;
996 std::shared_ptr<data::Slot> Slot;
997};
998namespace 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}
1007class StreamData {
1008public:
1009 enum class tag {
1010 StreamData
1011 } tag;
1012 std::shared_ptr<data::StreamData> StreamData;
1013};
1014namespace data {
1015 class TargetItem {
1016 public:
1017 std::shared_ptr<::ImageSemantic> targetSemantic;
1018 Maybe<std::shared_ptr<::ImageRef>> targetRef;
1019 };
1020}
1021class TargetItem {
1022public:
1023 enum class tag {
1024 TargetItem
1025 } tag;
1026 std::shared_ptr<data::TargetItem> TargetItem;
1027};
1028namespace data {
1029 class RenderTarget {
1030 public:
1031 std::vector<std::shared_ptr<::TargetItem>> renderTargets;
1032 };
1033}
1034class RenderTarget {
1035public:
1036 enum class tag {
1037 RenderTarget
1038 } tag;
1039 std::shared_ptr<data::RenderTarget> RenderTarget;
1040};
1041namespace data {
1042}
1043class Backend {
1044public:
1045 enum class tag {
1046 WebGL1,
1047 OpenGL33
1048 } tag;
1049};
1050namespace 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}
1064class Pipeline {
1065public:
1066 enum class tag {
1067 Pipeline
1068 } tag;
1069 std::shared_ptr<data::Pipeline> Pipeline;
1070};
1071#endif