diff options
Diffstat (limited to 'ddl/out/LambdaCube.IR.swift')
-rw-r--r-- | ddl/out/LambdaCube.IR.swift | 1429 |
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 | |||
4 | typealias StreamName = Int | ||
5 | |||
6 | typealias ProgramName = Int | ||
7 | |||
8 | typealias TextureName = Int | ||
9 | |||
10 | typealias SamplerName = Int | ||
11 | |||
12 | typealias UniformName = String | ||
13 | |||
14 | typealias SlotName = Int | ||
15 | |||
16 | typealias FrameBufferComponent = Int | ||
17 | |||
18 | typealias TextureUnit = Int | ||
19 | |||
20 | typealias RenderTargetName = Int | ||
21 | |||
22 | typealias TextureUnitMapping = Dictionary<UniformName, TextureUnit> | ||
23 | |||
24 | enum ArrayValue { | ||
25 | case VBoolArray(Array<Bool>) | ||
26 | case VIntArray(Array<Int32>) | ||
27 | case VWordArray(Array<UInt32>) | ||
28 | case VFloatArray(Array<Float>) | ||
29 | } | ||
30 | |||
31 | enum 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 | |||
59 | enum 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 | |||
123 | enum PointSpriteCoordOrigin { | ||
124 | case LowerLeft | ||
125 | case UpperLeft | ||
126 | } | ||
127 | |||
128 | enum PointSize { | ||
129 | case PointSize(Float) | ||
130 | case ProgramPointSize | ||
131 | } | ||
132 | |||
133 | enum PolygonOffset { | ||
134 | case NoOffset | ||
135 | case Offset(Float,Float) | ||
136 | } | ||
137 | |||
138 | enum FrontFace { | ||
139 | case CCW | ||
140 | case CW | ||
141 | } | ||
142 | |||
143 | enum PolygonMode { | ||
144 | case PolygonPoint(PointSize) | ||
145 | case PolygonLine(Float) | ||
146 | case PolygonFill | ||
147 | } | ||
148 | |||
149 | enum ProvokingVertex { | ||
150 | case FirstVertex | ||
151 | case LastVertex | ||
152 | } | ||
153 | |||
154 | enum CullMode { | ||
155 | case CullNone | ||
156 | case CullFront(FrontFace) | ||
157 | case CullBack(FrontFace) | ||
158 | } | ||
159 | |||
160 | enum 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 | |||
171 | typealias DepthFunction = ComparisonFunction | ||
172 | |||
173 | enum 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 | |||
184 | enum BlendEquation { | ||
185 | case FuncAdd | ||
186 | case FuncSubtract | ||
187 | case FuncReverseSubtract | ||
188 | case Min | ||
189 | case Max | ||
190 | } | ||
191 | |||
192 | enum 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 | |||
210 | enum 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 | |||
229 | enum StencilOps { | ||
230 | case StencilOps(StencilOps_Data) | ||
231 | struct StencilOps_Data { | ||
232 | var frontStencilOp : StencilOperation | ||
233 | var backStencilOp : StencilOperation | ||
234 | } | ||
235 | } | ||
236 | |||
237 | enum 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 | |||
246 | enum StencilTests { | ||
247 | case StencilTests(StencilTest,StencilTest) | ||
248 | } | ||
249 | |||
250 | enum FetchPrimitive { | ||
251 | case Points | ||
252 | case Lines | ||
253 | case Triangles | ||
254 | case LinesAdjacency | ||
255 | case TrianglesAdjacency | ||
256 | } | ||
257 | |||
258 | enum OutputPrimitive { | ||
259 | case TrianglesOutput | ||
260 | case LinesOutput | ||
261 | case PointsOutput | ||
262 | } | ||
263 | |||
264 | enum ColorArity { | ||
265 | case Red | ||
266 | case RG | ||
267 | case RGB | ||
268 | case RGBA | ||
269 | } | ||
270 | |||
271 | enum 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 | |||
286 | enum RasterContext { | ||
287 | case PointCtx(PointSize,Float,PointSpriteCoordOrigin) | ||
288 | case LineCtx(Float,ProvokingVertex) | ||
289 | case TriangleCtx(CullMode,PolygonMode,PolygonOffset,ProvokingVertex) | ||
290 | } | ||
291 | |||
292 | enum FragmentOperation { | ||
293 | case DepthOp(DepthFunction,Bool) | ||
294 | case StencilOp(StencilTests,StencilOps,StencilOps) | ||
295 | case ColorOp(Blending,Value) | ||
296 | } | ||
297 | |||
298 | enum AccumulationContext { | ||
299 | case AccumulationContext(AccumulationContext_Data) | ||
300 | struct AccumulationContext_Data { | ||
301 | var accViewportName : Maybe<String> | ||
302 | var accOperations : Array<FragmentOperation> | ||
303 | } | ||
304 | } | ||
305 | |||
306 | enum TextureDataType { | ||
307 | case FloatT(ColorArity) | ||
308 | case IntT(ColorArity) | ||
309 | case WordT(ColorArity) | ||
310 | case ShadowT | ||
311 | } | ||
312 | |||
313 | enum 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 | |||
323 | enum MipMap { | ||
324 | case Mip(Int,Int) | ||
325 | case NoMip | ||
326 | case AutoMip(Int,Int) | ||
327 | } | ||
328 | |||
329 | enum Filter { | ||
330 | case Nearest | ||
331 | case Linear | ||
332 | case NearestMipmapNearest | ||
333 | case NearestMipmapLinear | ||
334 | case LinearMipmapNearest | ||
335 | case LinearMipmapLinear | ||
336 | } | ||
337 | |||
338 | enum EdgeMode { | ||
339 | case Repeat | ||
340 | case MirroredRepeat | ||
341 | case ClampToEdge | ||
342 | case ClampToBorder | ||
343 | } | ||
344 | |||
345 | enum ImageSemantic { | ||
346 | case Depth | ||
347 | case Stencil | ||
348 | case Color | ||
349 | } | ||
350 | |||
351 | enum ImageRef { | ||
352 | case TextureImage(TextureName,Int,Maybe<Int>) | ||
353 | case Framebuffer(ImageSemantic) | ||
354 | } | ||
355 | |||
356 | enum ClearImage { | ||
357 | case ClearImage(ClearImage_Data) | ||
358 | struct ClearImage_Data { | ||
359 | var imageSemantic : ImageSemantic | ||
360 | var clearValue : Value | ||
361 | } | ||
362 | } | ||
363 | |||
364 | enum 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 | |||
380 | enum 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 | |||
396 | enum 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 | |||
408 | enum Parameter { | ||
409 | case Parameter(Parameter_Data) | ||
410 | struct Parameter_Data { | ||
411 | var name : String | ||
412 | var ty : InputType | ||
413 | } | ||
414 | } | ||
415 | |||
416 | enum 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 | |||
429 | enum 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 | |||
440 | enum 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 | |||
450 | enum TargetItem { | ||
451 | case TargetItem(TargetItem_Data) | ||
452 | struct TargetItem_Data { | ||
453 | var targetSemantic : ImageSemantic | ||
454 | var targetRef : Maybe<ImageRef> | ||
455 | } | ||
456 | } | ||
457 | |||
458 | enum RenderTarget { | ||
459 | case RenderTarget(RenderTarget_Data) | ||
460 | struct RenderTarget_Data { | ||
461 | var renderTargets : Array<TargetItem> | ||
462 | } | ||
463 | } | ||
464 | |||
465 | enum Backend { | ||
466 | case WebGL1 | ||
467 | case OpenGL33 | ||
468 | } | ||
469 | |||
470 | enum 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 | |||
485 | extension Int { | ||
486 | var toJSON : [String: AnyObject] { | ||
487 | return ["":""] | ||
488 | } | ||
489 | } | ||
490 | extension Int32 { | ||
491 | var toJSON : [String: AnyObject] { | ||
492 | return ["":""] | ||
493 | } | ||
494 | } | ||
495 | extension UInt { | ||
496 | var toJSON : [String: AnyObject] { | ||
497 | return ["":""] | ||
498 | } | ||
499 | } | ||
500 | extension UInt32 { | ||
501 | var toJSON : [String: AnyObject] { | ||
502 | return ["":""] | ||
503 | } | ||
504 | } | ||
505 | extension Float { | ||
506 | var toJSON : [String: AnyObject] { | ||
507 | return ["":""] | ||
508 | } | ||
509 | } | ||
510 | extension Bool { | ||
511 | var toJSON : [String: AnyObject] { | ||
512 | return ["":""] | ||
513 | } | ||
514 | } | ||
515 | extension String { | ||
516 | var toJSON : [String: AnyObject] { | ||
517 | return ["":""] | ||
518 | } | ||
519 | } | ||
520 | extension Array { | ||
521 | var toJSON : [String: AnyObject] { | ||
522 | return ["":""] | ||
523 | } | ||
524 | } | ||
525 | extension Dictionary { | ||
526 | var toJSON : [String: AnyObject] { | ||
527 | return ["":""] | ||
528 | } | ||
529 | } | ||
530 | extension Maybe { | ||
531 | var toJSON : [String: AnyObject] { | ||
532 | return ["":""] | ||
533 | } | ||
534 | } | ||
535 | |||
536 | |||
537 | |||
538 | extension 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 | } | ||
552 | extension 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 | } | ||
608 | extension 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 | } | ||
736 | extension 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 | } | ||
746 | extension 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 | } | ||
756 | extension 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 | } | ||
766 | extension 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 | } | ||
776 | extension 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 | } | ||
788 | extension 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 | } | ||
798 | extension 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 | } | ||
810 | extension 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 | } | ||
832 | extension 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 | } | ||
854 | extension 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 | } | ||
870 | extension 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 | } | ||
906 | extension 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 | } | ||
944 | extension 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 | } | ||
955 | extension 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 | } | ||
967 | extension 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 | } | ||
975 | extension 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 | } | ||
991 | extension 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 | } | ||
1003 | extension 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 | } | ||
1017 | extension 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 | } | ||
1037 | extension 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 | } | ||
1049 | extension 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 | } | ||
1061 | extension 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 | } | ||
1072 | extension 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 | } | ||
1086 | extension 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 | } | ||
1106 | extension 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 | } | ||
1118 | extension 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 | } | ||
1136 | extension 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 | } | ||
1150 | extension 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 | } | ||
1162 | extension 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 | } | ||
1172 | extension 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 | } | ||
1183 | extension 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 | } | ||
1215 | extension 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 | } | ||
1234 | extension 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 | } | ||
1249 | extension 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 | } | ||
1260 | extension 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 | } | ||
1276 | extension 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 | } | ||
1290 | extension 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 | } | ||
1303 | extension 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 | } | ||
1314 | extension 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 | } | ||
1324 | extension 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 | } | ||
1334 | extension 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 | |||
1352 | enum Maybe<T> { | ||
1353 | case Nothing | ||
1354 | case Just(T) | ||
1355 | } | ||
1356 | |||
1357 | enum 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 | |||
1415 | func 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 | ||