diff options
Diffstat (limited to 'ddl/out/java/LambdaCube/IR/JSON.java')
-rw-r--r-- | ddl/out/java/LambdaCube/IR/JSON.java | 1460 |
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 | |||
4 | package LambdaCube.IR; | ||
5 | |||
6 | import java.util.ArrayList; | ||
7 | import java.util.HashMap; | ||
8 | import org.json.*; | ||
9 | import RT.*; | ||
10 | |||
11 | |||
12 | public 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 | ||