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