summaryrefslogtreecommitdiff
path: root/ddl/out/swift/LambdaCube.IR.swift
diff options
context:
space:
mode:
Diffstat (limited to 'ddl/out/swift/LambdaCube.IR.swift')
-rw-r--r--ddl/out/swift/LambdaCube.IR.swift1431
1 files changed, 1431 insertions, 0 deletions
diff --git a/ddl/out/swift/LambdaCube.IR.swift b/ddl/out/swift/LambdaCube.IR.swift
new file mode 100644
index 0000000..bde39fd
--- /dev/null
+++ b/ddl/out/swift/LambdaCube.IR.swift
@@ -0,0 +1,1431 @@
1// generated file, do not modify!
2// 2016-11-11T11:17:02.701527000000Z
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 info : String
474 var backend : Backend
475 var textures : Array<TextureDescriptor>
476 var samplers : Array<SamplerDescriptor>
477 var targets : Array<RenderTarget>
478 var programs : Array<Program>
479 var slots : Array<Slot>
480 var streams : Array<StreamData>
481 var commands : Array<Command>
482 }
483}
484
485
486extension Int {
487 var toJSON : [String: AnyObject] {
488 return ["":""]
489 }
490}
491extension Int32 {
492 var toJSON : [String: AnyObject] {
493 return ["":""]
494 }
495}
496extension UInt {
497 var toJSON : [String: AnyObject] {
498 return ["":""]
499 }
500}
501extension UInt32 {
502 var toJSON : [String: AnyObject] {
503 return ["":""]
504 }
505}
506extension Float {
507 var toJSON : [String: AnyObject] {
508 return ["":""]
509 }
510}
511extension Bool {
512 var toJSON : [String: AnyObject] {
513 return ["":""]
514 }
515}
516extension String {
517 var toJSON : [String: AnyObject] {
518 return ["":""]
519 }
520}
521extension Array {
522 var toJSON : [String: AnyObject] {
523 return ["":""]
524 }
525}
526extension Dictionary {
527 var toJSON : [String: AnyObject] {
528 return ["":""]
529 }
530}
531extension Maybe {
532 var toJSON : [String: AnyObject] {
533 return ["":""]
534 }
535}
536
537
538
539extension ArrayValue {
540 var toJSON : [String: AnyObject] {
541 switch self {
542 case .VBoolArray(let arg0):
543 return [ "tag" : "VBoolArray", "arg0" : arg0.toJSON]
544 case .VIntArray(let arg0):
545 return [ "tag" : "VIntArray", "arg0" : arg0.toJSON]
546 case .VWordArray(let arg0):
547 return [ "tag" : "VWordArray", "arg0" : arg0.toJSON]
548 case .VFloatArray(let arg0):
549 return [ "tag" : "VFloatArray", "arg0" : arg0.toJSON]
550 }
551 }
552}
553extension Value {
554 var toJSON : [String: AnyObject] {
555 switch self {
556 case .VBool(let arg0):
557 return [ "tag" : "VBool", "arg0" : arg0.toJSON]
558 case .VV2B(let arg0):
559 return [ "tag" : "VV2B", "arg0" : arg0.toJSON]
560 case .VV3B(let arg0):
561 return [ "tag" : "VV3B", "arg0" : arg0.toJSON]
562 case .VV4B(let arg0):
563 return [ "tag" : "VV4B", "arg0" : arg0.toJSON]
564 case .VWord(let arg0):
565 return [ "tag" : "VWord", "arg0" : arg0.toJSON]
566 case .VV2U(let arg0):
567 return [ "tag" : "VV2U", "arg0" : arg0.toJSON]
568 case .VV3U(let arg0):
569 return [ "tag" : "VV3U", "arg0" : arg0.toJSON]
570 case .VV4U(let arg0):
571 return [ "tag" : "VV4U", "arg0" : arg0.toJSON]
572 case .VInt(let arg0):
573 return [ "tag" : "VInt", "arg0" : arg0.toJSON]
574 case .VV2I(let arg0):
575 return [ "tag" : "VV2I", "arg0" : arg0.toJSON]
576 case .VV3I(let arg0):
577 return [ "tag" : "VV3I", "arg0" : arg0.toJSON]
578 case .VV4I(let arg0):
579 return [ "tag" : "VV4I", "arg0" : arg0.toJSON]
580 case .VFloat(let arg0):
581 return [ "tag" : "VFloat", "arg0" : arg0.toJSON]
582 case .VV2F(let arg0):
583 return [ "tag" : "VV2F", "arg0" : arg0.toJSON]
584 case .VV3F(let arg0):
585 return [ "tag" : "VV3F", "arg0" : arg0.toJSON]
586 case .VV4F(let arg0):
587 return [ "tag" : "VV4F", "arg0" : arg0.toJSON]
588 case .VM22F(let arg0):
589 return [ "tag" : "VM22F", "arg0" : arg0.toJSON]
590 case .VM23F(let arg0):
591 return [ "tag" : "VM23F", "arg0" : arg0.toJSON]
592 case .VM24F(let arg0):
593 return [ "tag" : "VM24F", "arg0" : arg0.toJSON]
594 case .VM32F(let arg0):
595 return [ "tag" : "VM32F", "arg0" : arg0.toJSON]
596 case .VM33F(let arg0):
597 return [ "tag" : "VM33F", "arg0" : arg0.toJSON]
598 case .VM34F(let arg0):
599 return [ "tag" : "VM34F", "arg0" : arg0.toJSON]
600 case .VM42F(let arg0):
601 return [ "tag" : "VM42F", "arg0" : arg0.toJSON]
602 case .VM43F(let arg0):
603 return [ "tag" : "VM43F", "arg0" : arg0.toJSON]
604 case .VM44F(let arg0):
605 return [ "tag" : "VM44F", "arg0" : arg0.toJSON]
606 }
607 }
608}
609extension InputType {
610 var toJSON : [String: AnyObject] {
611 switch self {
612 case .Bool:
613 return [ "tag" : "Bool"]
614 case .V2B:
615 return [ "tag" : "V2B"]
616 case .V3B:
617 return [ "tag" : "V3B"]
618 case .V4B:
619 return [ "tag" : "V4B"]
620 case .Word:
621 return [ "tag" : "Word"]
622 case .V2U:
623 return [ "tag" : "V2U"]
624 case .V3U:
625 return [ "tag" : "V3U"]
626 case .V4U:
627 return [ "tag" : "V4U"]
628 case .Int:
629 return [ "tag" : "Int"]
630 case .V2I:
631 return [ "tag" : "V2I"]
632 case .V3I:
633 return [ "tag" : "V3I"]
634 case .V4I:
635 return [ "tag" : "V4I"]
636 case .Float:
637 return [ "tag" : "Float"]
638 case .V2F:
639 return [ "tag" : "V2F"]
640 case .V3F:
641 return [ "tag" : "V3F"]
642 case .V4F:
643 return [ "tag" : "V4F"]
644 case .M22F:
645 return [ "tag" : "M22F"]
646 case .M23F:
647 return [ "tag" : "M23F"]
648 case .M24F:
649 return [ "tag" : "M24F"]
650 case .M32F:
651 return [ "tag" : "M32F"]
652 case .M33F:
653 return [ "tag" : "M33F"]
654 case .M34F:
655 return [ "tag" : "M34F"]
656 case .M42F:
657 return [ "tag" : "M42F"]
658 case .M43F:
659 return [ "tag" : "M43F"]
660 case .M44F:
661 return [ "tag" : "M44F"]
662 case .STexture1D:
663 return [ "tag" : "STexture1D"]
664 case .STexture2D:
665 return [ "tag" : "STexture2D"]
666 case .STextureCube:
667 return [ "tag" : "STextureCube"]
668 case .STexture1DArray:
669 return [ "tag" : "STexture1DArray"]
670 case .STexture2DArray:
671 return [ "tag" : "STexture2DArray"]
672 case .STexture2DRect:
673 return [ "tag" : "STexture2DRect"]
674 case .FTexture1D:
675 return [ "tag" : "FTexture1D"]
676 case .FTexture2D:
677 return [ "tag" : "FTexture2D"]
678 case .FTexture3D:
679 return [ "tag" : "FTexture3D"]
680 case .FTextureCube:
681 return [ "tag" : "FTextureCube"]
682 case .FTexture1DArray:
683 return [ "tag" : "FTexture1DArray"]
684 case .FTexture2DArray:
685 return [ "tag" : "FTexture2DArray"]
686 case .FTexture2DMS:
687 return [ "tag" : "FTexture2DMS"]
688 case .FTexture2DMSArray:
689 return [ "tag" : "FTexture2DMSArray"]
690 case .FTextureBuffer:
691 return [ "tag" : "FTextureBuffer"]
692 case .FTexture2DRect:
693 return [ "tag" : "FTexture2DRect"]
694 case .ITexture1D:
695 return [ "tag" : "ITexture1D"]
696 case .ITexture2D:
697 return [ "tag" : "ITexture2D"]
698 case .ITexture3D:
699 return [ "tag" : "ITexture3D"]
700 case .ITextureCube:
701 return [ "tag" : "ITextureCube"]
702 case .ITexture1DArray:
703 return [ "tag" : "ITexture1DArray"]
704 case .ITexture2DArray:
705 return [ "tag" : "ITexture2DArray"]
706 case .ITexture2DMS:
707 return [ "tag" : "ITexture2DMS"]
708 case .ITexture2DMSArray:
709 return [ "tag" : "ITexture2DMSArray"]
710 case .ITextureBuffer:
711 return [ "tag" : "ITextureBuffer"]
712 case .ITexture2DRect:
713 return [ "tag" : "ITexture2DRect"]
714 case .UTexture1D:
715 return [ "tag" : "UTexture1D"]
716 case .UTexture2D:
717 return [ "tag" : "UTexture2D"]
718 case .UTexture3D:
719 return [ "tag" : "UTexture3D"]
720 case .UTextureCube:
721 return [ "tag" : "UTextureCube"]
722 case .UTexture1DArray:
723 return [ "tag" : "UTexture1DArray"]
724 case .UTexture2DArray:
725 return [ "tag" : "UTexture2DArray"]
726 case .UTexture2DMS:
727 return [ "tag" : "UTexture2DMS"]
728 case .UTexture2DMSArray:
729 return [ "tag" : "UTexture2DMSArray"]
730 case .UTextureBuffer:
731 return [ "tag" : "UTextureBuffer"]
732 case .UTexture2DRect:
733 return [ "tag" : "UTexture2DRect"]
734 }
735 }
736}
737extension PointSpriteCoordOrigin {
738 var toJSON : [String: AnyObject] {
739 switch self {
740 case .LowerLeft:
741 return [ "tag" : "LowerLeft"]
742 case .UpperLeft:
743 return [ "tag" : "UpperLeft"]
744 }
745 }
746}
747extension PointSize {
748 var toJSON : [String: AnyObject] {
749 switch self {
750 case .PointSize(let arg0):
751 return [ "tag" : "PointSize", "arg0" : arg0.toJSON]
752 case .ProgramPointSize:
753 return [ "tag" : "ProgramPointSize"]
754 }
755 }
756}
757extension PolygonOffset {
758 var toJSON : [String: AnyObject] {
759 switch self {
760 case .NoOffset:
761 return [ "tag" : "NoOffset"]
762 case .Offset(let arg0, let arg1):
763 return [ "tag" : "Offset", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
764 }
765 }
766}
767extension FrontFace {
768 var toJSON : [String: AnyObject] {
769 switch self {
770 case .CCW:
771 return [ "tag" : "CCW"]
772 case .CW:
773 return [ "tag" : "CW"]
774 }
775 }
776}
777extension PolygonMode {
778 var toJSON : [String: AnyObject] {
779 switch self {
780 case .PolygonPoint(let arg0):
781 return [ "tag" : "PolygonPoint", "arg0" : arg0.toJSON]
782 case .PolygonLine(let arg0):
783 return [ "tag" : "PolygonLine", "arg0" : arg0.toJSON]
784 case .PolygonFill:
785 return [ "tag" : "PolygonFill"]
786 }
787 }
788}
789extension ProvokingVertex {
790 var toJSON : [String: AnyObject] {
791 switch self {
792 case .FirstVertex:
793 return [ "tag" : "FirstVertex"]
794 case .LastVertex:
795 return [ "tag" : "LastVertex"]
796 }
797 }
798}
799extension CullMode {
800 var toJSON : [String: AnyObject] {
801 switch self {
802 case .CullNone:
803 return [ "tag" : "CullNone"]
804 case .CullFront(let arg0):
805 return [ "tag" : "CullFront", "arg0" : arg0.toJSON]
806 case .CullBack(let arg0):
807 return [ "tag" : "CullBack", "arg0" : arg0.toJSON]
808 }
809 }
810}
811extension ComparisonFunction {
812 var toJSON : [String: AnyObject] {
813 switch self {
814 case .Never:
815 return [ "tag" : "Never"]
816 case .Less:
817 return [ "tag" : "Less"]
818 case .Equal:
819 return [ "tag" : "Equal"]
820 case .Lequal:
821 return [ "tag" : "Lequal"]
822 case .Greater:
823 return [ "tag" : "Greater"]
824 case .Notequal:
825 return [ "tag" : "Notequal"]
826 case .Gequal:
827 return [ "tag" : "Gequal"]
828 case .Always:
829 return [ "tag" : "Always"]
830 }
831 }
832}
833extension StencilOperation {
834 var toJSON : [String: AnyObject] {
835 switch self {
836 case .OpZero:
837 return [ "tag" : "OpZero"]
838 case .OpKeep:
839 return [ "tag" : "OpKeep"]
840 case .OpReplace:
841 return [ "tag" : "OpReplace"]
842 case .OpIncr:
843 return [ "tag" : "OpIncr"]
844 case .OpIncrWrap:
845 return [ "tag" : "OpIncrWrap"]
846 case .OpDecr:
847 return [ "tag" : "OpDecr"]
848 case .OpDecrWrap:
849 return [ "tag" : "OpDecrWrap"]
850 case .OpInvert:
851 return [ "tag" : "OpInvert"]
852 }
853 }
854}
855extension BlendEquation {
856 var toJSON : [String: AnyObject] {
857 switch self {
858 case .FuncAdd:
859 return [ "tag" : "FuncAdd"]
860 case .FuncSubtract:
861 return [ "tag" : "FuncSubtract"]
862 case .FuncReverseSubtract:
863 return [ "tag" : "FuncReverseSubtract"]
864 case .Min:
865 return [ "tag" : "Min"]
866 case .Max:
867 return [ "tag" : "Max"]
868 }
869 }
870}
871extension BlendingFactor {
872 var toJSON : [String: AnyObject] {
873 switch self {
874 case .Zero:
875 return [ "tag" : "Zero"]
876 case .One:
877 return [ "tag" : "One"]
878 case .SrcColor:
879 return [ "tag" : "SrcColor"]
880 case .OneMinusSrcColor:
881 return [ "tag" : "OneMinusSrcColor"]
882 case .DstColor:
883 return [ "tag" : "DstColor"]
884 case .OneMinusDstColor:
885 return [ "tag" : "OneMinusDstColor"]
886 case .SrcAlpha:
887 return [ "tag" : "SrcAlpha"]
888 case .OneMinusSrcAlpha:
889 return [ "tag" : "OneMinusSrcAlpha"]
890 case .DstAlpha:
891 return [ "tag" : "DstAlpha"]
892 case .OneMinusDstAlpha:
893 return [ "tag" : "OneMinusDstAlpha"]
894 case .ConstantColor:
895 return [ "tag" : "ConstantColor"]
896 case .OneMinusConstantColor:
897 return [ "tag" : "OneMinusConstantColor"]
898 case .ConstantAlpha:
899 return [ "tag" : "ConstantAlpha"]
900 case .OneMinusConstantAlpha:
901 return [ "tag" : "OneMinusConstantAlpha"]
902 case .SrcAlphaSaturate:
903 return [ "tag" : "SrcAlphaSaturate"]
904 }
905 }
906}
907extension LogicOperation {
908 var toJSON : [String: AnyObject] {
909 switch self {
910 case .Clear:
911 return [ "tag" : "Clear"]
912 case .And:
913 return [ "tag" : "And"]
914 case .AndReverse:
915 return [ "tag" : "AndReverse"]
916 case .Copy:
917 return [ "tag" : "Copy"]
918 case .AndInverted:
919 return [ "tag" : "AndInverted"]
920 case .Noop:
921 return [ "tag" : "Noop"]
922 case .Xor:
923 return [ "tag" : "Xor"]
924 case .Or:
925 return [ "tag" : "Or"]
926 case .Nor:
927 return [ "tag" : "Nor"]
928 case .Equiv:
929 return [ "tag" : "Equiv"]
930 case .Invert:
931 return [ "tag" : "Invert"]
932 case .OrReverse:
933 return [ "tag" : "OrReverse"]
934 case .CopyInverted:
935 return [ "tag" : "CopyInverted"]
936 case .OrInverted:
937 return [ "tag" : "OrInverted"]
938 case .Nand:
939 return [ "tag" : "Nand"]
940 case .Set:
941 return [ "tag" : "Set"]
942 }
943 }
944}
945extension StencilOps {
946 var toJSON : [String: AnyObject] {
947 switch self {
948 case .StencilOps(let v):
949 return [ "tag" : "StencilOps"
950 , "frontStencilOp" : v.frontStencilOp.toJSON
951 , "backStencilOp" : v.backStencilOp.toJSON
952 ]
953 }
954 }
955}
956extension StencilTest {
957 var toJSON : [String: AnyObject] {
958 switch self {
959 case .StencilTest(let v):
960 return [ "tag" : "StencilTest"
961 , "stencilComparision" : v.stencilComparision.toJSON
962 , "stencilReference" : v.stencilReference.toJSON
963 , "stencilMask" : v.stencilMask.toJSON
964 ]
965 }
966 }
967}
968extension StencilTests {
969 var toJSON : [String: AnyObject] {
970 switch self {
971 case .StencilTests(let arg0, let arg1):
972 return [ "tag" : "StencilTests", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
973 }
974 }
975}
976extension FetchPrimitive {
977 var toJSON : [String: AnyObject] {
978 switch self {
979 case .Points:
980 return [ "tag" : "Points"]
981 case .Lines:
982 return [ "tag" : "Lines"]
983 case .Triangles:
984 return [ "tag" : "Triangles"]
985 case .LinesAdjacency:
986 return [ "tag" : "LinesAdjacency"]
987 case .TrianglesAdjacency:
988 return [ "tag" : "TrianglesAdjacency"]
989 }
990 }
991}
992extension OutputPrimitive {
993 var toJSON : [String: AnyObject] {
994 switch self {
995 case .TrianglesOutput:
996 return [ "tag" : "TrianglesOutput"]
997 case .LinesOutput:
998 return [ "tag" : "LinesOutput"]
999 case .PointsOutput:
1000 return [ "tag" : "PointsOutput"]
1001 }
1002 }
1003}
1004extension ColorArity {
1005 var toJSON : [String: AnyObject] {
1006 switch self {
1007 case .Red:
1008 return [ "tag" : "Red"]
1009 case .RG:
1010 return [ "tag" : "RG"]
1011 case .RGB:
1012 return [ "tag" : "RGB"]
1013 case .RGBA:
1014 return [ "tag" : "RGBA"]
1015 }
1016 }
1017}
1018extension Blending {
1019 var toJSON : [String: AnyObject] {
1020 switch self {
1021 case .NoBlending:
1022 return [ "tag" : "NoBlending"]
1023 case .BlendLogicOp(let arg0):
1024 return [ "tag" : "BlendLogicOp", "arg0" : arg0.toJSON]
1025 case .Blend(let v):
1026 return [ "tag" : "Blend"
1027 , "colorEqSrc" : v.colorEqSrc.toJSON
1028 , "alphaEqSrc" : v.alphaEqSrc.toJSON
1029 , "colorFSrc" : v.colorFSrc.toJSON
1030 , "colorFDst" : v.colorFDst.toJSON
1031 , "alphaFSrc" : v.alphaFSrc.toJSON
1032 , "alphaFDst" : v.alphaFDst.toJSON
1033 , "color" : v.color.toJSON
1034 ]
1035 }
1036 }
1037}
1038extension RasterContext {
1039 var toJSON : [String: AnyObject] {
1040 switch self {
1041 case .PointCtx(let arg0, let arg1, let arg2):
1042 return [ "tag" : "PointCtx", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON, "arg2" : arg2.toJSON]
1043 case .LineCtx(let arg0, let arg1):
1044 return [ "tag" : "LineCtx", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1045 case .TriangleCtx(let arg0, let arg1, let arg2, let arg3):
1046 return [ "tag" : "TriangleCtx", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON, "arg2" : arg2.toJSON, "arg3" : arg3.toJSON]
1047 }
1048 }
1049}
1050extension FragmentOperation {
1051 var toJSON : [String: AnyObject] {
1052 switch self {
1053 case .DepthOp(let arg0, let arg1):
1054 return [ "tag" : "DepthOp", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1055 case .StencilOp(let arg0, let arg1, let arg2):
1056 return [ "tag" : "StencilOp", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON, "arg2" : arg2.toJSON]
1057 case .ColorOp(let arg0, let arg1):
1058 return [ "tag" : "ColorOp", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1059 }
1060 }
1061}
1062extension AccumulationContext {
1063 var toJSON : [String: AnyObject] {
1064 switch self {
1065 case .AccumulationContext(let v):
1066 return [ "tag" : "AccumulationContext"
1067 , "accViewportName" : v.accViewportName.toJSON
1068 , "accOperations" : v.accOperations.toJSON
1069 ]
1070 }
1071 }
1072}
1073extension TextureDataType {
1074 var toJSON : [String: AnyObject] {
1075 switch self {
1076 case .FloatT(let arg0):
1077 return [ "tag" : "FloatT", "arg0" : arg0.toJSON]
1078 case .IntT(let arg0):
1079 return [ "tag" : "IntT", "arg0" : arg0.toJSON]
1080 case .WordT(let arg0):
1081 return [ "tag" : "WordT", "arg0" : arg0.toJSON]
1082 case .ShadowT:
1083 return [ "tag" : "ShadowT"]
1084 }
1085 }
1086}
1087extension TextureType {
1088 var toJSON : [String: AnyObject] {
1089 switch self {
1090 case .Texture1D(let arg0, let arg1):
1091 return [ "tag" : "Texture1D", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1092 case .Texture2D(let arg0, let arg1):
1093 return [ "tag" : "Texture2D", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1094 case .Texture3D(let arg0):
1095 return [ "tag" : "Texture3D", "arg0" : arg0.toJSON]
1096 case .TextureCube(let arg0):
1097 return [ "tag" : "TextureCube", "arg0" : arg0.toJSON]
1098 case .TextureRect(let arg0):
1099 return [ "tag" : "TextureRect", "arg0" : arg0.toJSON]
1100 case .Texture2DMS(let arg0, let arg1, let arg2, let arg3):
1101 return [ "tag" : "Texture2DMS", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON, "arg2" : arg2.toJSON, "arg3" : arg3.toJSON]
1102 case .TextureBuffer(let arg0):
1103 return [ "tag" : "TextureBuffer", "arg0" : arg0.toJSON]
1104 }
1105 }
1106}
1107extension MipMap {
1108 var toJSON : [String: AnyObject] {
1109 switch self {
1110 case .Mip(let arg0, let arg1):
1111 return [ "tag" : "Mip", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1112 case .NoMip:
1113 return [ "tag" : "NoMip"]
1114 case .AutoMip(let arg0, let arg1):
1115 return [ "tag" : "AutoMip", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1116 }
1117 }
1118}
1119extension Filter {
1120 var toJSON : [String: AnyObject] {
1121 switch self {
1122 case .Nearest:
1123 return [ "tag" : "Nearest"]
1124 case .Linear:
1125 return [ "tag" : "Linear"]
1126 case .NearestMipmapNearest:
1127 return [ "tag" : "NearestMipmapNearest"]
1128 case .NearestMipmapLinear:
1129 return [ "tag" : "NearestMipmapLinear"]
1130 case .LinearMipmapNearest:
1131 return [ "tag" : "LinearMipmapNearest"]
1132 case .LinearMipmapLinear:
1133 return [ "tag" : "LinearMipmapLinear"]
1134 }
1135 }
1136}
1137extension EdgeMode {
1138 var toJSON : [String: AnyObject] {
1139 switch self {
1140 case .Repeat:
1141 return [ "tag" : "Repeat"]
1142 case .MirroredRepeat:
1143 return [ "tag" : "MirroredRepeat"]
1144 case .ClampToEdge:
1145 return [ "tag" : "ClampToEdge"]
1146 case .ClampToBorder:
1147 return [ "tag" : "ClampToBorder"]
1148 }
1149 }
1150}
1151extension ImageSemantic {
1152 var toJSON : [String: AnyObject] {
1153 switch self {
1154 case .Depth:
1155 return [ "tag" : "Depth"]
1156 case .Stencil:
1157 return [ "tag" : "Stencil"]
1158 case .Color:
1159 return [ "tag" : "Color"]
1160 }
1161 }
1162}
1163extension ImageRef {
1164 var toJSON : [String: AnyObject] {
1165 switch self {
1166 case .TextureImage(let arg0, let arg1, let arg2):
1167 return [ "tag" : "TextureImage", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON, "arg2" : arg2.toJSON]
1168 case .Framebuffer(let arg0):
1169 return [ "tag" : "Framebuffer", "arg0" : arg0.toJSON]
1170 }
1171 }
1172}
1173extension ClearImage {
1174 var toJSON : [String: AnyObject] {
1175 switch self {
1176 case .ClearImage(let v):
1177 return [ "tag" : "ClearImage"
1178 , "imageSemantic" : v.imageSemantic.toJSON
1179 , "clearValue" : v.clearValue.toJSON
1180 ]
1181 }
1182 }
1183}
1184extension Command {
1185 var toJSON : [String: AnyObject] {
1186 switch self {
1187 case .SetRasterContext(let arg0):
1188 return [ "tag" : "SetRasterContext", "arg0" : arg0.toJSON]
1189 case .SetAccumulationContext(let arg0):
1190 return [ "tag" : "SetAccumulationContext", "arg0" : arg0.toJSON]
1191 case .SetRenderTarget(let arg0):
1192 return [ "tag" : "SetRenderTarget", "arg0" : arg0.toJSON]
1193 case .SetProgram(let arg0):
1194 return [ "tag" : "SetProgram", "arg0" : arg0.toJSON]
1195 case .SetSamplerUniform(let arg0, let arg1):
1196 return [ "tag" : "SetSamplerUniform", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1197 case .SetTexture(let arg0, let arg1):
1198 return [ "tag" : "SetTexture", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1199 case .SetSampler(let arg0, let arg1):
1200 return [ "tag" : "SetSampler", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1201 case .RenderSlot(let arg0):
1202 return [ "tag" : "RenderSlot", "arg0" : arg0.toJSON]
1203 case .RenderStream(let arg0):
1204 return [ "tag" : "RenderStream", "arg0" : arg0.toJSON]
1205 case .ClearRenderTarget(let arg0):
1206 return [ "tag" : "ClearRenderTarget", "arg0" : arg0.toJSON]
1207 case .GenerateMipMap(let arg0):
1208 return [ "tag" : "GenerateMipMap", "arg0" : arg0.toJSON]
1209 case .SaveImage(let arg0, let arg1):
1210 return [ "tag" : "SaveImage", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1211 case .LoadImage(let arg0, let arg1):
1212 return [ "tag" : "LoadImage", "arg0" : arg0.toJSON, "arg1" : arg1.toJSON]
1213 }
1214 }
1215}
1216extension SamplerDescriptor {
1217 var toJSON : [String: AnyObject] {
1218 switch self {
1219 case .SamplerDescriptor(let v):
1220 return [ "tag" : "SamplerDescriptor"
1221 , "samplerWrapS" : v.samplerWrapS.toJSON
1222 , "samplerWrapT" : v.samplerWrapT.toJSON
1223 , "samplerWrapR" : v.samplerWrapR.toJSON
1224 , "samplerMinFilter" : v.samplerMinFilter.toJSON
1225 , "samplerMagFilter" : v.samplerMagFilter.toJSON
1226 , "samplerBorderColor" : v.samplerBorderColor.toJSON
1227 , "samplerMinLod" : v.samplerMinLod.toJSON
1228 , "samplerMaxLod" : v.samplerMaxLod.toJSON
1229 , "samplerLodBias" : v.samplerLodBias.toJSON
1230 , "samplerCompareFunc" : v.samplerCompareFunc.toJSON
1231 ]
1232 }
1233 }
1234}
1235extension TextureDescriptor {
1236 var toJSON : [String: AnyObject] {
1237 switch self {
1238 case .TextureDescriptor(let v):
1239 return [ "tag" : "TextureDescriptor"
1240 , "textureType" : v.textureType.toJSON
1241 , "textureSize" : v.textureSize.toJSON
1242 , "textureSemantic" : v.textureSemantic.toJSON
1243 , "textureSampler" : v.textureSampler.toJSON
1244 , "textureBaseLevel" : v.textureBaseLevel.toJSON
1245 , "textureMaxLevel" : v.textureMaxLevel.toJSON
1246 ]
1247 }
1248 }
1249}
1250extension Parameter {
1251 var toJSON : [String: AnyObject] {
1252 switch self {
1253 case .Parameter(let v):
1254 return [ "tag" : "Parameter"
1255 , "name" : v.name.toJSON
1256 , "ty" : v.ty.toJSON
1257 ]
1258 }
1259 }
1260}
1261extension Program {
1262 var toJSON : [String: AnyObject] {
1263 switch self {
1264 case .Program(let v):
1265 return [ "tag" : "Program"
1266 , "programUniforms" : v.programUniforms.toJSON
1267 , "programStreams" : v.programStreams.toJSON
1268 , "programInTextures" : v.programInTextures.toJSON
1269 , "programOutput" : v.programOutput.toJSON
1270 , "vertexShader" : v.vertexShader.toJSON
1271 , "geometryShader" : v.geometryShader.toJSON
1272 , "fragmentShader" : v.fragmentShader.toJSON
1273 ]
1274 }
1275 }
1276}
1277extension Slot {
1278 var toJSON : [String: AnyObject] {
1279 switch self {
1280 case .Slot(let v):
1281 return [ "tag" : "Slot"
1282 , "slotName" : v.slotName.toJSON
1283 , "slotStreams" : v.slotStreams.toJSON
1284 , "slotUniforms" : v.slotUniforms.toJSON
1285 , "slotPrimitive" : v.slotPrimitive.toJSON
1286 , "slotPrograms" : v.slotPrograms.toJSON
1287 ]
1288 }
1289 }
1290}
1291extension StreamData {
1292 var toJSON : [String: AnyObject] {
1293 switch self {
1294 case .StreamData(let v):
1295 return [ "tag" : "StreamData"
1296 , "streamData" : v.streamData.toJSON
1297 , "streamType" : v.streamType.toJSON
1298 , "streamPrimitive" : v.streamPrimitive.toJSON
1299 , "streamPrograms" : v.streamPrograms.toJSON
1300 ]
1301 }
1302 }
1303}
1304extension TargetItem {
1305 var toJSON : [String: AnyObject] {
1306 switch self {
1307 case .TargetItem(let v):
1308 return [ "tag" : "TargetItem"
1309 , "targetSemantic" : v.targetSemantic.toJSON
1310 , "targetRef" : v.targetRef.toJSON
1311 ]
1312 }
1313 }
1314}
1315extension RenderTarget {
1316 var toJSON : [String: AnyObject] {
1317 switch self {
1318 case .RenderTarget(let v):
1319 return [ "tag" : "RenderTarget"
1320 , "renderTargets" : v.renderTargets.toJSON
1321 ]
1322 }
1323 }
1324}
1325extension Backend {
1326 var toJSON : [String: AnyObject] {
1327 switch self {
1328 case .WebGL1:
1329 return [ "tag" : "WebGL1"]
1330 case .OpenGL33:
1331 return [ "tag" : "OpenGL33"]
1332 }
1333 }
1334}
1335extension Pipeline {
1336 var toJSON : [String: AnyObject] {
1337 switch self {
1338 case .Pipeline(let v):
1339 return [ "tag" : "Pipeline"
1340 , "info" : v.info.toJSON
1341 , "backend" : v.backend.toJSON
1342 , "textures" : v.textures.toJSON
1343 , "samplers" : v.samplers.toJSON
1344 , "targets" : v.targets.toJSON
1345 , "programs" : v.programs.toJSON
1346 , "slots" : v.slots.toJSON
1347 , "streams" : v.streams.toJSON
1348 , "commands" : v.commands.toJSON
1349 ]
1350 }
1351 }
1352}
1353
1354enum Maybe<T> {
1355 case Nothing
1356 case Just(T)
1357}
1358
1359enum Type {
1360 case Int
1361 case Int32
1362 case Word
1363 case Word32
1364 case Float
1365 case Bool
1366 case String
1367 case Array(Type)
1368 case List(Type)
1369 case Maybe(Type)
1370 case Map(Type,Type)
1371 case ArrayValue
1372 case Value
1373 case InputType
1374 case PointSpriteCoordOrigin
1375 case PointSize
1376 case PolygonOffset
1377 case FrontFace
1378 case PolygonMode
1379 case ProvokingVertex
1380 case CullMode
1381 case ComparisonFunction
1382 case StencilOperation
1383 case BlendEquation
1384 case BlendingFactor
1385 case LogicOperation
1386 case StencilOps
1387 case StencilTest
1388 case StencilTests
1389 case FetchPrimitive
1390 case OutputPrimitive
1391 case ColorArity
1392 case Blending
1393 case RasterContext
1394 case FragmentOperation
1395 case AccumulationContext
1396 case TextureDataType
1397 case TextureType
1398 case MipMap
1399 case Filter
1400 case EdgeMode
1401 case ImageSemantic
1402 case ImageRef
1403 case ClearImage
1404 case Command
1405 case SamplerDescriptor
1406 case TextureDescriptor
1407 case Parameter
1408 case Program
1409 case Slot
1410 case StreamData
1411 case TargetItem
1412 case RenderTarget
1413 case Backend
1414 case Pipeline
1415}
1416
1417func fromJSON(type: Type, personName: String) -> Any {
1418 switch type {
1419 case .Int: return 0
1420 case .Int32: return 0
1421 case .Word: return 0
1422 case .Word32: return 0
1423 case .Float: return 0.0
1424 case .Bool: return false
1425 case .String: return ""
1426 case .Array(let a): return fromJSON(a,personName)
1427 case .List(let a): return fromJSON(a,personName)
1428 case .Maybe(let a): return fromJSON(a,personName)
1429 }
1430 return 0;
1431} \ No newline at end of file