summaryrefslogtreecommitdiff
path: root/ddl/out/LambdaCube.IR.swift
diff options
context:
space:
mode:
Diffstat (limited to 'ddl/out/LambdaCube.IR.swift')
-rw-r--r--ddl/out/LambdaCube.IR.swift1429
1 files changed, 1429 insertions, 0 deletions
diff --git a/ddl/out/LambdaCube.IR.swift b/ddl/out/LambdaCube.IR.swift
new file mode 100644
index 0000000..eb4b35f
--- /dev/null
+++ b/ddl/out/LambdaCube.IR.swift
@@ -0,0 +1,1429 @@
1// generated file, do not modify!
2// 2016-01-28T13:15:30.803775Z
3
4typealias StreamName = Int
5
6typealias ProgramName = Int
7
8typealias TextureName = Int
9
10typealias SamplerName = Int
11
12typealias UniformName = String
13
14typealias SlotName = Int
15
16typealias FrameBufferComponent = Int
17
18typealias TextureUnit = Int
19
20typealias RenderTargetName = Int
21
22typealias TextureUnitMapping = Dictionary<UniformName, TextureUnit>
23
24enum ArrayValue {
25 case VBoolArray(Array<Bool>)
26 case VIntArray(Array<Int32>)
27 case VWordArray(Array<UInt32>)
28 case VFloatArray(Array<Float>)
29}
30
31enum Value {
32 case VBool(Bool)
33 case VV2B(Int)
34 case VV3B(Int)
35 case VV4B(Int)
36 case VWord(UInt32)
37 case VV2U(Int)
38 case VV3U(Int)
39 case VV4U(Int)
40 case VInt(Int32)
41 case VV2I(Int)
42 case VV3I(Int)
43 case VV4I(Int)
44 case VFloat(Float)
45 case VV2F(Int)
46 case VV3F(Int)
47 case VV4F(Int)
48 case VM22F(Int)
49 case VM23F(Int)
50 case VM24F(Int)
51 case VM32F(Int)
52 case VM33F(Int)
53 case VM34F(Int)
54 case VM42F(Int)
55 case VM43F(Int)
56 case VM44F(Int)
57}
58
59enum InputType {
60 case Bool
61 case V2B
62 case V3B
63 case V4B
64 case Word
65 case V2U
66 case V3U
67 case V4U
68 case Int
69 case V2I
70 case V3I
71 case V4I
72 case Float
73 case V2F
74 case V3F
75 case V4F
76 case M22F
77 case M23F
78 case M24F
79 case M32F
80 case M33F
81 case M34F
82 case M42F
83 case M43F
84 case M44F
85 case STexture1D
86 case STexture2D
87 case STextureCube
88 case STexture1DArray
89 case STexture2DArray
90 case STexture2DRect
91 case FTexture1D
92 case FTexture2D
93 case FTexture3D
94 case FTextureCube
95 case FTexture1DArray
96 case FTexture2DArray
97 case FTexture2DMS
98 case FTexture2DMSArray
99 case FTextureBuffer
100 case FTexture2DRect
101 case ITexture1D
102 case ITexture2D
103 case ITexture3D
104 case ITextureCube
105 case ITexture1DArray
106 case ITexture2DArray
107 case ITexture2DMS
108 case ITexture2DMSArray
109 case ITextureBuffer
110 case ITexture2DRect
111 case UTexture1D
112 case UTexture2D
113 case UTexture3D
114 case UTextureCube
115 case UTexture1DArray
116 case UTexture2DArray
117 case UTexture2DMS
118 case UTexture2DMSArray
119 case UTextureBuffer
120 case UTexture2DRect
121}
122
123enum PointSpriteCoordOrigin {
124 case LowerLeft
125 case UpperLeft
126}
127
128enum PointSize {
129 case PointSize(Float)
130 case ProgramPointSize
131}
132
133enum PolygonOffset {
134 case NoOffset
135 case Offset(Float,Float)
136}
137
138enum FrontFace {
139 case CCW
140 case CW
141}
142
143enum PolygonMode {
144 case PolygonPoint(PointSize)
145 case PolygonLine(Float)
146 case PolygonFill
147}
148
149enum ProvokingVertex {
150 case FirstVertex
151 case LastVertex
152}
153
154enum CullMode {
155 case CullNone
156 case CullFront(FrontFace)
157 case CullBack(FrontFace)
158}
159
160enum ComparisonFunction {
161 case Never
162 case Less
163 case Equal
164 case Lequal
165 case Greater
166 case Notequal
167 case Gequal
168 case Always
169}
170
171typealias DepthFunction = ComparisonFunction
172
173enum StencilOperation {
174 case OpZero
175 case OpKeep
176 case OpReplace
177 case OpIncr
178 case OpIncrWrap
179 case OpDecr
180 case OpDecrWrap
181 case OpInvert
182}
183
184enum BlendEquation {
185 case FuncAdd
186 case FuncSubtract
187 case FuncReverseSubtract
188 case Min
189 case Max
190}
191
192enum BlendingFactor {
193 case Zero
194 case One
195 case SrcColor
196 case OneMinusSrcColor
197 case DstColor
198 case OneMinusDstColor
199 case SrcAlpha
200 case OneMinusSrcAlpha
201 case DstAlpha
202 case OneMinusDstAlpha
203 case ConstantColor
204 case OneMinusConstantColor
205 case ConstantAlpha
206 case OneMinusConstantAlpha
207 case SrcAlphaSaturate
208}
209
210enum LogicOperation {
211 case Clear
212 case And
213 case AndReverse
214 case Copy
215 case AndInverted
216 case Noop
217 case Xor
218 case Or
219 case Nor
220 case Equiv
221 case Invert
222 case OrReverse
223 case CopyInverted
224 case OrInverted
225 case Nand
226 case Set
227}
228
229enum StencilOps {
230 case StencilOps(StencilOps_Data)
231 struct StencilOps_Data {
232 var frontStencilOp : StencilOperation
233 var backStencilOp : StencilOperation
234 }
235}
236
237enum StencilTest {
238 case StencilTest(StencilTest_Data)
239 struct StencilTest_Data {
240 var stencilComparision : ComparisonFunction
241 var stencilReference : Int32
242 var stencilMask : UInt32
243 }
244}
245
246enum StencilTests {
247 case StencilTests(StencilTest,StencilTest)
248}
249
250enum FetchPrimitive {
251 case Points
252 case Lines
253 case Triangles
254 case LinesAdjacency
255 case TrianglesAdjacency
256}
257
258enum OutputPrimitive {
259 case TrianglesOutput
260 case LinesOutput
261 case PointsOutput
262}
263
264enum ColorArity {
265 case Red
266 case RG
267 case RGB
268 case RGBA
269}
270
271enum Blending {
272 case NoBlending
273 case BlendLogicOp(LogicOperation)
274 case Blend(Blend_Data)
275 struct Blend_Data {
276 var colorEqSrc : BlendEquation
277 var alphaEqSrc : BlendEquation
278 var colorFSrc : BlendingFactor
279 var colorFDst : BlendingFactor
280 var alphaFSrc : BlendingFactor
281 var alphaFDst : BlendingFactor
282 var color : Int
283 }
284}
285
286enum RasterContext {
287 case PointCtx(PointSize,Float,PointSpriteCoordOrigin)
288 case LineCtx(Float,ProvokingVertex)
289 case TriangleCtx(CullMode,PolygonMode,PolygonOffset,ProvokingVertex)
290}
291
292enum FragmentOperation {
293 case DepthOp(DepthFunction,Bool)
294 case StencilOp(StencilTests,StencilOps,StencilOps)
295 case ColorOp(Blending,Value)
296}
297
298enum AccumulationContext {
299 case AccumulationContext(AccumulationContext_Data)
300 struct AccumulationContext_Data {
301 var accViewportName : Maybe<String>
302 var accOperations : Array<FragmentOperation>
303 }
304}
305
306enum TextureDataType {
307 case FloatT(ColorArity)
308 case IntT(ColorArity)
309 case WordT(ColorArity)
310 case ShadowT
311}
312
313enum TextureType {
314 case Texture1D(TextureDataType,Int)
315 case Texture2D(TextureDataType,Int)
316 case Texture3D(TextureDataType)
317 case TextureCube(TextureDataType)
318 case TextureRect(TextureDataType)
319 case Texture2DMS(TextureDataType,Int,Int,Bool)
320 case TextureBuffer(TextureDataType)
321}
322
323enum MipMap {
324 case Mip(Int,Int)
325 case NoMip
326 case AutoMip(Int,Int)
327}
328
329enum Filter {
330 case Nearest
331 case Linear
332 case NearestMipmapNearest
333 case NearestMipmapLinear
334 case LinearMipmapNearest
335 case LinearMipmapLinear
336}
337
338enum EdgeMode {
339 case Repeat
340 case MirroredRepeat
341 case ClampToEdge
342 case ClampToBorder
343}
344
345enum ImageSemantic {
346 case Depth
347 case Stencil
348 case Color
349}
350
351enum ImageRef {
352 case TextureImage(TextureName,Int,Maybe<Int>)
353 case Framebuffer(ImageSemantic)
354}
355
356enum ClearImage {
357 case ClearImage(ClearImage_Data)
358 struct ClearImage_Data {
359 var imageSemantic : ImageSemantic
360 var clearValue : Value
361 }
362}
363
364enum Command {
365 case SetRasterContext(RasterContext)
366 case SetAccumulationContext(AccumulationContext)
367 case SetRenderTarget(RenderTargetName)
368 case SetProgram(ProgramName)
369 case SetSamplerUniform(UniformName,TextureUnit)
370 case SetTexture(TextureUnit,TextureName)
371 case SetSampler(TextureUnit,Maybe<SamplerName>)
372 case RenderSlot(SlotName)
373 case RenderStream(StreamName)
374 case ClearRenderTarget(Array<ClearImage>)
375 case GenerateMipMap(TextureUnit)
376 case SaveImage(FrameBufferComponent,ImageRef)
377 case LoadImage(ImageRef,FrameBufferComponent)
378}
379
380enum SamplerDescriptor {
381 case SamplerDescriptor(SamplerDescriptor_Data)
382 struct SamplerDescriptor_Data {
383 var samplerWrapS : EdgeMode
384 var samplerWrapT : Maybe<EdgeMode>
385 var samplerWrapR : Maybe<EdgeMode>
386 var samplerMinFilter : Filter
387 var samplerMagFilter : Filter
388 var samplerBorderColor : Value
389 var samplerMinLod : Maybe<Float>
390 var samplerMaxLod : Maybe<Float>
391 var samplerLodBias : Float
392 var samplerCompareFunc : Maybe<ComparisonFunction>
393 }
394}
395
396enum TextureDescriptor {
397 case TextureDescriptor(TextureDescriptor_Data)
398 struct TextureDescriptor_Data {
399 var textureType : TextureType
400 var textureSize : Value
401 var textureSemantic : ImageSemantic
402 var textureSampler : SamplerDescriptor
403 var textureBaseLevel : Int
404 var textureMaxLevel : Int
405 }
406}
407
408enum Parameter {
409 case Parameter(Parameter_Data)
410 struct Parameter_Data {
411 var name : String
412 var ty : InputType
413 }
414}
415
416enum Program {
417 case Program(Program_Data)
418 struct Program_Data {
419 var programUniforms : Dictionary<UniformName, InputType>
420 var programStreams : Dictionary<UniformName, Parameter>
421 var programInTextures : Dictionary<UniformName, InputType>
422 var programOutput : Array<Parameter>
423 var vertexShader : String
424 var geometryShader : Maybe<String>
425 var fragmentShader : String
426 }
427}
428
429enum Slot {
430 case Slot(Slot_Data)
431 struct Slot_Data {
432 var slotName : String
433 var slotStreams : Dictionary<String, InputType>
434 var slotUniforms : Dictionary<UniformName, InputType>
435 var slotPrimitive : FetchPrimitive
436 var slotPrograms : Array<ProgramName>
437 }
438}
439
440enum StreamData {
441 case StreamData(StreamData_Data)
442 struct StreamData_Data {
443 var streamData : Dictionary<String, ArrayValue>
444 var streamType : Dictionary<String, InputType>
445 var streamPrimitive : FetchPrimitive
446 var streamPrograms : Array<ProgramName>
447 }
448}
449
450enum TargetItem {
451 case TargetItem(TargetItem_Data)
452 struct TargetItem_Data {
453 var targetSemantic : ImageSemantic
454 var targetRef : Maybe<ImageRef>
455 }
456}
457
458enum RenderTarget {
459 case RenderTarget(RenderTarget_Data)
460 struct RenderTarget_Data {
461 var renderTargets : Array<TargetItem>
462 }
463}
464
465enum Backend {
466 case WebGL1
467 case OpenGL33
468}
469
470enum Pipeline {
471 case Pipeline(Pipeline_Data)
472 struct Pipeline_Data {
473 var backend : Backend
474 var textures : Array<TextureDescriptor>
475 var samplers : Array<SamplerDescriptor>
476 var targets : Array<RenderTarget>
477 var programs : Array<Program>
478 var slots : Array<Slot>
479 var streams : Array<StreamData>
480 var commands : Array<Command>
481 }
482}
483
484
485extension Int {
486 var toJSON : [String: AnyObject] {
487 return ["":""]
488 }
489}
490extension Int32 {
491 var toJSON : [String: AnyObject] {
492 return ["":""]
493 }
494}
495extension UInt {
496 var toJSON : [String: AnyObject] {
497 return ["":""]
498 }
499}
500extension UInt32 {
501 var toJSON : [String: AnyObject] {
502 return ["":""]
503 }
504}
505extension Float {
506 var toJSON : [String: AnyObject] {
507 return ["":""]
508 }
509}
510extension Bool {
511 var toJSON : [String: AnyObject] {
512 return ["":""]
513 }
514}
515extension String {
516 var toJSON : [String: AnyObject] {
517 return ["":""]
518 }
519}
520extension Array {
521 var toJSON : [String: AnyObject] {
522 return ["":""]
523 }
524}
525extension Dictionary {
526 var toJSON : [String: AnyObject] {
527 return ["":""]
528 }
529}
530extension Maybe {
531 var toJSON : [String: AnyObject] {
532 return ["":""]
533 }
534}
535
536
537
538extension ArrayValue {
539 var toJSON : [String: AnyObject] {
540 switch self {
541 case .VBoolArray(let arg0):
542 return [ "tag" : "VBoolArray", "arg0" : arg0.toJSON]
543 case .VIntArray(let arg0):
544 return [ "tag" : "VIntArray", "arg0" : arg0.toJSON]
545 case .VWordArray(let arg0):
546 return [ "tag" : "VWordArray", "arg0" : arg0.toJSON]
547 case .VFloatArray(let arg0):
548 return [ "tag" : "VFloatArray", "arg0" : arg0.toJSON]
549 }
550 }
551}
552extension Value {
553 var toJSON : [String: AnyObject] {
554 switch self {
555 case .VBool(let arg0):
556 return [ "tag" : "VBool", "arg0" : arg0.toJSON]
557 case .VV2B(let arg0):
558 return [ "tag" : "VV2B", "arg0" : arg0.toJSON]
559 case .VV3B(let arg0):
560 return [ "tag" : "VV3B", "arg0" : arg0.toJSON]
561 case .VV4B(let arg0):
562 return [ "tag" : "VV4B", "arg0" : arg0.toJSON]
563 case .VWord(let arg0):
564 return [ "tag" : "VWord", "arg0" : arg0.toJSON]
565 case .VV2U(let arg0):
566 return [ "tag" : "VV2U", "arg0" : arg0.toJSON]
567 case .VV3U(let arg0):
568 return [ "tag" : "VV3U", "arg0" : arg0.toJSON]
569 case .VV4U(let arg0):
570 return [ "tag" : "VV4U", "arg0" : arg0.toJSON]
571 case .VInt(let arg0):
572 return [ "tag" : "VInt", "arg0" : arg0.toJSON]
573 case .VV2I(let arg0):
574 return [ "tag" : "VV2I", "arg0" : arg0.toJSON]
575 case .VV3I(let arg0):
576 return [ "tag" : "VV3I", "arg0" : arg0.toJSON]
577 case .VV4I(let arg0):
578 return [ "tag" : "VV4I", "arg0" : arg0.toJSON]
579 case .VFloat(let arg0):
580 return [ "tag" : "VFloat", "arg0" : arg0.toJSON]
581 case .VV2F(let arg0):
582 return [ "tag" : "VV2F", "arg0" : arg0.toJSON]
583 case .VV3F(let arg0):
584 return [ "tag" : "VV3F", "arg0" : arg0.toJSON]
585 case .VV4F(let arg0):
586 return [ "tag" : "VV4F", "arg0" : arg0.toJSON]
587 case .VM22F(let arg0):
588 return [ "tag" : "VM22F", "arg0" : arg0.toJSON]
589 case .VM23F(let arg0):
590 return [ "tag" : "VM23F", "arg0" : arg0.toJSON]
591 case .VM24F(let arg0):
592 return [ "tag" : "VM24F", "arg0" : arg0.toJSON]
593 case .VM32F(let arg0):
594 return [ "tag" : "VM32F", "arg0" : arg0.toJSON]
595 case .VM33F(let arg0):
596 return [ "tag" : "VM33F", "arg0" : arg0.toJSON]
597 case .VM34F(let arg0):
598 return [ "tag" : "VM34F", "arg0" : arg0.toJSON]
599 case .VM42F(let arg0):
600 return [ "tag" : "VM42F", "arg0" : arg0.toJSON]
601 case .VM43F(let arg0):
602 return [ "tag" : "VM43F", "arg0" : arg0.toJSON]
603 case .VM44F(let arg0):
604 return [ "tag" : "VM44F", "arg0" : arg0.toJSON]
605 }
606 }
607}
608extension InputType {
609 var toJSON : [String: AnyObject] {
610 switch self {
611 case .Bool:
612 return [ "tag" : "Bool"]
613 case .V2B:
614 return [ "tag" : "V2B"]
615 case .V3B:
616 return [ "tag" : "V3B"]
617 case .V4B:
618 return [ "tag" : "V4B"]
619 case .Word:
620 return [ "tag" : "Word"]
621 case .V2U:
622 return [ "tag" : "V2U"]
623 case .V3U:
624 return [ "tag" : "V3U"]
625 case .V4U:
626 return [ "tag" : "V4U"]
627 case .Int:
628 return [ "tag" : "Int"]
629 case .V2I:
630 return [ "tag" : "V2I"]
631 case .V3I:
632 return [ "tag" : "V3I"]
633 case .V4I:
634 return [ "tag" : "V4I"]
635 case .Float:
636 return [ "tag" : "Float"]
637 case .V2F:
638 return [ "tag" : "V2F"]
639 case .V3F:
640 return [ "tag" : "V3F"]
641 case .V4F:
642 return [ "tag" : "V4F"]
643 case .M22F:
644 return [ "tag" : "M22F"]
645 case .M23F:
646 return [ "tag" : "M23F"]
647 case .M24F:
648 return [ "tag" : "M24F"]
649 case .M32F:
650 return [ "tag" : "M32F"]
651 case .M33F:
652 return [ "tag" : "M33F"]
653 case .M34F:
654 return [ "tag" : "M34F"]
655 case .M42F:
656 return [ "tag" : "M42F"]
657 case .M43F:
658 return [ "tag" : "M43F"]
659 case .M44F:
660 return [ "tag" : "M44F"]
661 case .STexture1D:
662 return [ "tag" : "STexture1D"]
663 case .STexture2D:
664 return [ "tag" : "STexture2D"]
665 case .STextureCube:
666 return [ "tag" : "STextureCube"]
667 case .STexture1DArray:
668 return [ "tag" : "STexture1DArray"]
669 case .STexture2DArray:
670 return [ "tag" : "STexture2DArray"]
671 case .STexture2DRect:
672 return [ "tag" : "STexture2DRect"]
673 case .FTexture1D:
674 return [ "tag" : "FTexture1D"]
675 case .FTexture2D:
676 return [ "tag" : "FTexture2D"]
677 case .FTexture3D:
678 return [ "tag" : "FTexture3D"]
679 case .FTextureCube:
680 return [ "tag" : "FTextureCube"]
681 case .FTexture1DArray:
682 return [ "tag" : "FTexture1DArray"]
683 case .FTexture2DArray:
684 return [ "tag" : "FTexture2DArray"]
685 case .FTexture2DMS:
686 return [ "tag" : "FTexture2DMS"]
687 case .FTexture2DMSArray:
688 return [ "tag" : "FTexture2DMSArray"]
689 case .FTextureBuffer:
690 return [ "tag" : "FTextureBuffer"]
691 case .FTexture2DRect:
692 return [ "tag" : "FTexture2DRect"]
693 case .ITexture1D:
694 return [ "tag" : "ITexture1D"]
695 case .ITexture2D:
696 return [ "tag" : "ITexture2D"]
697 case .ITexture3D:
698 return [ "tag" : "ITexture3D"]
699 case .ITextureCube:
700 return [ "tag" : "ITextureCube"]
701 case .ITexture1DArray:
702 return [ "tag" : "ITexture1DArray"]
703 case .ITexture2DArray:
704 return [ "tag" : "ITexture2DArray"]
705 case .ITexture2DMS:
706 return [ "tag" : "ITexture2DMS"]
707 case .ITexture2DMSArray:
708 return [ "tag" : "ITexture2DMSArray"]
709 case .ITextureBuffer:
710 return [ "tag" : "ITextureBuffer"]
711 case .ITexture2DRect:
712 return [ "tag" : "ITexture2DRect"]
713 case .UTexture1D:
714 return [ "tag" : "UTexture1D"]
715 case .UTexture2D:
716 return [ "tag" : "UTexture2D"]
717 case .UTexture3D:
718 return [ "tag" : "UTexture3D"]
719 case .UTextureCube:
720 return [ "tag" : "UTextureCube"]
721 case .UTexture1DArray:
722 return [ "tag" : "UTexture1DArray"]
723 case .UTexture2DArray:
724 return [ "tag" : "UTexture2DArray"]
725 case .UTexture2DMS:
726 return [ "tag" : "UTexture2DMS"]
727 case .UTexture2DMSArray:
728 return [ "tag" : "UTexture2DMSArray"]
729 case .UTextureBuffer:
730 return [ "tag" : "UTextureBuffer"]
731 case .UTexture2DRect:
732 return [ "tag" : "UTexture2DRect"]
733 }
734 }
735}
736extension PointSpriteCoordOrigin {
737 var toJSON : [String: AnyObject] {
738 switch self {
739 case .LowerLeft:
740 return [ "tag" : "LowerLeft"]
741 case .UpperLeft:
742 return [ "tag" : "UpperLeft"]
743 }
744 }
745}
746extension PointSize {
747 var toJSON : [String: AnyObject] {
748 switch self {
749 case .PointSize(let arg0):
750 return [ "tag" : "PointSize", "arg0" : arg0.toJSON]
751 case .ProgramPointSize:
752 return [ "tag" : "ProgramPointSize"]
753 }
754 }
755}
756extension PolygonOffset {
757 var toJSON : [String: AnyObject] {
758 switch self {
759 case .NoOffset:
760 return [ "tag" : "NoOffset"]
761 case .Offset(let arg0, let arg1):
762 return [ "tag" : "Offset", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
763 }
764 }
765}
766extension FrontFace {
767 var toJSON : [String: AnyObject] {
768 switch self {
769 case .CCW:
770 return [ "tag" : "CCW"]
771 case .CW:
772 return [ "tag" : "CW"]
773 }
774 }
775}
776extension PolygonMode {
777 var toJSON : [String: AnyObject] {
778 switch self {
779 case .PolygonPoint(let arg0):
780 return [ "tag" : "PolygonPoint", "arg0" : arg0.toJSON]
781 case .PolygonLine(let arg0):
782 return [ "tag" : "PolygonLine", "arg0" : arg0.toJSON]
783 case .PolygonFill:
784 return [ "tag" : "PolygonFill"]
785 }
786 }
787}
788extension ProvokingVertex {
789 var toJSON : [String: AnyObject] {
790 switch self {
791 case .FirstVertex:
792 return [ "tag" : "FirstVertex"]
793 case .LastVertex:
794 return [ "tag" : "LastVertex"]
795 }
796 }
797}
798extension CullMode {
799 var toJSON : [String: AnyObject] {
800 switch self {
801 case .CullNone:
802 return [ "tag" : "CullNone"]
803 case .CullFront(let arg0):
804 return [ "tag" : "CullFront", "arg0" : arg0.toJSON]
805 case .CullBack(let arg0):
806 return [ "tag" : "CullBack", "arg0" : arg0.toJSON]
807 }
808 }
809}
810extension ComparisonFunction {
811 var toJSON : [String: AnyObject] {
812 switch self {
813 case .Never:
814 return [ "tag" : "Never"]
815 case .Less:
816 return [ "tag" : "Less"]
817 case .Equal:
818 return [ "tag" : "Equal"]
819 case .Lequal:
820 return [ "tag" : "Lequal"]
821 case .Greater:
822 return [ "tag" : "Greater"]
823 case .Notequal:
824 return [ "tag" : "Notequal"]
825 case .Gequal:
826 return [ "tag" : "Gequal"]
827 case .Always:
828 return [ "tag" : "Always"]
829 }
830 }
831}
832extension StencilOperation {
833 var toJSON : [String: AnyObject] {
834 switch self {
835 case .OpZero:
836 return [ "tag" : "OpZero"]
837 case .OpKeep:
838 return [ "tag" : "OpKeep"]
839 case .OpReplace:
840 return [ "tag" : "OpReplace"]
841 case .OpIncr:
842 return [ "tag" : "OpIncr"]
843 case .OpIncrWrap:
844 return [ "tag" : "OpIncrWrap"]
845 case .OpDecr:
846 return [ "tag" : "OpDecr"]
847 case .OpDecrWrap:
848 return [ "tag" : "OpDecrWrap"]
849 case .OpInvert:
850 return [ "tag" : "OpInvert"]
851 }
852 }
853}
854extension BlendEquation {
855 var toJSON : [String: AnyObject] {
856 switch self {
857 case .FuncAdd:
858 return [ "tag" : "FuncAdd"]
859 case .FuncSubtract:
860 return [ "tag" : "FuncSubtract"]
861 case .FuncReverseSubtract:
862 return [ "tag" : "FuncReverseSubtract"]
863 case .Min:
864 return [ "tag" : "Min"]
865 case .Max:
866 return [ "tag" : "Max"]
867 }
868 }
869}
870extension BlendingFactor {
871 var toJSON : [String: AnyObject] {
872 switch self {
873 case .Zero:
874 return [ "tag" : "Zero"]
875 case .One:
876 return [ "tag" : "One"]
877 case .SrcColor:
878 return [ "tag" : "SrcColor"]
879 case .OneMinusSrcColor:
880 return [ "tag" : "OneMinusSrcColor"]
881 case .DstColor:
882 return [ "tag" : "DstColor"]
883 case .OneMinusDstColor:
884 return [ "tag" : "OneMinusDstColor"]
885 case .SrcAlpha:
886 return [ "tag" : "SrcAlpha"]
887 case .OneMinusSrcAlpha:
888 return [ "tag" : "OneMinusSrcAlpha"]
889 case .DstAlpha:
890 return [ "tag" : "DstAlpha"]
891 case .OneMinusDstAlpha:
892 return [ "tag" : "OneMinusDstAlpha"]
893 case .ConstantColor:
894 return [ "tag" : "ConstantColor"]
895 case .OneMinusConstantColor:
896 return [ "tag" : "OneMinusConstantColor"]
897 case .ConstantAlpha:
898 return [ "tag" : "ConstantAlpha"]
899 case .OneMinusConstantAlpha:
900 return [ "tag" : "OneMinusConstantAlpha"]
901 case .SrcAlphaSaturate:
902 return [ "tag" : "SrcAlphaSaturate"]
903 }
904 }
905}
906extension LogicOperation {
907 var toJSON : [String: AnyObject] {
908 switch self {
909 case .Clear:
910 return [ "tag" : "Clear"]
911 case .And:
912 return [ "tag" : "And"]
913 case .AndReverse:
914 return [ "tag" : "AndReverse"]
915 case .Copy:
916 return [ "tag" : "Copy"]
917 case .AndInverted:
918 return [ "tag" : "AndInverted"]
919 case .Noop:
920 return [ "tag" : "Noop"]
921 case .Xor:
922 return [ "tag" : "Xor"]
923 case .Or:
924 return [ "tag" : "Or"]
925 case .Nor:
926 return [ "tag" : "Nor"]
927 case .Equiv:
928 return [ "tag" : "Equiv"]
929 case .Invert:
930 return [ "tag" : "Invert"]
931 case .OrReverse:
932 return [ "tag" : "OrReverse"]
933 case .CopyInverted:
934 return [ "tag" : "CopyInverted"]
935 case .OrInverted:
936 return [ "tag" : "OrInverted"]
937 case .Nand:
938 return [ "tag" : "Nand"]
939 case .Set:
940 return [ "tag" : "Set"]
941 }
942 }
943}
944extension StencilOps {
945 var toJSON : [String: AnyObject] {
946 switch self {
947 case .StencilOps(let v):
948 return [ "tag" : "StencilOps"
949 , "frontStencilOp" : v.frontStencilOp.toJSON
950 , "backStencilOp" : v.backStencilOp.toJSON
951 ]
952 }
953 }
954}
955extension StencilTest {
956 var toJSON : [String: AnyObject] {
957 switch self {
958 case .StencilTest(let v):
959 return [ "tag" : "StencilTest"
960 , "stencilComparision" : v.stencilComparision.toJSON
961 , "stencilReference" : v.stencilReference.toJSON
962 , "stencilMask" : v.stencilMask.toJSON
963 ]
964 }
965 }
966}
967extension StencilTests {
968 var toJSON : [String: AnyObject] {
969 switch self {
970 case .StencilTests(let arg0, let arg1):
971 return [ "tag" : "StencilTests", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
972 }
973 }
974}
975extension FetchPrimitive {
976 var toJSON : [String: AnyObject] {
977 switch self {
978 case .Points:
979 return [ "tag" : "Points"]
980 case .Lines:
981 return [ "tag" : "Lines"]
982 case .Triangles:
983 return [ "tag" : "Triangles"]
984 case .LinesAdjacency:
985 return [ "tag" : "LinesAdjacency"]
986 case .TrianglesAdjacency:
987 return [ "tag" : "TrianglesAdjacency"]
988 }
989 }
990}
991extension OutputPrimitive {
992 var toJSON : [String: AnyObject] {
993 switch self {
994 case .TrianglesOutput:
995 return [ "tag" : "TrianglesOutput"]
996 case .LinesOutput:
997 return [ "tag" : "LinesOutput"]
998 case .PointsOutput:
999 return [ "tag" : "PointsOutput"]
1000 }
1001 }
1002}
1003extension ColorArity {
1004 var toJSON : [String: AnyObject] {
1005 switch self {
1006 case .Red:
1007 return [ "tag" : "Red"]
1008 case .RG:
1009 return [ "tag" : "RG"]
1010 case .RGB:
1011 return [ "tag" : "RGB"]
1012 case .RGBA:
1013 return [ "tag" : "RGBA"]
1014 }
1015 }
1016}
1017extension Blending {
1018 var toJSON : [String: AnyObject] {
1019 switch self {
1020 case .NoBlending:
1021 return [ "tag" : "NoBlending"]
1022 case .BlendLogicOp(let arg0):
1023 return [ "tag" : "BlendLogicOp", "arg0" : arg0.toJSON]
1024 case .Blend(let v):
1025 return [ "tag" : "Blend"
1026 , "colorEqSrc" : v.colorEqSrc.toJSON
1027 , "alphaEqSrc" : v.alphaEqSrc.toJSON
1028 , "colorFSrc" : v.colorFSrc.toJSON
1029 , "colorFDst" : v.colorFDst.toJSON
1030 , "alphaFSrc" : v.alphaFSrc.toJSON
1031 , "alphaFDst" : v.alphaFDst.toJSON
1032 , "color" : v.color.toJSON
1033 ]
1034 }
1035 }
1036}
1037extension RasterContext {
1038 var toJSON : [String: AnyObject] {
1039 switch self {
1040 case .PointCtx(let arg0, let arg1, let arg2):
1041 return [ "tag" : "PointCtx", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON, "arg2" : arg2.toJSON]
1042 case .LineCtx(let arg0, let arg1):
1043 return [ "tag" : "LineCtx", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1044 case .TriangleCtx(let arg0, let arg1, let arg2, let arg3):
1045 return [ "tag" : "TriangleCtx", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON, "arg2" : arg2.toJSON, "arg3" : arg3.toJSON]
1046 }
1047 }
1048}
1049extension FragmentOperation {
1050 var toJSON : [String: AnyObject] {
1051 switch self {
1052 case .DepthOp(let arg0, let arg1):
1053 return [ "tag" : "DepthOp", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1054 case .StencilOp(let arg0, let arg1, let arg2):
1055 return [ "tag" : "StencilOp", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON, "arg2" : arg2.toJSON]
1056 case .ColorOp(let arg0, let arg1):
1057 return [ "tag" : "ColorOp", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1058 }
1059 }
1060}
1061extension AccumulationContext {
1062 var toJSON : [String: AnyObject] {
1063 switch self {
1064 case .AccumulationContext(let v):
1065 return [ "tag" : "AccumulationContext"
1066 , "accViewportName" : v.accViewportName.toJSON
1067 , "accOperations" : v.accOperations.toJSON
1068 ]
1069 }
1070 }
1071}
1072extension TextureDataType {
1073 var toJSON : [String: AnyObject] {
1074 switch self {
1075 case .FloatT(let arg0):
1076 return [ "tag" : "FloatT", "arg0" : arg0.toJSON]
1077 case .IntT(let arg0):
1078 return [ "tag" : "IntT", "arg0" : arg0.toJSON]
1079 case .WordT(let arg0):
1080 return [ "tag" : "WordT", "arg0" : arg0.toJSON]
1081 case .ShadowT:
1082 return [ "tag" : "ShadowT"]
1083 }
1084 }
1085}
1086extension TextureType {
1087 var toJSON : [String: AnyObject] {
1088 switch self {
1089 case .Texture1D(let arg0, let arg1):
1090 return [ "tag" : "Texture1D", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1091 case .Texture2D(let arg0, let arg1):
1092 return [ "tag" : "Texture2D", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1093 case .Texture3D(let arg0):
1094 return [ "tag" : "Texture3D", "arg0" : arg0.toJSON]
1095 case .TextureCube(let arg0):
1096 return [ "tag" : "TextureCube", "arg0" : arg0.toJSON]
1097 case .TextureRect(let arg0):
1098 return [ "tag" : "TextureRect", "arg0" : arg0.toJSON]
1099 case .Texture2DMS(let arg0, let arg1, let arg2, let arg3):
1100 return [ "tag" : "Texture2DMS", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON, "arg2" : arg2.toJSON, "arg3" : arg3.toJSON]
1101 case .TextureBuffer(let arg0):
1102 return [ "tag" : "TextureBuffer", "arg0" : arg0.toJSON]
1103 }
1104 }
1105}
1106extension MipMap {
1107 var toJSON : [String: AnyObject] {
1108 switch self {
1109 case .Mip(let arg0, let arg1):
1110 return [ "tag" : "Mip", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1111 case .NoMip:
1112 return [ "tag" : "NoMip"]
1113 case .AutoMip(let arg0, let arg1):
1114 return [ "tag" : "AutoMip", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1115 }
1116 }
1117}
1118extension Filter {
1119 var toJSON : [String: AnyObject] {
1120 switch self {
1121 case .Nearest:
1122 return [ "tag" : "Nearest"]
1123 case .Linear:
1124 return [ "tag" : "Linear"]
1125 case .NearestMipmapNearest:
1126 return [ "tag" : "NearestMipmapNearest"]
1127 case .NearestMipmapLinear:
1128 return [ "tag" : "NearestMipmapLinear"]
1129 case .LinearMipmapNearest:
1130 return [ "tag" : "LinearMipmapNearest"]
1131 case .LinearMipmapLinear:
1132 return [ "tag" : "LinearMipmapLinear"]
1133 }
1134 }
1135}
1136extension EdgeMode {
1137 var toJSON : [String: AnyObject] {
1138 switch self {
1139 case .Repeat:
1140 return [ "tag" : "Repeat"]
1141 case .MirroredRepeat:
1142 return [ "tag" : "MirroredRepeat"]
1143 case .ClampToEdge:
1144 return [ "tag" : "ClampToEdge"]
1145 case .ClampToBorder:
1146 return [ "tag" : "ClampToBorder"]
1147 }
1148 }
1149}
1150extension ImageSemantic {
1151 var toJSON : [String: AnyObject] {
1152 switch self {
1153 case .Depth:
1154 return [ "tag" : "Depth"]
1155 case .Stencil:
1156 return [ "tag" : "Stencil"]
1157 case .Color:
1158 return [ "tag" : "Color"]
1159 }
1160 }
1161}
1162extension ImageRef {
1163 var toJSON : [String: AnyObject] {
1164 switch self {
1165 case .TextureImage(let arg0, let arg1, let arg2):
1166 return [ "tag" : "TextureImage", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON, "arg2" : arg2.toJSON]
1167 case .Framebuffer(let arg0):
1168 return [ "tag" : "Framebuffer", "arg0" : arg0.toJSON]
1169 }
1170 }
1171}
1172extension ClearImage {
1173 var toJSON : [String: AnyObject] {
1174 switch self {
1175 case .ClearImage(let v):
1176 return [ "tag" : "ClearImage"
1177 , "imageSemantic" : v.imageSemantic.toJSON
1178 , "clearValue" : v.clearValue.toJSON
1179 ]
1180 }
1181 }
1182}
1183extension Command {
1184 var toJSON : [String: AnyObject] {
1185 switch self {
1186 case .SetRasterContext(let arg0):
1187 return [ "tag" : "SetRasterContext", "arg0" : arg0.toJSON]
1188 case .SetAccumulationContext(let arg0):
1189 return [ "tag" : "SetAccumulationContext", "arg0" : arg0.toJSON]
1190 case .SetRenderTarget(let arg0):
1191 return [ "tag" : "SetRenderTarget", "arg0" : arg0.toJSON]
1192 case .SetProgram(let arg0):
1193 return [ "tag" : "SetProgram", "arg0" : arg0.toJSON]
1194 case .SetSamplerUniform(let arg0, let arg1):
1195 return [ "tag" : "SetSamplerUniform", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1196 case .SetTexture(let arg0, let arg1):
1197 return [ "tag" : "SetTexture", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1198 case .SetSampler(let arg0, let arg1):
1199 return [ "tag" : "SetSampler", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1200 case .RenderSlot(let arg0):
1201 return [ "tag" : "RenderSlot", "arg0" : arg0.toJSON]
1202 case .RenderStream(let arg0):
1203 return [ "tag" : "RenderStream", "arg0" : arg0.toJSON]
1204 case .ClearRenderTarget(let arg0):
1205 return [ "tag" : "ClearRenderTarget", "arg0" : arg0.toJSON]
1206 case .GenerateMipMap(let arg0):
1207 return [ "tag" : "GenerateMipMap", "arg0" : arg0.toJSON]
1208 case .SaveImage(let arg0, let arg1):
1209 return [ "tag" : "SaveImage", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1210 case .LoadImage(let arg0, let arg1):
1211 return [ "tag" : "LoadImage", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1212 }
1213 }
1214}
1215extension SamplerDescriptor {
1216 var toJSON : [String: AnyObject] {
1217 switch self {
1218 case .SamplerDescriptor(let v):
1219 return [ "tag" : "SamplerDescriptor"
1220 , "samplerWrapS" : v.samplerWrapS.toJSON
1221 , "samplerWrapT" : v.samplerWrapT.toJSON
1222 , "samplerWrapR" : v.samplerWrapR.toJSON
1223 , "samplerMinFilter" : v.samplerMinFilter.toJSON
1224 , "samplerMagFilter" : v.samplerMagFilter.toJSON
1225 , "samplerBorderColor" : v.samplerBorderColor.toJSON
1226 , "samplerMinLod" : v.samplerMinLod.toJSON
1227 , "samplerMaxLod" : v.samplerMaxLod.toJSON
1228 , "samplerLodBias" : v.samplerLodBias.toJSON
1229 , "samplerCompareFunc" : v.samplerCompareFunc.toJSON
1230 ]
1231 }
1232 }
1233}
1234extension TextureDescriptor {
1235 var toJSON : [String: AnyObject] {
1236 switch self {
1237 case .TextureDescriptor(let v):
1238 return [ "tag" : "TextureDescriptor"
1239 , "textureType" : v.textureType.toJSON
1240 , "textureSize" : v.textureSize.toJSON
1241 , "textureSemantic" : v.textureSemantic.toJSON
1242 , "textureSampler" : v.textureSampler.toJSON
1243 , "textureBaseLevel" : v.textureBaseLevel.toJSON
1244 , "textureMaxLevel" : v.textureMaxLevel.toJSON
1245 ]
1246 }
1247 }
1248}
1249extension Parameter {
1250 var toJSON : [String: AnyObject] {
1251 switch self {
1252 case .Parameter(let v):
1253 return [ "tag" : "Parameter"
1254 , "name" : v.name.toJSON
1255 , "ty" : v.ty.toJSON
1256 ]
1257 }
1258 }
1259}
1260extension Program {
1261 var toJSON : [String: AnyObject] {
1262 switch self {
1263 case .Program(let v):
1264 return [ "tag" : "Program"
1265 , "programUniforms" : v.programUniforms.toJSON
1266 , "programStreams" : v.programStreams.toJSON
1267 , "programInTextures" : v.programInTextures.toJSON
1268 , "programOutput" : v.programOutput.toJSON
1269 , "vertexShader" : v.vertexShader.toJSON
1270 , "geometryShader" : v.geometryShader.toJSON
1271 , "fragmentShader" : v.fragmentShader.toJSON
1272 ]
1273 }
1274 }
1275}
1276extension Slot {
1277 var toJSON : [String: AnyObject] {
1278 switch self {
1279 case .Slot(let v):
1280 return [ "tag" : "Slot"
1281 , "slotName" : v.slotName.toJSON
1282 , "slotStreams" : v.slotStreams.toJSON
1283 , "slotUniforms" : v.slotUniforms.toJSON
1284 , "slotPrimitive" : v.slotPrimitive.toJSON
1285 , "slotPrograms" : v.slotPrograms.toJSON
1286 ]
1287 }
1288 }
1289}
1290extension StreamData {
1291 var toJSON : [String: AnyObject] {
1292 switch self {
1293 case .StreamData(let v):
1294 return [ "tag" : "StreamData"
1295 , "streamData" : v.streamData.toJSON
1296 , "streamType" : v.streamType.toJSON
1297 , "streamPrimitive" : v.streamPrimitive.toJSON
1298 , "streamPrograms" : v.streamPrograms.toJSON
1299 ]
1300 }
1301 }
1302}
1303extension TargetItem {
1304 var toJSON : [String: AnyObject] {
1305 switch self {
1306 case .TargetItem(let v):
1307 return [ "tag" : "TargetItem"
1308 , "targetSemantic" : v.targetSemantic.toJSON
1309 , "targetRef" : v.targetRef.toJSON
1310 ]
1311 }
1312 }
1313}
1314extension RenderTarget {
1315 var toJSON : [String: AnyObject] {
1316 switch self {
1317 case .RenderTarget(let v):
1318 return [ "tag" : "RenderTarget"
1319 , "renderTargets" : v.renderTargets.toJSON
1320 ]
1321 }
1322 }
1323}
1324extension Backend {
1325 var toJSON : [String: AnyObject] {
1326 switch self {
1327 case .WebGL1:
1328 return [ "tag" : "WebGL1"]
1329 case .OpenGL33:
1330 return [ "tag" : "OpenGL33"]
1331 }
1332 }
1333}
1334extension Pipeline {
1335 var toJSON : [String: AnyObject] {
1336 switch self {
1337 case .Pipeline(let v):
1338 return [ "tag" : "Pipeline"
1339 , "backend" : v.backend.toJSON
1340 , "textures" : v.textures.toJSON
1341 , "samplers" : v.samplers.toJSON
1342 , "targets" : v.targets.toJSON
1343 , "programs" : v.programs.toJSON
1344 , "slots" : v.slots.toJSON
1345 , "streams" : v.streams.toJSON
1346 , "commands" : v.commands.toJSON
1347 ]
1348 }
1349 }
1350}
1351
1352enum Maybe<T> {
1353 case Nothing
1354 case Just(T)
1355}
1356
1357enum Type {
1358 case Int
1359 case Int32
1360 case Word
1361 case Word32
1362 case Float
1363 case Bool
1364 case String
1365 case Array(Type)
1366 case List(Type)
1367 case Maybe(Type)
1368 case Map(Type,Type)
1369 case ArrayValue
1370 case Value
1371 case InputType
1372 case PointSpriteCoordOrigin
1373 case PointSize
1374 case PolygonOffset
1375 case FrontFace
1376 case PolygonMode
1377 case ProvokingVertex
1378 case CullMode
1379 case ComparisonFunction
1380 case StencilOperation
1381 case BlendEquation
1382 case BlendingFactor
1383 case LogicOperation
1384 case StencilOps
1385 case StencilTest
1386 case StencilTests
1387 case FetchPrimitive
1388 case OutputPrimitive
1389 case ColorArity
1390 case Blending
1391 case RasterContext
1392 case FragmentOperation
1393 case AccumulationContext
1394 case TextureDataType
1395 case TextureType
1396 case MipMap
1397 case Filter
1398 case EdgeMode
1399 case ImageSemantic
1400 case ImageRef
1401 case ClearImage
1402 case Command
1403 case SamplerDescriptor
1404 case TextureDescriptor
1405 case Parameter
1406 case Program
1407 case Slot
1408 case StreamData
1409 case TargetItem
1410 case RenderTarget
1411 case Backend
1412 case Pipeline
1413}
1414
1415func fromJSON(type: Type, personName: String) -> Any {
1416 switch type {
1417 case .Int: return 0
1418 case .Int32: return 0
1419 case .Word: return 0
1420 case .Word32: return 0
1421 case .Float: return 0.0
1422 case .Bool: return false
1423 case .String: return ""
1424 case .Array(let a): return fromJSON(a,personName)
1425 case .List(let a): return fromJSON(a,personName)
1426 case .Maybe(let a): return fromJSON(a,personName)
1427 }
1428 return 0;
1429} \ No newline at end of file