summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCsaba Hruska <csaba.hruska@gmail.com>2016-03-21 14:31:44 +0100
committerCsaba Hruska <csaba.hruska@gmail.com>2016-03-21 14:31:44 +0100
commitbe1e26b520e363ded31202fb0c39a6478dbe7cc6 (patch)
treeabbcadd53e459ca7835907e136021aa7072355a7
parent5cd71fce0fffcf04a71bb42e3ef44776d66ff633 (diff)
use switch for tag string in c#
-rw-r--r--ddl/lib/LambdaCube.IR.RT.cs32
-rw-r--r--ddl/out/LambdaCube.IR.cpp2
-rw-r--r--ddl/out/LambdaCube.IR.cs1910
-rw-r--r--ddl/out/LambdaCube.IR.hpp2
-rw-r--r--ddl/out/LambdaCube.IR.hs2
-rw-r--r--ddl/out/LambdaCube.IR.purs2
-rw-r--r--ddl/out/LambdaCube.IR.swift2
-rw-r--r--ddl/out/LambdaCube.IR2.hpp2
-rw-r--r--ddl/out/LambdaCube.Mesh.cpp2
-rw-r--r--ddl/out/LambdaCube.Mesh.cs162
-rw-r--r--ddl/out/LambdaCube.Mesh.hpp2
-rw-r--r--ddl/out/LambdaCube.Mesh.hs2
-rw-r--r--ddl/out/LambdaCube.Mesh.purs2
-rw-r--r--ddl/out/LambdaCube.Mesh.swift2
-rw-r--r--ddl/out/LambdaCube.Mesh2.hpp2
-rw-r--r--ddl/out/LambdaCube.PipelineSchema.cpp2
-rw-r--r--ddl/out/LambdaCube.PipelineSchema.cs126
-rw-r--r--ddl/out/LambdaCube.PipelineSchema.hpp2
-rw-r--r--ddl/out/LambdaCube.PipelineSchema.hs2
-rw-r--r--ddl/out/LambdaCube.PipelineSchema.purs2
-rw-r--r--ddl/out/LambdaCube.PipelineSchema.swift2
-rw-r--r--ddl/out/LambdaCube.PipelineSchema2.hpp2
-rw-r--r--ddl/out/LambdaCube.TypeInfo.cpp2
-rw-r--r--ddl/out/LambdaCube.TypeInfo.cs82
-rw-r--r--ddl/out/LambdaCube.TypeInfo.hpp2
-rw-r--r--ddl/out/LambdaCube.TypeInfo.hs2
-rw-r--r--ddl/out/LambdaCube.TypeInfo.purs2
-rw-r--r--ddl/out/LambdaCube.TypeInfo.swift2
-rw-r--r--ddl/out/LambdaCube.TypeInfo2.hpp2
-rw-r--r--ddl/out/TestData.cpp2
-rw-r--r--ddl/out/TestData.cs158
-rw-r--r--ddl/out/TestData.hpp2
-rw-r--r--ddl/out/TestData.hs2
-rw-r--r--ddl/out/TestData.purs2
-rw-r--r--ddl/out/TestData.swift2
-rw-r--r--ddl/out/TestData2.hpp2
-rw-r--r--ddl/out/java/LambdaCube/IR/AccumulationContext.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/ArrayValue.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/Backend.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/BlendEquation.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/Blending.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/BlendingFactor.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/ClearImage.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/ColorArity.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/Command.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/ComparisonFunction.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/CullMode.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/EdgeMode.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/FetchPrimitive.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/Filter.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/FragmentOperation.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/FrontFace.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/ImageRef.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/ImageSemantic.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/InputType.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/JSON.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/LogicOperation.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/MipMap.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/OutputPrimitive.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/Parameter.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/Pipeline.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/PointSize.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/PointSpriteCoordOrigin.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/PolygonMode.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/PolygonOffset.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/Program.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/ProvokingVertex.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/RasterContext.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/RenderTarget.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/SamplerDescriptor.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/Slot.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/StencilOperation.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/StencilOps.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/StencilTest.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/StencilTests.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/StreamData.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/TargetItem.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/TextureDataType.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/TextureDescriptor.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/TextureType.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/Value.java2
-rw-r--r--ddl/out/java/LambdaCube/Mesh/JSON.java2
-rw-r--r--ddl/out/java/LambdaCube/Mesh/Mesh.java2
-rw-r--r--ddl/out/java/LambdaCube/Mesh/MeshAttribute.java2
-rw-r--r--ddl/out/java/LambdaCube/Mesh/MeshPrimitive.java2
-rw-r--r--ddl/out/java/LambdaCube/PipelineSchema/JSON.java2
-rw-r--r--ddl/out/java/LambdaCube/PipelineSchema/ObjectArraySchema.java2
-rw-r--r--ddl/out/java/LambdaCube/PipelineSchema/PipelineSchema.java2
-rw-r--r--ddl/out/java/LambdaCube/PipelineSchema/StreamType.java2
-rw-r--r--ddl/out/java/LambdaCube/TypeInfo/CompileResult.java2
-rw-r--r--ddl/out/java/LambdaCube/TypeInfo/JSON.java2
-rw-r--r--ddl/out/java/LambdaCube/TypeInfo/Range.java2
-rw-r--r--ddl/out/java/LambdaCube/TypeInfo/TypeInfo.java2
-rw-r--r--ddl/out/java/TestData/ClientInfo.java2
-rw-r--r--ddl/out/java/TestData/Frame.java2
-rw-r--r--ddl/out/java/TestData/FrameResult.java2
-rw-r--r--ddl/out/java/TestData/JSON.java2
-rw-r--r--ddl/out/java/TestData/PipelineInfo.java2
-rw-r--r--ddl/out/java/TestData/RenderJob.java2
-rw-r--r--ddl/out/java/TestData/RenderJobResult.java2
-rw-r--r--ddl/out/java/TestData/Scene.java2
-rw-r--r--ddl/templates/data.cs.ede23
102 files changed, 1118 insertions, 1565 deletions
diff --git a/ddl/lib/LambdaCube.IR.RT.cs b/ddl/lib/LambdaCube.IR.RT.cs
new file mode 100644
index 0000000..4da3733
--- /dev/null
+++ b/ddl/lib/LambdaCube.IR.RT.cs
@@ -0,0 +1,32 @@
1using System.Collections.Generic;
2
3
4namespace LambdaCube.IR {
5
6 public struct Maybe<T>
7 {
8 public bool valid;
9 public T data;
10 }
11
12 public struct V2<T>
13 {
14 public T x;
15 public T y;
16 }
17
18 public struct V3<T>
19 {
20 public T x;
21 public T y;
22 public T z;
23 }
24
25 public struct V4<T>
26 {
27 public T x;
28 public T y;
29 public T z;
30 public T w;
31 }
32} \ No newline at end of file
diff --git a/ddl/out/LambdaCube.IR.cpp b/ddl/out/LambdaCube.IR.cpp
index 380dd5d..17c781c 100644
--- a/ddl/out/LambdaCube.IR.cpp
+++ b/ddl/out/LambdaCube.IR.cpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4#include "LambdaCube.IR.hpp" 4#include "LambdaCube.IR.hpp"
5template<> json toJSON<std::shared_ptr<ArrayValue>>(std::shared_ptr<ArrayValue> &v) { 5template<> json toJSON<std::shared_ptr<ArrayValue>>(std::shared_ptr<ArrayValue> &v) {
diff --git a/ddl/out/LambdaCube.IR.cs b/ddl/out/LambdaCube.IR.cs
index 90e9a7f..cc9469d 100644
--- a/ddl/out/LambdaCube.IR.cs
+++ b/ddl/out/LambdaCube.IR.cs
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4using System; 4using System;
5using System.Linq; 5using System.Linq;
@@ -1348,381 +1348,228 @@ namespace LambdaCube.IR {
1348 1348
1349 case Type.ArrayValue: { 1349 case Type.ArrayValue: {
1350 string tag = (string)obj["tag"]; 1350 string tag = (string)obj["tag"];
1351 ArrayValue.Tag tagType; 1351 switch (tag) {
1352 if (tag == "VBoolArray") { 1352 case "VBoolArray": {
1353 tagType = ArrayValue.Tag.VBoolArray; 1353 data.VBoolArray tv = new data.VBoolArray();
1354 data.VBoolArray tv = new data.VBoolArray(); 1354 tv._0 = (List<bool>)fromJSON(Type.Array_Bool,obj["arg0"]);
1355 tv._0 = (List<bool>)fromJSON(Type.Array_Bool,obj["arg0"]); 1355 return tv;
1356 return tv; 1356 }
1357 } 1357 case "VIntArray": {
1358 else if (tag == "VIntArray") { 1358 data.VIntArray tv = new data.VIntArray();
1359 tagType = ArrayValue.Tag.VIntArray; 1359 tv._0 = (List<int>)fromJSON(Type.Array_Int32,obj["arg0"]);
1360 data.VIntArray tv = new data.VIntArray(); 1360 return tv;
1361 tv._0 = (List<int>)fromJSON(Type.Array_Int32,obj["arg0"]); 1361 }
1362 return tv; 1362 case "VWordArray": {
1363 } 1363 data.VWordArray tv = new data.VWordArray();
1364 else if (tag == "VWordArray") { 1364 tv._0 = (List<uint>)fromJSON(Type.Array_Word32,obj["arg0"]);
1365 tagType = ArrayValue.Tag.VWordArray; 1365 return tv;
1366 data.VWordArray tv = new data.VWordArray(); 1366 }
1367 tv._0 = (List<uint>)fromJSON(Type.Array_Word32,obj["arg0"]); 1367 case "VFloatArray": {
1368 return tv; 1368 data.VFloatArray tv = new data.VFloatArray();
1369 } 1369 tv._0 = (List<float>)fromJSON(Type.Array_Float,obj["arg0"]);
1370 else if (tag == "VFloatArray") { 1370 return tv;
1371 tagType = ArrayValue.Tag.VFloatArray; 1371 }
1372 data.VFloatArray tv = new data.VFloatArray(); 1372 default: throw new Exception("unknown constructor: " + tag);
1373 tv._0 = (List<float>)fromJSON(Type.Array_Float,obj["arg0"]); 1373 }
1374 return tv;
1375 }
1376 else throw new Exception("unknown constructor: " + tag);
1377 ArrayValue o = new ArrayValue();
1378 o.tag = tagType;
1379 return o;
1380 } 1374 }
1381 case Type.Value: { 1375 case Type.Value: {
1382 string tag = (string)obj["tag"]; 1376 string tag = (string)obj["tag"];
1383 Value.Tag tagType; 1377 switch (tag) {
1384 if (tag == "VBool") { 1378 case "VBool": {
1385 tagType = Value.Tag.VBool; 1379 data.VBool tv = new data.VBool();
1386 data.VBool tv = new data.VBool(); 1380 tv._0 = (bool)fromJSON(Type.Bool,obj["arg0"]);
1387 tv._0 = (bool)fromJSON(Type.Bool,obj["arg0"]); 1381 return tv;
1388 return tv; 1382 }
1389 } 1383 case "VV2B": {
1390 else if (tag == "VV2B") { 1384 data.VV2B tv = new data.VV2B();
1391 tagType = Value.Tag.VV2B; 1385 tv._0 = (V2<bool>)fromJSON(Type.V2_Bool,obj["arg0"]);
1392 data.VV2B tv = new data.VV2B(); 1386 return tv;
1393 tv._0 = (V2<bool>)fromJSON(Type.V2_Bool,obj["arg0"]); 1387 }
1394 return tv; 1388 case "VV3B": {
1395 } 1389 data.VV3B tv = new data.VV3B();
1396 else if (tag == "VV3B") { 1390 tv._0 = (V3<bool>)fromJSON(Type.V3_Bool,obj["arg0"]);
1397 tagType = Value.Tag.VV3B; 1391 return tv;
1398 data.VV3B tv = new data.VV3B(); 1392 }
1399 tv._0 = (V3<bool>)fromJSON(Type.V3_Bool,obj["arg0"]); 1393 case "VV4B": {
1400 return tv; 1394 data.VV4B tv = new data.VV4B();
1401 } 1395 tv._0 = (V4<bool>)fromJSON(Type.V4_Bool,obj["arg0"]);
1402 else if (tag == "VV4B") { 1396 return tv;
1403 tagType = Value.Tag.VV4B; 1397 }
1404 data.VV4B tv = new data.VV4B(); 1398 case "VWord": {
1405 tv._0 = (V4<bool>)fromJSON(Type.V4_Bool,obj["arg0"]); 1399 data.VWord tv = new data.VWord();
1406 return tv; 1400 tv._0 = (uint)fromJSON(Type.Word32,obj["arg0"]);
1407 } 1401 return tv;
1408 else if (tag == "VWord") { 1402 }
1409 tagType = Value.Tag.VWord; 1403 case "VV2U": {
1410 data.VWord tv = new data.VWord(); 1404 data.VV2U tv = new data.VV2U();
1411 tv._0 = (uint)fromJSON(Type.Word32,obj["arg0"]); 1405 tv._0 = (V2<uint>)fromJSON(Type.V2_Word,obj["arg0"]);
1412 return tv; 1406 return tv;
1413 } 1407 }
1414 else if (tag == "VV2U") { 1408 case "VV3U": {
1415 tagType = Value.Tag.VV2U; 1409 data.VV3U tv = new data.VV3U();
1416 data.VV2U tv = new data.VV2U(); 1410 tv._0 = (V3<uint>)fromJSON(Type.V3_Word,obj["arg0"]);
1417 tv._0 = (V2<uint>)fromJSON(Type.V2_Word,obj["arg0"]); 1411 return tv;
1418 return tv; 1412 }
1419 } 1413 case "VV4U": {
1420 else if (tag == "VV3U") { 1414 data.VV4U tv = new data.VV4U();
1421 tagType = Value.Tag.VV3U; 1415 tv._0 = (V4<uint>)fromJSON(Type.V4_Word,obj["arg0"]);
1422 data.VV3U tv = new data.VV3U(); 1416 return tv;
1423 tv._0 = (V3<uint>)fromJSON(Type.V3_Word,obj["arg0"]); 1417 }
1424 return tv; 1418 case "VInt": {
1425 } 1419 data.VInt tv = new data.VInt();
1426 else if (tag == "VV4U") { 1420 tv._0 = (int)fromJSON(Type.Int32,obj["arg0"]);
1427 tagType = Value.Tag.VV4U; 1421 return tv;
1428 data.VV4U tv = new data.VV4U(); 1422 }
1429 tv._0 = (V4<uint>)fromJSON(Type.V4_Word,obj["arg0"]); 1423 case "VV2I": {
1430 return tv; 1424 data.VV2I tv = new data.VV2I();
1431 } 1425 tv._0 = (V2<int>)fromJSON(Type.V2_Int,obj["arg0"]);
1432 else if (tag == "VInt") { 1426 return tv;
1433 tagType = Value.Tag.VInt; 1427 }
1434 data.VInt tv = new data.VInt(); 1428 case "VV3I": {
1435 tv._0 = (int)fromJSON(Type.Int32,obj["arg0"]); 1429 data.VV3I tv = new data.VV3I();
1436 return tv; 1430 tv._0 = (V3<int>)fromJSON(Type.V3_Int,obj["arg0"]);
1437 } 1431 return tv;
1438 else if (tag == "VV2I") { 1432 }
1439 tagType = Value.Tag.VV2I; 1433 case "VV4I": {
1440 data.VV2I tv = new data.VV2I(); 1434 data.VV4I tv = new data.VV4I();
1441 tv._0 = (V2<int>)fromJSON(Type.V2_Int,obj["arg0"]); 1435 tv._0 = (V4<int>)fromJSON(Type.V4_Int,obj["arg0"]);
1442 return tv; 1436 return tv;
1443 } 1437 }
1444 else if (tag == "VV3I") { 1438 case "VFloat": {
1445 tagType = Value.Tag.VV3I; 1439 data.VFloat tv = new data.VFloat();
1446 data.VV3I tv = new data.VV3I(); 1440 tv._0 = (float)fromJSON(Type.Float,obj["arg0"]);
1447 tv._0 = (V3<int>)fromJSON(Type.V3_Int,obj["arg0"]); 1441 return tv;
1448 return tv; 1442 }
1449 } 1443 case "VV2F": {
1450 else if (tag == "VV4I") { 1444 data.VV2F tv = new data.VV2F();
1451 tagType = Value.Tag.VV4I; 1445 tv._0 = (V2<float>)fromJSON(Type.V2_Float,obj["arg0"]);
1452 data.VV4I tv = new data.VV4I(); 1446 return tv;
1453 tv._0 = (V4<int>)fromJSON(Type.V4_Int,obj["arg0"]); 1447 }
1454 return tv; 1448 case "VV3F": {
1455 } 1449 data.VV3F tv = new data.VV3F();
1456 else if (tag == "VFloat") { 1450 tv._0 = (V3<float>)fromJSON(Type.V3_Float,obj["arg0"]);
1457 tagType = Value.Tag.VFloat; 1451 return tv;
1458 data.VFloat tv = new data.VFloat(); 1452 }
1459 tv._0 = (float)fromJSON(Type.Float,obj["arg0"]); 1453 case "VV4F": {
1460 return tv; 1454 data.VV4F tv = new data.VV4F();
1461 } 1455 tv._0 = (V4<float>)fromJSON(Type.V4_Float,obj["arg0"]);
1462 else if (tag == "VV2F") { 1456 return tv;
1463 tagType = Value.Tag.VV2F; 1457 }
1464 data.VV2F tv = new data.VV2F(); 1458 case "VM22F": {
1465 tv._0 = (V2<float>)fromJSON(Type.V2_Float,obj["arg0"]); 1459 data.VM22F tv = new data.VM22F();
1466 return tv; 1460 tv._0 = (V2<V2<float>>)fromJSON(Type.V2_V2_Float,obj["arg0"]);
1467 } 1461 return tv;
1468 else if (tag == "VV3F") { 1462 }
1469 tagType = Value.Tag.VV3F; 1463 case "VM23F": {
1470 data.VV3F tv = new data.VV3F(); 1464 data.VM23F tv = new data.VM23F();
1471 tv._0 = (V3<float>)fromJSON(Type.V3_Float,obj["arg0"]); 1465 tv._0 = (V3<V2<float>>)fromJSON(Type.V3_V2_Float,obj["arg0"]);
1472 return tv; 1466 return tv;
1473 } 1467 }
1474 else if (tag == "VV4F") { 1468 case "VM24F": {
1475 tagType = Value.Tag.VV4F; 1469 data.VM24F tv = new data.VM24F();
1476 data.VV4F tv = new data.VV4F(); 1470 tv._0 = (V4<V2<float>>)fromJSON(Type.V4_V2_Float,obj["arg0"]);
1477 tv._0 = (V4<float>)fromJSON(Type.V4_Float,obj["arg0"]); 1471 return tv;
1478 return tv; 1472 }
1479 } 1473 case "VM32F": {
1480 else if (tag == "VM22F") { 1474 data.VM32F tv = new data.VM32F();
1481 tagType = Value.Tag.VM22F; 1475 tv._0 = (V2<V3<float>>)fromJSON(Type.V2_V3_Float,obj["arg0"]);
1482 data.VM22F tv = new data.VM22F(); 1476 return tv;
1483 tv._0 = (V2<V2<float>>)fromJSON(Type.V2_V2_Float,obj["arg0"]); 1477 }
1484 return tv; 1478 case "VM33F": {
1485 } 1479 data.VM33F tv = new data.VM33F();
1486 else if (tag == "VM23F") { 1480 tv._0 = (V3<V3<float>>)fromJSON(Type.V3_V3_Float,obj["arg0"]);
1487 tagType = Value.Tag.VM23F; 1481 return tv;
1488 data.VM23F tv = new data.VM23F(); 1482 }
1489 tv._0 = (V3<V2<float>>)fromJSON(Type.V3_V2_Float,obj["arg0"]); 1483 case "VM34F": {
1490 return tv; 1484 data.VM34F tv = new data.VM34F();
1491 } 1485 tv._0 = (V4<V3<float>>)fromJSON(Type.V4_V3_Float,obj["arg0"]);
1492 else if (tag == "VM24F") { 1486 return tv;
1493 tagType = Value.Tag.VM24F; 1487 }
1494 data.VM24F tv = new data.VM24F(); 1488 case "VM42F": {
1495 tv._0 = (V4<V2<float>>)fromJSON(Type.V4_V2_Float,obj["arg0"]); 1489 data.VM42F tv = new data.VM42F();
1496 return tv; 1490 tv._0 = (V2<V4<float>>)fromJSON(Type.V2_V4_Float,obj["arg0"]);
1497 } 1491 return tv;
1498 else if (tag == "VM32F") { 1492 }
1499 tagType = Value.Tag.VM32F; 1493 case "VM43F": {
1500 data.VM32F tv = new data.VM32F(); 1494 data.VM43F tv = new data.VM43F();
1501 tv._0 = (V2<V3<float>>)fromJSON(Type.V2_V3_Float,obj["arg0"]); 1495 tv._0 = (V3<V4<float>>)fromJSON(Type.V3_V4_Float,obj["arg0"]);
1502 return tv; 1496 return tv;
1503 } 1497 }
1504 else if (tag == "VM33F") { 1498 case "VM44F": {
1505 tagType = Value.Tag.VM33F; 1499 data.VM44F tv = new data.VM44F();
1506 data.VM33F tv = new data.VM33F(); 1500 tv._0 = (V4<V4<float>>)fromJSON(Type.V4_V4_Float,obj["arg0"]);
1507 tv._0 = (V3<V3<float>>)fromJSON(Type.V3_V3_Float,obj["arg0"]); 1501 return tv;
1508 return tv; 1502 }
1509 } 1503 default: throw new Exception("unknown constructor: " + tag);
1510 else if (tag == "VM34F") { 1504 }
1511 tagType = Value.Tag.VM34F;
1512 data.VM34F tv = new data.VM34F();
1513 tv._0 = (V4<V3<float>>)fromJSON(Type.V4_V3_Float,obj["arg0"]);
1514 return tv;
1515 }
1516 else if (tag == "VM42F") {
1517 tagType = Value.Tag.VM42F;
1518 data.VM42F tv = new data.VM42F();
1519 tv._0 = (V2<V4<float>>)fromJSON(Type.V2_V4_Float,obj["arg0"]);
1520 return tv;
1521 }
1522 else if (tag == "VM43F") {
1523 tagType = Value.Tag.VM43F;
1524 data.VM43F tv = new data.VM43F();
1525 tv._0 = (V3<V4<float>>)fromJSON(Type.V3_V4_Float,obj["arg0"]);
1526 return tv;
1527 }
1528 else if (tag == "VM44F") {
1529 tagType = Value.Tag.VM44F;
1530 data.VM44F tv = new data.VM44F();
1531 tv._0 = (V4<V4<float>>)fromJSON(Type.V4_V4_Float,obj["arg0"]);
1532 return tv;
1533 }
1534 else throw new Exception("unknown constructor: " + tag);
1535 Value o = new Value();
1536 o.tag = tagType;
1537 return o;
1538 } 1505 }
1539 case Type.InputType: { 1506 case Type.InputType: {
1540 string tag = (string)obj["tag"]; 1507 string tag = (string)obj["tag"];
1541 InputType.Tag tagType; 1508 InputType.Tag tagType;
1542 if (tag == "Bool") { 1509 switch (tag) {
1543 tagType = InputType.Tag.Bool; 1510 case "Bool": tagType = InputType.Tag.Bool; break;
1544 } 1511 case "V2B": tagType = InputType.Tag.V2B; break;
1545 else if (tag == "V2B") { 1512 case "V3B": tagType = InputType.Tag.V3B; break;
1546 tagType = InputType.Tag.V2B; 1513 case "V4B": tagType = InputType.Tag.V4B; break;
1547 } 1514 case "Word": tagType = InputType.Tag.Word; break;
1548 else if (tag == "V3B") { 1515 case "V2U": tagType = InputType.Tag.V2U; break;
1549 tagType = InputType.Tag.V3B; 1516 case "V3U": tagType = InputType.Tag.V3U; break;
1550 } 1517 case "V4U": tagType = InputType.Tag.V4U; break;
1551 else if (tag == "V4B") { 1518 case "Int": tagType = InputType.Tag.Int; break;
1552 tagType = InputType.Tag.V4B; 1519 case "V2I": tagType = InputType.Tag.V2I; break;
1553 } 1520 case "V3I": tagType = InputType.Tag.V3I; break;
1554 else if (tag == "Word") { 1521 case "V4I": tagType = InputType.Tag.V4I; break;
1555 tagType = InputType.Tag.Word; 1522 case "Float": tagType = InputType.Tag.Float; break;
1556 } 1523 case "V2F": tagType = InputType.Tag.V2F; break;
1557 else if (tag == "V2U") { 1524 case "V3F": tagType = InputType.Tag.V3F; break;
1558 tagType = InputType.Tag.V2U; 1525 case "V4F": tagType = InputType.Tag.V4F; break;
1559 } 1526 case "M22F": tagType = InputType.Tag.M22F; break;
1560 else if (tag == "V3U") { 1527 case "M23F": tagType = InputType.Tag.M23F; break;
1561 tagType = InputType.Tag.V3U; 1528 case "M24F": tagType = InputType.Tag.M24F; break;
1562 } 1529 case "M32F": tagType = InputType.Tag.M32F; break;
1563 else if (tag == "V4U") { 1530 case "M33F": tagType = InputType.Tag.M33F; break;
1564 tagType = InputType.Tag.V4U; 1531 case "M34F": tagType = InputType.Tag.M34F; break;
1565 } 1532 case "M42F": tagType = InputType.Tag.M42F; break;
1566 else if (tag == "Int") { 1533 case "M43F": tagType = InputType.Tag.M43F; break;
1567 tagType = InputType.Tag.Int; 1534 case "M44F": tagType = InputType.Tag.M44F; break;
1568 } 1535 case "STexture1D": tagType = InputType.Tag.STexture1D; break;
1569 else if (tag == "V2I") { 1536 case "STexture2D": tagType = InputType.Tag.STexture2D; break;
1570 tagType = InputType.Tag.V2I; 1537 case "STextureCube": tagType = InputType.Tag.STextureCube; break;
1571 } 1538 case "STexture1DArray": tagType = InputType.Tag.STexture1DArray; break;
1572 else if (tag == "V3I") { 1539 case "STexture2DArray": tagType = InputType.Tag.STexture2DArray; break;
1573 tagType = InputType.Tag.V3I; 1540 case "STexture2DRect": tagType = InputType.Tag.STexture2DRect; break;
1574 } 1541 case "FTexture1D": tagType = InputType.Tag.FTexture1D; break;
1575 else if (tag == "V4I") { 1542 case "FTexture2D": tagType = InputType.Tag.FTexture2D; break;
1576 tagType = InputType.Tag.V4I; 1543 case "FTexture3D": tagType = InputType.Tag.FTexture3D; break;
1577 } 1544 case "FTextureCube": tagType = InputType.Tag.FTextureCube; break;
1578 else if (tag == "Float") { 1545 case "FTexture1DArray": tagType = InputType.Tag.FTexture1DArray; break;
1579 tagType = InputType.Tag.Float; 1546 case "FTexture2DArray": tagType = InputType.Tag.FTexture2DArray; break;
1580 } 1547 case "FTexture2DMS": tagType = InputType.Tag.FTexture2DMS; break;
1581 else if (tag == "V2F") { 1548 case "FTexture2DMSArray": tagType = InputType.Tag.FTexture2DMSArray; break;
1582 tagType = InputType.Tag.V2F; 1549 case "FTextureBuffer": tagType = InputType.Tag.FTextureBuffer; break;
1583 } 1550 case "FTexture2DRect": tagType = InputType.Tag.FTexture2DRect; break;
1584 else if (tag == "V3F") { 1551 case "ITexture1D": tagType = InputType.Tag.ITexture1D; break;
1585 tagType = InputType.Tag.V3F; 1552 case "ITexture2D": tagType = InputType.Tag.ITexture2D; break;
1586 } 1553 case "ITexture3D": tagType = InputType.Tag.ITexture3D; break;
1587 else if (tag == "V4F") { 1554 case "ITextureCube": tagType = InputType.Tag.ITextureCube; break;
1588 tagType = InputType.Tag.V4F; 1555 case "ITexture1DArray": tagType = InputType.Tag.ITexture1DArray; break;
1589 } 1556 case "ITexture2DArray": tagType = InputType.Tag.ITexture2DArray; break;
1590 else if (tag == "M22F") { 1557 case "ITexture2DMS": tagType = InputType.Tag.ITexture2DMS; break;
1591 tagType = InputType.Tag.M22F; 1558 case "ITexture2DMSArray": tagType = InputType.Tag.ITexture2DMSArray; break;
1592 } 1559 case "ITextureBuffer": tagType = InputType.Tag.ITextureBuffer; break;
1593 else if (tag == "M23F") { 1560 case "ITexture2DRect": tagType = InputType.Tag.ITexture2DRect; break;
1594 tagType = InputType.Tag.M23F; 1561 case "UTexture1D": tagType = InputType.Tag.UTexture1D; break;
1595 } 1562 case "UTexture2D": tagType = InputType.Tag.UTexture2D; break;
1596 else if (tag == "M24F") { 1563 case "UTexture3D": tagType = InputType.Tag.UTexture3D; break;
1597 tagType = InputType.Tag.M24F; 1564 case "UTextureCube": tagType = InputType.Tag.UTextureCube; break;
1598 } 1565 case "UTexture1DArray": tagType = InputType.Tag.UTexture1DArray; break;
1599 else if (tag == "M32F") { 1566 case "UTexture2DArray": tagType = InputType.Tag.UTexture2DArray; break;
1600 tagType = InputType.Tag.M32F; 1567 case "UTexture2DMS": tagType = InputType.Tag.UTexture2DMS; break;
1601 } 1568 case "UTexture2DMSArray": tagType = InputType.Tag.UTexture2DMSArray; break;
1602 else if (tag == "M33F") { 1569 case "UTextureBuffer": tagType = InputType.Tag.UTextureBuffer; break;
1603 tagType = InputType.Tag.M33F; 1570 case "UTexture2DRect": tagType = InputType.Tag.UTexture2DRect; break;
1604 } 1571 default: throw new Exception("unknown constructor: " + tag);
1605 else if (tag == "M34F") {
1606 tagType = InputType.Tag.M34F;
1607 }
1608 else if (tag == "M42F") {
1609 tagType = InputType.Tag.M42F;
1610 }
1611 else if (tag == "M43F") {
1612 tagType = InputType.Tag.M43F;
1613 }
1614 else if (tag == "M44F") {
1615 tagType = InputType.Tag.M44F;
1616 }
1617 else if (tag == "STexture1D") {
1618 tagType = InputType.Tag.STexture1D;
1619 }
1620 else if (tag == "STexture2D") {
1621 tagType = InputType.Tag.STexture2D;
1622 }
1623 else if (tag == "STextureCube") {
1624 tagType = InputType.Tag.STextureCube;
1625 }
1626 else if (tag == "STexture1DArray") {
1627 tagType = InputType.Tag.STexture1DArray;
1628 }
1629 else if (tag == "STexture2DArray") {
1630 tagType = InputType.Tag.STexture2DArray;
1631 }
1632 else if (tag == "STexture2DRect") {
1633 tagType = InputType.Tag.STexture2DRect;
1634 }
1635 else if (tag == "FTexture1D") {
1636 tagType = InputType.Tag.FTexture1D;
1637 }
1638 else if (tag == "FTexture2D") {
1639 tagType = InputType.Tag.FTexture2D;
1640 }
1641 else if (tag == "FTexture3D") {
1642 tagType = InputType.Tag.FTexture3D;
1643 }
1644 else if (tag == "FTextureCube") {
1645 tagType = InputType.Tag.FTextureCube;
1646 }
1647 else if (tag == "FTexture1DArray") {
1648 tagType = InputType.Tag.FTexture1DArray;
1649 }
1650 else if (tag == "FTexture2DArray") {
1651 tagType = InputType.Tag.FTexture2DArray;
1652 }
1653 else if (tag == "FTexture2DMS") {
1654 tagType = InputType.Tag.FTexture2DMS;
1655 }
1656 else if (tag == "FTexture2DMSArray") {
1657 tagType = InputType.Tag.FTexture2DMSArray;
1658 }
1659 else if (tag == "FTextureBuffer") {
1660 tagType = InputType.Tag.FTextureBuffer;
1661 }
1662 else if (tag == "FTexture2DRect") {
1663 tagType = InputType.Tag.FTexture2DRect;
1664 }
1665 else if (tag == "ITexture1D") {
1666 tagType = InputType.Tag.ITexture1D;
1667 }
1668 else if (tag == "ITexture2D") {
1669 tagType = InputType.Tag.ITexture2D;
1670 }
1671 else if (tag == "ITexture3D") {
1672 tagType = InputType.Tag.ITexture3D;
1673 }
1674 else if (tag == "ITextureCube") {
1675 tagType = InputType.Tag.ITextureCube;
1676 } 1572 }
1677 else if (tag == "ITexture1DArray") {
1678 tagType = InputType.Tag.ITexture1DArray;
1679 }
1680 else if (tag == "ITexture2DArray") {
1681 tagType = InputType.Tag.ITexture2DArray;
1682 }
1683 else if (tag == "ITexture2DMS") {
1684 tagType = InputType.Tag.ITexture2DMS;
1685 }
1686 else if (tag == "ITexture2DMSArray") {
1687 tagType = InputType.Tag.ITexture2DMSArray;
1688 }
1689 else if (tag == "ITextureBuffer") {
1690 tagType = InputType.Tag.ITextureBuffer;
1691 }
1692 else if (tag == "ITexture2DRect") {
1693 tagType = InputType.Tag.ITexture2DRect;
1694 }
1695 else if (tag == "UTexture1D") {
1696 tagType = InputType.Tag.UTexture1D;
1697 }
1698 else if (tag == "UTexture2D") {
1699 tagType = InputType.Tag.UTexture2D;
1700 }
1701 else if (tag == "UTexture3D") {
1702 tagType = InputType.Tag.UTexture3D;
1703 }
1704 else if (tag == "UTextureCube") {
1705 tagType = InputType.Tag.UTextureCube;
1706 }
1707 else if (tag == "UTexture1DArray") {
1708 tagType = InputType.Tag.UTexture1DArray;
1709 }
1710 else if (tag == "UTexture2DArray") {
1711 tagType = InputType.Tag.UTexture2DArray;
1712 }
1713 else if (tag == "UTexture2DMS") {
1714 tagType = InputType.Tag.UTexture2DMS;
1715 }
1716 else if (tag == "UTexture2DMSArray") {
1717 tagType = InputType.Tag.UTexture2DMSArray;
1718 }
1719 else if (tag == "UTextureBuffer") {
1720 tagType = InputType.Tag.UTextureBuffer;
1721 }
1722 else if (tag == "UTexture2DRect") {
1723 tagType = InputType.Tag.UTexture2DRect;
1724 }
1725 else throw new Exception("unknown constructor: " + tag);
1726 InputType o = new InputType(); 1573 InputType o = new InputType();
1727 o.tag = tagType; 1574 o.tag = tagType;
1728 return o; 1575 return o;
@@ -1730,13 +1577,11 @@ namespace LambdaCube.IR {
1730 case Type.PointSpriteCoordOrigin: { 1577 case Type.PointSpriteCoordOrigin: {
1731 string tag = (string)obj["tag"]; 1578 string tag = (string)obj["tag"];
1732 PointSpriteCoordOrigin.Tag tagType; 1579 PointSpriteCoordOrigin.Tag tagType;
1733 if (tag == "LowerLeft") { 1580 switch (tag) {
1734 tagType = PointSpriteCoordOrigin.Tag.LowerLeft; 1581 case "LowerLeft": tagType = PointSpriteCoordOrigin.Tag.LowerLeft; break;
1582 case "UpperLeft": tagType = PointSpriteCoordOrigin.Tag.UpperLeft; break;
1583 default: throw new Exception("unknown constructor: " + tag);
1735 } 1584 }
1736 else if (tag == "UpperLeft") {
1737 tagType = PointSpriteCoordOrigin.Tag.UpperLeft;
1738 }
1739 else throw new Exception("unknown constructor: " + tag);
1740 PointSpriteCoordOrigin o = new PointSpriteCoordOrigin(); 1585 PointSpriteCoordOrigin o = new PointSpriteCoordOrigin();
1741 o.tag = tagType; 1586 o.tag = tagType;
1742 return o; 1587 return o;
@@ -1744,16 +1589,15 @@ namespace LambdaCube.IR {
1744 case Type.PointSize: { 1589 case Type.PointSize: {
1745 string tag = (string)obj["tag"]; 1590 string tag = (string)obj["tag"];
1746 PointSize.Tag tagType; 1591 PointSize.Tag tagType;
1747 if (tag == "PointSize") { 1592 switch (tag) {
1748 tagType = PointSize.Tag.PointSize; 1593 case "PointSize": {
1749 data.PointSize tv = new data.PointSize(); 1594 data.PointSize tv = new data.PointSize();
1750 tv._0 = (float)fromJSON(Type.Float,obj["arg0"]); 1595 tv._0 = (float)fromJSON(Type.Float,obj["arg0"]);
1751 return tv; 1596 return tv;
1752 } 1597 }
1753 else if (tag == "ProgramPointSize") { 1598 case "ProgramPointSize": tagType = PointSize.Tag.ProgramPointSize; break;
1754 tagType = PointSize.Tag.ProgramPointSize; 1599 default: throw new Exception("unknown constructor: " + tag);
1755 } 1600 }
1756 else throw new Exception("unknown constructor: " + tag);
1757 PointSize o = new PointSize(); 1601 PointSize o = new PointSize();
1758 o.tag = tagType; 1602 o.tag = tagType;
1759 return o; 1603 return o;
@@ -1761,17 +1605,16 @@ namespace LambdaCube.IR {
1761 case Type.PolygonOffset: { 1605 case Type.PolygonOffset: {
1762 string tag = (string)obj["tag"]; 1606 string tag = (string)obj["tag"];
1763 PolygonOffset.Tag tagType; 1607 PolygonOffset.Tag tagType;
1764 if (tag == "NoOffset") { 1608 switch (tag) {
1765 tagType = PolygonOffset.Tag.NoOffset; 1609 case "NoOffset": tagType = PolygonOffset.Tag.NoOffset; break;
1766 } 1610 case "Offset": {
1767 else if (tag == "Offset") { 1611 data.Offset tv = new data.Offset();
1768 tagType = PolygonOffset.Tag.Offset; 1612 tv._0 = (float)fromJSON(Type.Float,obj["arg0"]);
1769 data.Offset tv = new data.Offset(); 1613 tv._1 = (float)fromJSON(Type.Float,obj["arg1"]);
1770 tv._0 = (float)fromJSON(Type.Float,obj["arg0"]); 1614 return tv;
1771 tv._1 = (float)fromJSON(Type.Float,obj["arg1"]); 1615 }
1772 return tv; 1616 default: throw new Exception("unknown constructor: " + tag);
1773 } 1617 }
1774 else throw new Exception("unknown constructor: " + tag);
1775 PolygonOffset o = new PolygonOffset(); 1618 PolygonOffset o = new PolygonOffset();
1776 o.tag = tagType; 1619 o.tag = tagType;
1777 return o; 1620 return o;
@@ -1779,13 +1622,11 @@ namespace LambdaCube.IR {
1779 case Type.FrontFace: { 1622 case Type.FrontFace: {
1780 string tag = (string)obj["tag"]; 1623 string tag = (string)obj["tag"];
1781 FrontFace.Tag tagType; 1624 FrontFace.Tag tagType;
1782 if (tag == "CCW") { 1625 switch (tag) {
1783 tagType = FrontFace.Tag.CCW; 1626 case "CCW": tagType = FrontFace.Tag.CCW; break;
1627 case "CW": tagType = FrontFace.Tag.CW; break;
1628 default: throw new Exception("unknown constructor: " + tag);
1784 } 1629 }
1785 else if (tag == "CW") {
1786 tagType = FrontFace.Tag.CW;
1787 }
1788 else throw new Exception("unknown constructor: " + tag);
1789 FrontFace o = new FrontFace(); 1630 FrontFace o = new FrontFace();
1790 o.tag = tagType; 1631 o.tag = tagType;
1791 return o; 1632 return o;
@@ -1793,22 +1634,20 @@ namespace LambdaCube.IR {
1793 case Type.PolygonMode: { 1634 case Type.PolygonMode: {
1794 string tag = (string)obj["tag"]; 1635 string tag = (string)obj["tag"];
1795 PolygonMode.Tag tagType; 1636 PolygonMode.Tag tagType;
1796 if (tag == "PolygonPoint") { 1637 switch (tag) {
1797 tagType = PolygonMode.Tag.PolygonPoint; 1638 case "PolygonPoint": {
1798 data.PolygonPoint tv = new data.PolygonPoint(); 1639 data.PolygonPoint tv = new data.PolygonPoint();
1799 tv._0 = (global::LambdaCube.IR.PointSize)fromJSON(Type.PointSize,obj["arg0"]); 1640 tv._0 = (global::LambdaCube.IR.PointSize)fromJSON(Type.PointSize,obj["arg0"]);
1800 return tv; 1641 return tv;
1801 } 1642 }
1802 else if (tag == "PolygonLine") { 1643 case "PolygonLine": {
1803 tagType = PolygonMode.Tag.PolygonLine; 1644 data.PolygonLine tv = new data.PolygonLine();
1804 data.PolygonLine tv = new data.PolygonLine(); 1645 tv._0 = (float)fromJSON(Type.Float,obj["arg0"]);
1805 tv._0 = (float)fromJSON(Type.Float,obj["arg0"]); 1646 return tv;
1806 return tv; 1647 }
1807 } 1648 case "PolygonFill": tagType = PolygonMode.Tag.PolygonFill; break;
1808 else if (tag == "PolygonFill") { 1649 default: throw new Exception("unknown constructor: " + tag);
1809 tagType = PolygonMode.Tag.PolygonFill; 1650 }
1810 }
1811 else throw new Exception("unknown constructor: " + tag);
1812 PolygonMode o = new PolygonMode(); 1651 PolygonMode o = new PolygonMode();
1813 o.tag = tagType; 1652 o.tag = tagType;
1814 return o; 1653 return o;
@@ -1816,13 +1655,11 @@ namespace LambdaCube.IR {
1816 case Type.ProvokingVertex: { 1655 case Type.ProvokingVertex: {
1817 string tag = (string)obj["tag"]; 1656 string tag = (string)obj["tag"];
1818 ProvokingVertex.Tag tagType; 1657 ProvokingVertex.Tag tagType;
1819 if (tag == "FirstVertex") { 1658 switch (tag) {
1820 tagType = ProvokingVertex.Tag.FirstVertex; 1659 case "FirstVertex": tagType = ProvokingVertex.Tag.FirstVertex; break;
1821 } 1660 case "LastVertex": tagType = ProvokingVertex.Tag.LastVertex; break;
1822 else if (tag == "LastVertex") { 1661 default: throw new Exception("unknown constructor: " + tag);
1823 tagType = ProvokingVertex.Tag.LastVertex;
1824 } 1662 }
1825 else throw new Exception("unknown constructor: " + tag);
1826 ProvokingVertex o = new ProvokingVertex(); 1663 ProvokingVertex o = new ProvokingVertex();
1827 o.tag = tagType; 1664 o.tag = tagType;
1828 return o; 1665 return o;
@@ -1830,22 +1667,20 @@ namespace LambdaCube.IR {
1830 case Type.CullMode: { 1667 case Type.CullMode: {
1831 string tag = (string)obj["tag"]; 1668 string tag = (string)obj["tag"];
1832 CullMode.Tag tagType; 1669 CullMode.Tag tagType;
1833 if (tag == "CullNone") { 1670 switch (tag) {
1834 tagType = CullMode.Tag.CullNone; 1671 case "CullNone": tagType = CullMode.Tag.CullNone; break;
1835 } 1672 case "CullFront": {
1836 else if (tag == "CullFront") { 1673 data.CullFront tv = new data.CullFront();
1837 tagType = CullMode.Tag.CullFront; 1674 tv._0 = (global::LambdaCube.IR.FrontFace)fromJSON(Type.FrontFace,obj["arg0"]);
1838 data.CullFront tv = new data.CullFront(); 1675 return tv;
1839 tv._0 = (global::LambdaCube.IR.FrontFace)fromJSON(Type.FrontFace,obj["arg0"]); 1676 }
1840 return tv; 1677 case "CullBack": {
1841 } 1678 data.CullBack tv = new data.CullBack();
1842 else if (tag == "CullBack") { 1679 tv._0 = (global::LambdaCube.IR.FrontFace)fromJSON(Type.FrontFace,obj["arg0"]);
1843 tagType = CullMode.Tag.CullBack; 1680 return tv;
1844 data.CullBack tv = new data.CullBack(); 1681 }
1845 tv._0 = (global::LambdaCube.IR.FrontFace)fromJSON(Type.FrontFace,obj["arg0"]); 1682 default: throw new Exception("unknown constructor: " + tag);
1846 return tv; 1683 }
1847 }
1848 else throw new Exception("unknown constructor: " + tag);
1849 CullMode o = new CullMode(); 1684 CullMode o = new CullMode();
1850 o.tag = tagType; 1685 o.tag = tagType;
1851 return o; 1686 return o;
@@ -1853,31 +1688,17 @@ namespace LambdaCube.IR {
1853 case Type.ComparisonFunction: { 1688 case Type.ComparisonFunction: {
1854 string tag = (string)obj["tag"]; 1689 string tag = (string)obj["tag"];
1855 ComparisonFunction.Tag tagType; 1690 ComparisonFunction.Tag tagType;
1856 if (tag == "Never") { 1691 switch (tag) {
1857 tagType = ComparisonFunction.Tag.Never; 1692 case "Never": tagType = ComparisonFunction.Tag.Never; break;
1858 } 1693 case "Less": tagType = ComparisonFunction.Tag.Less; break;
1859 else if (tag == "Less") { 1694 case "Equal": tagType = ComparisonFunction.Tag.Equal; break;
1860 tagType = ComparisonFunction.Tag.Less; 1695 case "Lequal": tagType = ComparisonFunction.Tag.Lequal; break;
1861 } 1696 case "Greater": tagType = ComparisonFunction.Tag.Greater; break;
1862 else if (tag == "Equal") { 1697 case "Notequal": tagType = ComparisonFunction.Tag.Notequal; break;
1863 tagType = ComparisonFunction.Tag.Equal; 1698 case "Gequal": tagType = ComparisonFunction.Tag.Gequal; break;
1699 case "Always": tagType = ComparisonFunction.Tag.Always; break;
1700 default: throw new Exception("unknown constructor: " + tag);
1864 } 1701 }
1865 else if (tag == "Lequal") {
1866 tagType = ComparisonFunction.Tag.Lequal;
1867 }
1868 else if (tag == "Greater") {
1869 tagType = ComparisonFunction.Tag.Greater;
1870 }
1871 else if (tag == "Notequal") {
1872 tagType = ComparisonFunction.Tag.Notequal;
1873 }
1874 else if (tag == "Gequal") {
1875 tagType = ComparisonFunction.Tag.Gequal;
1876 }
1877 else if (tag == "Always") {
1878 tagType = ComparisonFunction.Tag.Always;
1879 }
1880 else throw new Exception("unknown constructor: " + tag);
1881 ComparisonFunction o = new ComparisonFunction(); 1702 ComparisonFunction o = new ComparisonFunction();
1882 o.tag = tagType; 1703 o.tag = tagType;
1883 return o; 1704 return o;
@@ -1885,31 +1706,17 @@ namespace LambdaCube.IR {
1885 case Type.StencilOperation: { 1706 case Type.StencilOperation: {
1886 string tag = (string)obj["tag"]; 1707 string tag = (string)obj["tag"];
1887 StencilOperation.Tag tagType; 1708 StencilOperation.Tag tagType;
1888 if (tag == "OpZero") { 1709 switch (tag) {
1889 tagType = StencilOperation.Tag.OpZero; 1710 case "OpZero": tagType = StencilOperation.Tag.OpZero; break;
1890 } 1711 case "OpKeep": tagType = StencilOperation.Tag.OpKeep; break;
1891 else if (tag == "OpKeep") { 1712 case "OpReplace": tagType = StencilOperation.Tag.OpReplace; break;
1892 tagType = StencilOperation.Tag.OpKeep; 1713 case "OpIncr": tagType = StencilOperation.Tag.OpIncr; break;
1893 } 1714 case "OpIncrWrap": tagType = StencilOperation.Tag.OpIncrWrap; break;
1894 else if (tag == "OpReplace") { 1715 case "OpDecr": tagType = StencilOperation.Tag.OpDecr; break;
1895 tagType = StencilOperation.Tag.OpReplace; 1716 case "OpDecrWrap": tagType = StencilOperation.Tag.OpDecrWrap; break;
1717 case "OpInvert": tagType = StencilOperation.Tag.OpInvert; break;
1718 default: throw new Exception("unknown constructor: " + tag);
1896 } 1719 }
1897 else if (tag == "OpIncr") {
1898 tagType = StencilOperation.Tag.OpIncr;
1899 }
1900 else if (tag == "OpIncrWrap") {
1901 tagType = StencilOperation.Tag.OpIncrWrap;
1902 }
1903 else if (tag == "OpDecr") {
1904 tagType = StencilOperation.Tag.OpDecr;
1905 }
1906 else if (tag == "OpDecrWrap") {
1907 tagType = StencilOperation.Tag.OpDecrWrap;
1908 }
1909 else if (tag == "OpInvert") {
1910 tagType = StencilOperation.Tag.OpInvert;
1911 }
1912 else throw new Exception("unknown constructor: " + tag);
1913 StencilOperation o = new StencilOperation(); 1720 StencilOperation o = new StencilOperation();
1914 o.tag = tagType; 1721 o.tag = tagType;
1915 return o; 1722 return o;
@@ -1917,22 +1724,14 @@ namespace LambdaCube.IR {
1917 case Type.BlendEquation: { 1724 case Type.BlendEquation: {
1918 string tag = (string)obj["tag"]; 1725 string tag = (string)obj["tag"];
1919 BlendEquation.Tag tagType; 1726 BlendEquation.Tag tagType;
1920 if (tag == "FuncAdd") { 1727 switch (tag) {
1921 tagType = BlendEquation.Tag.FuncAdd; 1728 case "FuncAdd": tagType = BlendEquation.Tag.FuncAdd; break;
1922 } 1729 case "FuncSubtract": tagType = BlendEquation.Tag.FuncSubtract; break;
1923 else if (tag == "FuncSubtract") { 1730 case "FuncReverseSubtract": tagType = BlendEquation.Tag.FuncReverseSubtract; break;
1924 tagType = BlendEquation.Tag.FuncSubtract; 1731 case "Min": tagType = BlendEquation.Tag.Min; break;
1732 case "Max": tagType = BlendEquation.Tag.Max; break;
1733 default: throw new Exception("unknown constructor: " + tag);
1925 } 1734 }
1926 else if (tag == "FuncReverseSubtract") {
1927 tagType = BlendEquation.Tag.FuncReverseSubtract;
1928 }
1929 else if (tag == "Min") {
1930 tagType = BlendEquation.Tag.Min;
1931 }
1932 else if (tag == "Max") {
1933 tagType = BlendEquation.Tag.Max;
1934 }
1935 else throw new Exception("unknown constructor: " + tag);
1936 BlendEquation o = new BlendEquation(); 1735 BlendEquation o = new BlendEquation();
1937 o.tag = tagType; 1736 o.tag = tagType;
1938 return o; 1737 return o;
@@ -1940,52 +1739,24 @@ namespace LambdaCube.IR {
1940 case Type.BlendingFactor: { 1739 case Type.BlendingFactor: {
1941 string tag = (string)obj["tag"]; 1740 string tag = (string)obj["tag"];
1942 BlendingFactor.Tag tagType; 1741 BlendingFactor.Tag tagType;
1943 if (tag == "Zero") { 1742 switch (tag) {
1944 tagType = BlendingFactor.Tag.Zero; 1743 case "Zero": tagType = BlendingFactor.Tag.Zero; break;
1945 } 1744 case "One": tagType = BlendingFactor.Tag.One; break;
1946 else if (tag == "One") { 1745 case "SrcColor": tagType = BlendingFactor.Tag.SrcColor; break;
1947 tagType = BlendingFactor.Tag.One; 1746 case "OneMinusSrcColor": tagType = BlendingFactor.Tag.OneMinusSrcColor; break;
1948 } 1747 case "DstColor": tagType = BlendingFactor.Tag.DstColor; break;
1949 else if (tag == "SrcColor") { 1748 case "OneMinusDstColor": tagType = BlendingFactor.Tag.OneMinusDstColor; break;
1950 tagType = BlendingFactor.Tag.SrcColor; 1749 case "SrcAlpha": tagType = BlendingFactor.Tag.SrcAlpha; break;
1951 } 1750 case "OneMinusSrcAlpha": tagType = BlendingFactor.Tag.OneMinusSrcAlpha; break;
1952 else if (tag == "OneMinusSrcColor") { 1751 case "DstAlpha": tagType = BlendingFactor.Tag.DstAlpha; break;
1953 tagType = BlendingFactor.Tag.OneMinusSrcColor; 1752 case "OneMinusDstAlpha": tagType = BlendingFactor.Tag.OneMinusDstAlpha; break;
1954 } 1753 case "ConstantColor": tagType = BlendingFactor.Tag.ConstantColor; break;
1955 else if (tag == "DstColor") { 1754 case "OneMinusConstantColor": tagType = BlendingFactor.Tag.OneMinusConstantColor; break;
1956 tagType = BlendingFactor.Tag.DstColor; 1755 case "ConstantAlpha": tagType = BlendingFactor.Tag.ConstantAlpha; break;
1957 } 1756 case "OneMinusConstantAlpha": tagType = BlendingFactor.Tag.OneMinusConstantAlpha; break;
1958 else if (tag == "OneMinusDstColor") { 1757 case "SrcAlphaSaturate": tagType = BlendingFactor.Tag.SrcAlphaSaturate; break;
1959 tagType = BlendingFactor.Tag.OneMinusDstColor; 1758 default: throw new Exception("unknown constructor: " + tag);
1960 }
1961 else if (tag == "SrcAlpha") {
1962 tagType = BlendingFactor.Tag.SrcAlpha;
1963 }
1964 else if (tag == "OneMinusSrcAlpha") {
1965 tagType = BlendingFactor.Tag.OneMinusSrcAlpha;
1966 }
1967 else if (tag == "DstAlpha") {
1968 tagType = BlendingFactor.Tag.DstAlpha;
1969 }
1970 else if (tag == "OneMinusDstAlpha") {
1971 tagType = BlendingFactor.Tag.OneMinusDstAlpha;
1972 } 1759 }
1973 else if (tag == "ConstantColor") {
1974 tagType = BlendingFactor.Tag.ConstantColor;
1975 }
1976 else if (tag == "OneMinusConstantColor") {
1977 tagType = BlendingFactor.Tag.OneMinusConstantColor;
1978 }
1979 else if (tag == "ConstantAlpha") {
1980 tagType = BlendingFactor.Tag.ConstantAlpha;
1981 }
1982 else if (tag == "OneMinusConstantAlpha") {
1983 tagType = BlendingFactor.Tag.OneMinusConstantAlpha;
1984 }
1985 else if (tag == "SrcAlphaSaturate") {
1986 tagType = BlendingFactor.Tag.SrcAlphaSaturate;
1987 }
1988 else throw new Exception("unknown constructor: " + tag);
1989 BlendingFactor o = new BlendingFactor(); 1760 BlendingFactor o = new BlendingFactor();
1990 o.tag = tagType; 1761 o.tag = tagType;
1991 return o; 1762 return o;
@@ -1993,124 +1764,77 @@ namespace LambdaCube.IR {
1993 case Type.LogicOperation: { 1764 case Type.LogicOperation: {
1994 string tag = (string)obj["tag"]; 1765 string tag = (string)obj["tag"];
1995 LogicOperation.Tag tagType; 1766 LogicOperation.Tag tagType;
1996 if (tag == "Clear") { 1767 switch (tag) {
1997 tagType = LogicOperation.Tag.Clear; 1768 case "Clear": tagType = LogicOperation.Tag.Clear; break;
1998 } 1769 case "And": tagType = LogicOperation.Tag.And; break;
1999 else if (tag == "And") { 1770 case "AndReverse": tagType = LogicOperation.Tag.AndReverse; break;
2000 tagType = LogicOperation.Tag.And; 1771 case "Copy": tagType = LogicOperation.Tag.Copy; break;
2001 } 1772 case "AndInverted": tagType = LogicOperation.Tag.AndInverted; break;
2002 else if (tag == "AndReverse") { 1773 case "Noop": tagType = LogicOperation.Tag.Noop; break;
2003 tagType = LogicOperation.Tag.AndReverse; 1774 case "Xor": tagType = LogicOperation.Tag.Xor; break;
2004 } 1775 case "Or": tagType = LogicOperation.Tag.Or; break;
2005 else if (tag == "Copy") { 1776 case "Nor": tagType = LogicOperation.Tag.Nor; break;
2006 tagType = LogicOperation.Tag.Copy; 1777 case "Equiv": tagType = LogicOperation.Tag.Equiv; break;
2007 } 1778 case "Invert": tagType = LogicOperation.Tag.Invert; break;
2008 else if (tag == "AndInverted") { 1779 case "OrReverse": tagType = LogicOperation.Tag.OrReverse; break;
2009 tagType = LogicOperation.Tag.AndInverted; 1780 case "CopyInverted": tagType = LogicOperation.Tag.CopyInverted; break;
2010 } 1781 case "OrInverted": tagType = LogicOperation.Tag.OrInverted; break;
2011 else if (tag == "Noop") { 1782 case "Nand": tagType = LogicOperation.Tag.Nand; break;
2012 tagType = LogicOperation.Tag.Noop; 1783 case "Set": tagType = LogicOperation.Tag.Set; break;
2013 } 1784 default: throw new Exception("unknown constructor: " + tag);
2014 else if (tag == "Xor") {
2015 tagType = LogicOperation.Tag.Xor;
2016 }
2017 else if (tag == "Or") {
2018 tagType = LogicOperation.Tag.Or;
2019 }
2020 else if (tag == "Nor") {
2021 tagType = LogicOperation.Tag.Nor;
2022 } 1785 }
2023 else if (tag == "Equiv") {
2024 tagType = LogicOperation.Tag.Equiv;
2025 }
2026 else if (tag == "Invert") {
2027 tagType = LogicOperation.Tag.Invert;
2028 }
2029 else if (tag == "OrReverse") {
2030 tagType = LogicOperation.Tag.OrReverse;
2031 }
2032 else if (tag == "CopyInverted") {
2033 tagType = LogicOperation.Tag.CopyInverted;
2034 }
2035 else if (tag == "OrInverted") {
2036 tagType = LogicOperation.Tag.OrInverted;
2037 }
2038 else if (tag == "Nand") {
2039 tagType = LogicOperation.Tag.Nand;
2040 }
2041 else if (tag == "Set") {
2042 tagType = LogicOperation.Tag.Set;
2043 }
2044 else throw new Exception("unknown constructor: " + tag);
2045 LogicOperation o = new LogicOperation(); 1786 LogicOperation o = new LogicOperation();
2046 o.tag = tagType; 1787 o.tag = tagType;
2047 return o; 1788 return o;
2048 } 1789 }
2049 case Type.StencilOps: { 1790 case Type.StencilOps: {
2050 string tag = (string)obj["tag"]; 1791 string tag = (string)obj["tag"];
2051 StencilOps.Tag tagType; 1792 switch (tag) {
2052 if (tag == "StencilOps") { 1793 case "StencilOps": {
2053 tagType = StencilOps.Tag.StencilOps; 1794 data.StencilOps tv = new data.StencilOps();
2054 data.StencilOps tv = new data.StencilOps(); 1795 tv.frontStencilOp = (global::LambdaCube.IR.StencilOperation)fromJSON(Type.StencilOperation,obj["frontStencilOp"]);
2055 tv.frontStencilOp = (global::LambdaCube.IR.StencilOperation)fromJSON(Type.StencilOperation,obj["frontStencilOp"]); 1796 tv.backStencilOp = (global::LambdaCube.IR.StencilOperation)fromJSON(Type.StencilOperation,obj["backStencilOp"]);
2056 tv.backStencilOp = (global::LambdaCube.IR.StencilOperation)fromJSON(Type.StencilOperation,obj["backStencilOp"]); 1797 return tv;
2057 return tv; 1798 }
2058 } 1799 default: throw new Exception("unknown constructor: " + tag);
2059 else throw new Exception("unknown constructor: " + tag); 1800 }
2060 StencilOps o = new StencilOps();
2061 o.tag = tagType;
2062 return o;
2063 } 1801 }
2064 case Type.StencilTest: { 1802 case Type.StencilTest: {
2065 string tag = (string)obj["tag"]; 1803 string tag = (string)obj["tag"];
2066 StencilTest.Tag tagType; 1804 switch (tag) {
2067 if (tag == "StencilTest") { 1805 case "StencilTest": {
2068 tagType = StencilTest.Tag.StencilTest; 1806 data.StencilTest tv = new data.StencilTest();
2069 data.StencilTest tv = new data.StencilTest(); 1807 tv.stencilComparision = (global::LambdaCube.IR.ComparisonFunction)fromJSON(Type.ComparisonFunction,obj["stencilComparision"]);
2070 tv.stencilComparision = (global::LambdaCube.IR.ComparisonFunction)fromJSON(Type.ComparisonFunction,obj["stencilComparision"]); 1808 tv.stencilReference = (int)fromJSON(Type.Int32,obj["stencilReference"]);
2071 tv.stencilReference = (int)fromJSON(Type.Int32,obj["stencilReference"]); 1809 tv.stencilMask = (uint)fromJSON(Type.Word32,obj["stencilMask"]);
2072 tv.stencilMask = (uint)fromJSON(Type.Word32,obj["stencilMask"]); 1810 return tv;
2073 return tv; 1811 }
2074 } 1812 default: throw new Exception("unknown constructor: " + tag);
2075 else throw new Exception("unknown constructor: " + tag); 1813 }
2076 StencilTest o = new StencilTest();
2077 o.tag = tagType;
2078 return o;
2079 } 1814 }
2080 case Type.StencilTests: { 1815 case Type.StencilTests: {
2081 string tag = (string)obj["tag"]; 1816 string tag = (string)obj["tag"];
2082 StencilTests.Tag tagType; 1817 switch (tag) {
2083 if (tag == "StencilTests") { 1818 case "StencilTests": {
2084 tagType = StencilTests.Tag.StencilTests; 1819 data.StencilTests tv = new data.StencilTests();
2085 data.StencilTests tv = new data.StencilTests(); 1820 tv._0 = (global::LambdaCube.IR.StencilTest)fromJSON(Type.StencilTest,obj["arg0"]);
2086 tv._0 = (global::LambdaCube.IR.StencilTest)fromJSON(Type.StencilTest,obj["arg0"]); 1821 tv._1 = (global::LambdaCube.IR.StencilTest)fromJSON(Type.StencilTest,obj["arg1"]);
2087 tv._1 = (global::LambdaCube.IR.StencilTest)fromJSON(Type.StencilTest,obj["arg1"]); 1822 return tv;
2088 return tv; 1823 }
2089 } 1824 default: throw new Exception("unknown constructor: " + tag);
2090 else throw new Exception("unknown constructor: " + tag); 1825 }
2091 StencilTests o = new StencilTests();
2092 o.tag = tagType;
2093 return o;
2094 } 1826 }
2095 case Type.FetchPrimitive: { 1827 case Type.FetchPrimitive: {
2096 string tag = (string)obj["tag"]; 1828 string tag = (string)obj["tag"];
2097 FetchPrimitive.Tag tagType; 1829 FetchPrimitive.Tag tagType;
2098 if (tag == "Points") { 1830 switch (tag) {
2099 tagType = FetchPrimitive.Tag.Points; 1831 case "Points": tagType = FetchPrimitive.Tag.Points; break;
2100 } 1832 case "Lines": tagType = FetchPrimitive.Tag.Lines; break;
2101 else if (tag == "Lines") { 1833 case "Triangles": tagType = FetchPrimitive.Tag.Triangles; break;
2102 tagType = FetchPrimitive.Tag.Lines; 1834 case "LinesAdjacency": tagType = FetchPrimitive.Tag.LinesAdjacency; break;
2103 } 1835 case "TrianglesAdjacency": tagType = FetchPrimitive.Tag.TrianglesAdjacency; break;
2104 else if (tag == "Triangles") { 1836 default: throw new Exception("unknown constructor: " + tag);
2105 tagType = FetchPrimitive.Tag.Triangles;
2106 }
2107 else if (tag == "LinesAdjacency") {
2108 tagType = FetchPrimitive.Tag.LinesAdjacency;
2109 } 1837 }
2110 else if (tag == "TrianglesAdjacency") {
2111 tagType = FetchPrimitive.Tag.TrianglesAdjacency;
2112 }
2113 else throw new Exception("unknown constructor: " + tag);
2114 FetchPrimitive o = new FetchPrimitive(); 1838 FetchPrimitive o = new FetchPrimitive();
2115 o.tag = tagType; 1839 o.tag = tagType;
2116 return o; 1840 return o;
@@ -2118,16 +1842,12 @@ namespace LambdaCube.IR {
2118 case Type.OutputPrimitive: { 1842 case Type.OutputPrimitive: {
2119 string tag = (string)obj["tag"]; 1843 string tag = (string)obj["tag"];
2120 OutputPrimitive.Tag tagType; 1844 OutputPrimitive.Tag tagType;
2121 if (tag == "TrianglesOutput") { 1845 switch (tag) {
2122 tagType = OutputPrimitive.Tag.TrianglesOutput; 1846 case "TrianglesOutput": tagType = OutputPrimitive.Tag.TrianglesOutput; break;
2123 } 1847 case "LinesOutput": tagType = OutputPrimitive.Tag.LinesOutput; break;
2124 else if (tag == "LinesOutput") { 1848 case "PointsOutput": tagType = OutputPrimitive.Tag.PointsOutput; break;
2125 tagType = OutputPrimitive.Tag.LinesOutput; 1849 default: throw new Exception("unknown constructor: " + tag);
2126 }
2127 else if (tag == "PointsOutput") {
2128 tagType = OutputPrimitive.Tag.PointsOutput;
2129 } 1850 }
2130 else throw new Exception("unknown constructor: " + tag);
2131 OutputPrimitive o = new OutputPrimitive(); 1851 OutputPrimitive o = new OutputPrimitive();
2132 o.tag = tagType; 1852 o.tag = tagType;
2133 return o; 1853 return o;
@@ -2135,19 +1855,13 @@ namespace LambdaCube.IR {
2135 case Type.ColorArity: { 1855 case Type.ColorArity: {
2136 string tag = (string)obj["tag"]; 1856 string tag = (string)obj["tag"];
2137 ColorArity.Tag tagType; 1857 ColorArity.Tag tagType;
2138 if (tag == "Red") { 1858 switch (tag) {
2139 tagType = ColorArity.Tag.Red; 1859 case "Red": tagType = ColorArity.Tag.Red; break;
2140 } 1860 case "RG": tagType = ColorArity.Tag.RG; break;
2141 else if (tag == "RG") { 1861 case "RGB": tagType = ColorArity.Tag.RGB; break;
2142 tagType = ColorArity.Tag.RG; 1862 case "RGBA": tagType = ColorArity.Tag.RGBA; break;
2143 } 1863 default: throw new Exception("unknown constructor: " + tag);
2144 else if (tag == "RGB") {
2145 tagType = ColorArity.Tag.RGB;
2146 }
2147 else if (tag == "RGBA") {
2148 tagType = ColorArity.Tag.RGBA;
2149 } 1864 }
2150 else throw new Exception("unknown constructor: " + tag);
2151 ColorArity o = new ColorArity(); 1865 ColorArity o = new ColorArity();
2152 o.tag = tagType; 1866 o.tag = tagType;
2153 return o; 1867 return o;
@@ -2155,214 +1869,185 @@ namespace LambdaCube.IR {
2155 case Type.Blending: { 1869 case Type.Blending: {
2156 string tag = (string)obj["tag"]; 1870 string tag = (string)obj["tag"];
2157 Blending.Tag tagType; 1871 Blending.Tag tagType;
2158 if (tag == "NoBlending") { 1872 switch (tag) {
2159 tagType = Blending.Tag.NoBlending; 1873 case "NoBlending": tagType = Blending.Tag.NoBlending; break;
2160 } 1874 case "BlendLogicOp": {
2161 else if (tag == "BlendLogicOp") { 1875 data.BlendLogicOp tv = new data.BlendLogicOp();
2162 tagType = Blending.Tag.BlendLogicOp; 1876 tv._0 = (global::LambdaCube.IR.LogicOperation)fromJSON(Type.LogicOperation,obj["arg0"]);
2163 data.BlendLogicOp tv = new data.BlendLogicOp(); 1877 return tv;
2164 tv._0 = (global::LambdaCube.IR.LogicOperation)fromJSON(Type.LogicOperation,obj["arg0"]); 1878 }
2165 return tv; 1879 case "Blend": {
2166 } 1880 data.Blend tv = new data.Blend();
2167 else if (tag == "Blend") { 1881 tv.colorEqSrc = (global::LambdaCube.IR.BlendEquation)fromJSON(Type.BlendEquation,obj["colorEqSrc"]);
2168 tagType = Blending.Tag.Blend; 1882 tv.alphaEqSrc = (global::LambdaCube.IR.BlendEquation)fromJSON(Type.BlendEquation,obj["alphaEqSrc"]);
2169 data.Blend tv = new data.Blend(); 1883 tv.colorFSrc = (global::LambdaCube.IR.BlendingFactor)fromJSON(Type.BlendingFactor,obj["colorFSrc"]);
2170 tv.colorEqSrc = (global::LambdaCube.IR.BlendEquation)fromJSON(Type.BlendEquation,obj["colorEqSrc"]); 1884 tv.colorFDst = (global::LambdaCube.IR.BlendingFactor)fromJSON(Type.BlendingFactor,obj["colorFDst"]);
2171 tv.alphaEqSrc = (global::LambdaCube.IR.BlendEquation)fromJSON(Type.BlendEquation,obj["alphaEqSrc"]); 1885 tv.alphaFSrc = (global::LambdaCube.IR.BlendingFactor)fromJSON(Type.BlendingFactor,obj["alphaFSrc"]);
2172 tv.colorFSrc = (global::LambdaCube.IR.BlendingFactor)fromJSON(Type.BlendingFactor,obj["colorFSrc"]); 1886 tv.alphaFDst = (global::LambdaCube.IR.BlendingFactor)fromJSON(Type.BlendingFactor,obj["alphaFDst"]);
2173 tv.colorFDst = (global::LambdaCube.IR.BlendingFactor)fromJSON(Type.BlendingFactor,obj["colorFDst"]); 1887 tv.color = (V4<float>)fromJSON(Type.V4_Float,obj["color"]);
2174 tv.alphaFSrc = (global::LambdaCube.IR.BlendingFactor)fromJSON(Type.BlendingFactor,obj["alphaFSrc"]); 1888 return tv;
2175 tv.alphaFDst = (global::LambdaCube.IR.BlendingFactor)fromJSON(Type.BlendingFactor,obj["alphaFDst"]); 1889 }
2176 tv.color = (V4<float>)fromJSON(Type.V4_Float,obj["color"]); 1890 default: throw new Exception("unknown constructor: " + tag);
2177 return tv; 1891 }
2178 }
2179 else throw new Exception("unknown constructor: " + tag);
2180 Blending o = new Blending(); 1892 Blending o = new Blending();
2181 o.tag = tagType; 1893 o.tag = tagType;
2182 return o; 1894 return o;
2183 } 1895 }
2184 case Type.RasterContext: { 1896 case Type.RasterContext: {
2185 string tag = (string)obj["tag"]; 1897 string tag = (string)obj["tag"];
2186 RasterContext.Tag tagType; 1898 switch (tag) {
2187 if (tag == "PointCtx") { 1899 case "PointCtx": {
2188 tagType = RasterContext.Tag.PointCtx; 1900 data.PointCtx tv = new data.PointCtx();
2189 data.PointCtx tv = new data.PointCtx(); 1901 tv._0 = (global::LambdaCube.IR.PointSize)fromJSON(Type.PointSize,obj["arg0"]);
2190 tv._0 = (global::LambdaCube.IR.PointSize)fromJSON(Type.PointSize,obj["arg0"]); 1902 tv._1 = (float)fromJSON(Type.Float,obj["arg1"]);
2191 tv._1 = (float)fromJSON(Type.Float,obj["arg1"]); 1903 tv._2 = (global::LambdaCube.IR.PointSpriteCoordOrigin)fromJSON(Type.PointSpriteCoordOrigin,obj["arg2"]);
2192 tv._2 = (global::LambdaCube.IR.PointSpriteCoordOrigin)fromJSON(Type.PointSpriteCoordOrigin,obj["arg2"]); 1904 return tv;
2193 return tv; 1905 }
2194 } 1906 case "LineCtx": {
2195 else if (tag == "LineCtx") { 1907 data.LineCtx tv = new data.LineCtx();
2196 tagType = RasterContext.Tag.LineCtx; 1908 tv._0 = (float)fromJSON(Type.Float,obj["arg0"]);
2197 data.LineCtx tv = new data.LineCtx(); 1909 tv._1 = (global::LambdaCube.IR.ProvokingVertex)fromJSON(Type.ProvokingVertex,obj["arg1"]);
2198 tv._0 = (float)fromJSON(Type.Float,obj["arg0"]); 1910 return tv;
2199 tv._1 = (global::LambdaCube.IR.ProvokingVertex)fromJSON(Type.ProvokingVertex,obj["arg1"]); 1911 }
2200 return tv; 1912 case "TriangleCtx": {
2201 } 1913 data.TriangleCtx tv = new data.TriangleCtx();
2202 else if (tag == "TriangleCtx") { 1914 tv._0 = (global::LambdaCube.IR.CullMode)fromJSON(Type.CullMode,obj["arg0"]);
2203 tagType = RasterContext.Tag.TriangleCtx; 1915 tv._1 = (global::LambdaCube.IR.PolygonMode)fromJSON(Type.PolygonMode,obj["arg1"]);
2204 data.TriangleCtx tv = new data.TriangleCtx(); 1916 tv._2 = (global::LambdaCube.IR.PolygonOffset)fromJSON(Type.PolygonOffset,obj["arg2"]);
2205 tv._0 = (global::LambdaCube.IR.CullMode)fromJSON(Type.CullMode,obj["arg0"]); 1917 tv._3 = (global::LambdaCube.IR.ProvokingVertex)fromJSON(Type.ProvokingVertex,obj["arg3"]);
2206 tv._1 = (global::LambdaCube.IR.PolygonMode)fromJSON(Type.PolygonMode,obj["arg1"]); 1918 return tv;
2207 tv._2 = (global::LambdaCube.IR.PolygonOffset)fromJSON(Type.PolygonOffset,obj["arg2"]); 1919 }
2208 tv._3 = (global::LambdaCube.IR.ProvokingVertex)fromJSON(Type.ProvokingVertex,obj["arg3"]); 1920 default: throw new Exception("unknown constructor: " + tag);
2209 return tv; 1921 }
2210 }
2211 else throw new Exception("unknown constructor: " + tag);
2212 RasterContext o = new RasterContext();
2213 o.tag = tagType;
2214 return o;
2215 } 1922 }
2216 case Type.FragmentOperation: { 1923 case Type.FragmentOperation: {
2217 string tag = (string)obj["tag"]; 1924 string tag = (string)obj["tag"];
2218 FragmentOperation.Tag tagType; 1925 switch (tag) {
2219 if (tag == "DepthOp") { 1926 case "DepthOp": {
2220 tagType = FragmentOperation.Tag.DepthOp; 1927 data.DepthOp tv = new data.DepthOp();
2221 data.DepthOp tv = new data.DepthOp(); 1928 tv._0 = (global::LambdaCube.IR.ComparisonFunction)fromJSON(Type.ComparisonFunction,obj["arg0"]);
2222 tv._0 = (global::LambdaCube.IR.ComparisonFunction)fromJSON(Type.ComparisonFunction,obj["arg0"]); 1929 tv._1 = (bool)fromJSON(Type.Bool,obj["arg1"]);
2223 tv._1 = (bool)fromJSON(Type.Bool,obj["arg1"]); 1930 return tv;
2224 return tv; 1931 }
2225 } 1932 case "StencilOp": {
2226 else if (tag == "StencilOp") { 1933 data.StencilOp tv = new data.StencilOp();
2227 tagType = FragmentOperation.Tag.StencilOp; 1934 tv._0 = (global::LambdaCube.IR.StencilTests)fromJSON(Type.StencilTests,obj["arg0"]);
2228 data.StencilOp tv = new data.StencilOp(); 1935 tv._1 = (global::LambdaCube.IR.StencilOps)fromJSON(Type.StencilOps,obj["arg1"]);
2229 tv._0 = (global::LambdaCube.IR.StencilTests)fromJSON(Type.StencilTests,obj["arg0"]); 1936 tv._2 = (global::LambdaCube.IR.StencilOps)fromJSON(Type.StencilOps,obj["arg2"]);
2230 tv._1 = (global::LambdaCube.IR.StencilOps)fromJSON(Type.StencilOps,obj["arg1"]); 1937 return tv;
2231 tv._2 = (global::LambdaCube.IR.StencilOps)fromJSON(Type.StencilOps,obj["arg2"]); 1938 }
2232 return tv; 1939 case "ColorOp": {
2233 } 1940 data.ColorOp tv = new data.ColorOp();
2234 else if (tag == "ColorOp") { 1941 tv._0 = (global::LambdaCube.IR.Blending)fromJSON(Type.Blending,obj["arg0"]);
2235 tagType = FragmentOperation.Tag.ColorOp; 1942 tv._1 = (global::LambdaCube.IR.Value)fromJSON(Type.Value,obj["arg1"]);
2236 data.ColorOp tv = new data.ColorOp(); 1943 return tv;
2237 tv._0 = (global::LambdaCube.IR.Blending)fromJSON(Type.Blending,obj["arg0"]); 1944 }
2238 tv._1 = (global::LambdaCube.IR.Value)fromJSON(Type.Value,obj["arg1"]); 1945 default: throw new Exception("unknown constructor: " + tag);
2239 return tv; 1946 }
2240 }
2241 else throw new Exception("unknown constructor: " + tag);
2242 FragmentOperation o = new FragmentOperation();
2243 o.tag = tagType;
2244 return o;
2245 } 1947 }
2246 case Type.AccumulationContext: { 1948 case Type.AccumulationContext: {
2247 string tag = (string)obj["tag"]; 1949 string tag = (string)obj["tag"];
2248 AccumulationContext.Tag tagType; 1950 switch (tag) {
2249 if (tag == "AccumulationContext") { 1951 case "AccumulationContext": {
2250 tagType = AccumulationContext.Tag.AccumulationContext; 1952 data.AccumulationContext tv = new data.AccumulationContext();
2251 data.AccumulationContext tv = new data.AccumulationContext(); 1953 tv.accViewportName = (Maybe<string>)fromJSON(Type.Maybe_String,obj["accViewportName"]);
2252 tv.accViewportName = (Maybe<string>)fromJSON(Type.Maybe_String,obj["accViewportName"]); 1954 tv.accOperations = (List<global::LambdaCube.IR.FragmentOperation>)fromJSON(Type.List_FragmentOperation,obj["accOperations"]);
2253 tv.accOperations = (List<global::LambdaCube.IR.FragmentOperation>)fromJSON(Type.List_FragmentOperation,obj["accOperations"]); 1955 return tv;
2254 return tv; 1956 }
2255 } 1957 default: throw new Exception("unknown constructor: " + tag);
2256 else throw new Exception("unknown constructor: " + tag); 1958 }
2257 AccumulationContext o = new AccumulationContext();
2258 o.tag = tagType;
2259 return o;
2260 } 1959 }
2261 case Type.TextureDataType: { 1960 case Type.TextureDataType: {
2262 string tag = (string)obj["tag"]; 1961 string tag = (string)obj["tag"];
2263 TextureDataType.Tag tagType; 1962 TextureDataType.Tag tagType;
2264 if (tag == "FloatT") { 1963 switch (tag) {
2265 tagType = TextureDataType.Tag.FloatT; 1964 case "FloatT": {
2266 data.FloatT tv = new data.FloatT(); 1965 data.FloatT tv = new data.FloatT();
2267 tv._0 = (global::LambdaCube.IR.ColorArity)fromJSON(Type.ColorArity,obj["arg0"]); 1966 tv._0 = (global::LambdaCube.IR.ColorArity)fromJSON(Type.ColorArity,obj["arg0"]);
2268 return tv; 1967 return tv;
2269 } 1968 }
2270 else if (tag == "IntT") { 1969 case "IntT": {
2271 tagType = TextureDataType.Tag.IntT; 1970 data.IntT tv = new data.IntT();
2272 data.IntT tv = new data.IntT(); 1971 tv._0 = (global::LambdaCube.IR.ColorArity)fromJSON(Type.ColorArity,obj["arg0"]);
2273 tv._0 = (global::LambdaCube.IR.ColorArity)fromJSON(Type.ColorArity,obj["arg0"]); 1972 return tv;
2274 return tv; 1973 }
2275 } 1974 case "WordT": {
2276 else if (tag == "WordT") { 1975 data.WordT tv = new data.WordT();
2277 tagType = TextureDataType.Tag.WordT; 1976 tv._0 = (global::LambdaCube.IR.ColorArity)fromJSON(Type.ColorArity,obj["arg0"]);
2278 data.WordT tv = new data.WordT(); 1977 return tv;
2279 tv._0 = (global::LambdaCube.IR.ColorArity)fromJSON(Type.ColorArity,obj["arg0"]); 1978 }
2280 return tv; 1979 case "ShadowT": tagType = TextureDataType.Tag.ShadowT; break;
2281 } 1980 default: throw new Exception("unknown constructor: " + tag);
2282 else if (tag == "ShadowT") { 1981 }
2283 tagType = TextureDataType.Tag.ShadowT;
2284 }
2285 else throw new Exception("unknown constructor: " + tag);
2286 TextureDataType o = new TextureDataType(); 1982 TextureDataType o = new TextureDataType();
2287 o.tag = tagType; 1983 o.tag = tagType;
2288 return o; 1984 return o;
2289 } 1985 }
2290 case Type.TextureType: { 1986 case Type.TextureType: {
2291 string tag = (string)obj["tag"]; 1987 string tag = (string)obj["tag"];
2292 TextureType.Tag tagType; 1988 switch (tag) {
2293 if (tag == "Texture1D") { 1989 case "Texture1D": {
2294 tagType = TextureType.Tag.Texture1D; 1990 data.Texture1D tv = new data.Texture1D();
2295 data.Texture1D tv = new data.Texture1D(); 1991 tv._0 = (global::LambdaCube.IR.TextureDataType)fromJSON(Type.TextureDataType,obj["arg0"]);
2296 tv._0 = (global::LambdaCube.IR.TextureDataType)fromJSON(Type.TextureDataType,obj["arg0"]); 1992 tv._1 = (int)fromJSON(Type.Int,obj["arg1"]);
2297 tv._1 = (int)fromJSON(Type.Int,obj["arg1"]); 1993 return tv;
2298 return tv; 1994 }
2299 } 1995 case "Texture2D": {
2300 else if (tag == "Texture2D") { 1996 data.Texture2D tv = new data.Texture2D();
2301 tagType = TextureType.Tag.Texture2D; 1997 tv._0 = (global::LambdaCube.IR.TextureDataType)fromJSON(Type.TextureDataType,obj["arg0"]);
2302 data.Texture2D tv = new data.Texture2D(); 1998 tv._1 = (int)fromJSON(Type.Int,obj["arg1"]);
2303 tv._0 = (global::LambdaCube.IR.TextureDataType)fromJSON(Type.TextureDataType,obj["arg0"]); 1999 return tv;
2304 tv._1 = (int)fromJSON(Type.Int,obj["arg1"]); 2000 }
2305 return tv; 2001 case "Texture3D": {
2306 } 2002 data.Texture3D tv = new data.Texture3D();
2307 else if (tag == "Texture3D") { 2003 tv._0 = (global::LambdaCube.IR.TextureDataType)fromJSON(Type.TextureDataType,obj["arg0"]);
2308 tagType = TextureType.Tag.Texture3D; 2004 return tv;
2309 data.Texture3D tv = new data.Texture3D(); 2005 }
2310 tv._0 = (global::LambdaCube.IR.TextureDataType)fromJSON(Type.TextureDataType,obj["arg0"]); 2006 case "TextureCube": {
2311 return tv; 2007 data.TextureCube tv = new data.TextureCube();
2312 } 2008 tv._0 = (global::LambdaCube.IR.TextureDataType)fromJSON(Type.TextureDataType,obj["arg0"]);
2313 else if (tag == "TextureCube") { 2009 return tv;
2314 tagType = TextureType.Tag.TextureCube; 2010 }
2315 data.TextureCube tv = new data.TextureCube(); 2011 case "TextureRect": {
2316 tv._0 = (global::LambdaCube.IR.TextureDataType)fromJSON(Type.TextureDataType,obj["arg0"]); 2012 data.TextureRect tv = new data.TextureRect();
2317 return tv; 2013 tv._0 = (global::LambdaCube.IR.TextureDataType)fromJSON(Type.TextureDataType,obj["arg0"]);
2318 } 2014 return tv;
2319 else if (tag == "TextureRect") { 2015 }
2320 tagType = TextureType.Tag.TextureRect; 2016 case "Texture2DMS": {
2321 data.TextureRect tv = new data.TextureRect(); 2017 data.Texture2DMS tv = new data.Texture2DMS();
2322 tv._0 = (global::LambdaCube.IR.TextureDataType)fromJSON(Type.TextureDataType,obj["arg0"]); 2018 tv._0 = (global::LambdaCube.IR.TextureDataType)fromJSON(Type.TextureDataType,obj["arg0"]);
2323 return tv; 2019 tv._1 = (int)fromJSON(Type.Int,obj["arg1"]);
2324 } 2020 tv._2 = (int)fromJSON(Type.Int,obj["arg2"]);
2325 else if (tag == "Texture2DMS") { 2021 tv._3 = (bool)fromJSON(Type.Bool,obj["arg3"]);
2326 tagType = TextureType.Tag.Texture2DMS; 2022 return tv;
2327 data.Texture2DMS tv = new data.Texture2DMS(); 2023 }
2328 tv._0 = (global::LambdaCube.IR.TextureDataType)fromJSON(Type.TextureDataType,obj["arg0"]); 2024 case "TextureBuffer": {
2329 tv._1 = (int)fromJSON(Type.Int,obj["arg1"]); 2025 data.TextureBuffer tv = new data.TextureBuffer();
2330 tv._2 = (int)fromJSON(Type.Int,obj["arg2"]); 2026 tv._0 = (global::LambdaCube.IR.TextureDataType)fromJSON(Type.TextureDataType,obj["arg0"]);
2331 tv._3 = (bool)fromJSON(Type.Bool,obj["arg3"]); 2027 return tv;
2332 return tv; 2028 }
2333 } 2029 default: throw new Exception("unknown constructor: " + tag);
2334 else if (tag == "TextureBuffer") { 2030 }
2335 tagType = TextureType.Tag.TextureBuffer;
2336 data.TextureBuffer tv = new data.TextureBuffer();
2337 tv._0 = (global::LambdaCube.IR.TextureDataType)fromJSON(Type.TextureDataType,obj["arg0"]);
2338 return tv;
2339 }
2340 else throw new Exception("unknown constructor: " + tag);
2341 TextureType o = new TextureType();
2342 o.tag = tagType;
2343 return o;
2344 } 2031 }
2345 case Type.MipMap: { 2032 case Type.MipMap: {
2346 string tag = (string)obj["tag"]; 2033 string tag = (string)obj["tag"];
2347 MipMap.Tag tagType; 2034 MipMap.Tag tagType;
2348 if (tag == "Mip") { 2035 switch (tag) {
2349 tagType = MipMap.Tag.Mip; 2036 case "Mip": {
2350 data.Mip tv = new data.Mip(); 2037 data.Mip tv = new data.Mip();
2351 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]); 2038 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]);
2352 tv._1 = (int)fromJSON(Type.Int,obj["arg1"]); 2039 tv._1 = (int)fromJSON(Type.Int,obj["arg1"]);
2353 return tv; 2040 return tv;
2354 } 2041 }
2355 else if (tag == "NoMip") { 2042 case "NoMip": tagType = MipMap.Tag.NoMip; break;
2356 tagType = MipMap.Tag.NoMip; 2043 case "AutoMip": {
2357 } 2044 data.AutoMip tv = new data.AutoMip();
2358 else if (tag == "AutoMip") { 2045 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]);
2359 tagType = MipMap.Tag.AutoMip; 2046 tv._1 = (int)fromJSON(Type.Int,obj["arg1"]);
2360 data.AutoMip tv = new data.AutoMip(); 2047 return tv;
2361 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]); 2048 }
2362 tv._1 = (int)fromJSON(Type.Int,obj["arg1"]); 2049 default: throw new Exception("unknown constructor: " + tag);
2363 return tv; 2050 }
2364 }
2365 else throw new Exception("unknown constructor: " + tag);
2366 MipMap o = new MipMap(); 2051 MipMap o = new MipMap();
2367 o.tag = tagType; 2052 o.tag = tagType;
2368 return o; 2053 return o;
@@ -2370,25 +2055,15 @@ namespace LambdaCube.IR {
2370 case Type.Filter: { 2055 case Type.Filter: {
2371 string tag = (string)obj["tag"]; 2056 string tag = (string)obj["tag"];
2372 Filter.Tag tagType; 2057 Filter.Tag tagType;
2373 if (tag == "Nearest") { 2058 switch (tag) {
2374 tagType = Filter.Tag.Nearest; 2059 case "Nearest": tagType = Filter.Tag.Nearest; break;
2375 } 2060 case "Linear": tagType = Filter.Tag.Linear; break;
2376 else if (tag == "Linear") { 2061 case "NearestMipmapNearest": tagType = Filter.Tag.NearestMipmapNearest; break;
2377 tagType = Filter.Tag.Linear; 2062 case "NearestMipmapLinear": tagType = Filter.Tag.NearestMipmapLinear; break;
2378 } 2063 case "LinearMipmapNearest": tagType = Filter.Tag.LinearMipmapNearest; break;
2379 else if (tag == "NearestMipmapNearest") { 2064 case "LinearMipmapLinear": tagType = Filter.Tag.LinearMipmapLinear; break;
2380 tagType = Filter.Tag.NearestMipmapNearest; 2065 default: throw new Exception("unknown constructor: " + tag);
2381 }
2382 else if (tag == "NearestMipmapLinear") {
2383 tagType = Filter.Tag.NearestMipmapLinear;
2384 }
2385 else if (tag == "LinearMipmapNearest") {
2386 tagType = Filter.Tag.LinearMipmapNearest;
2387 } 2066 }
2388 else if (tag == "LinearMipmapLinear") {
2389 tagType = Filter.Tag.LinearMipmapLinear;
2390 }
2391 else throw new Exception("unknown constructor: " + tag);
2392 Filter o = new Filter(); 2067 Filter o = new Filter();
2393 o.tag = tagType; 2068 o.tag = tagType;
2394 return o; 2069 return o;
@@ -2396,19 +2071,13 @@ namespace LambdaCube.IR {
2396 case Type.EdgeMode: { 2071 case Type.EdgeMode: {
2397 string tag = (string)obj["tag"]; 2072 string tag = (string)obj["tag"];
2398 EdgeMode.Tag tagType; 2073 EdgeMode.Tag tagType;
2399 if (tag == "Repeat") { 2074 switch (tag) {
2400 tagType = EdgeMode.Tag.Repeat; 2075 case "Repeat": tagType = EdgeMode.Tag.Repeat; break;
2401 } 2076 case "MirroredRepeat": tagType = EdgeMode.Tag.MirroredRepeat; break;
2402 else if (tag == "MirroredRepeat") { 2077 case "ClampToEdge": tagType = EdgeMode.Tag.ClampToEdge; break;
2403 tagType = EdgeMode.Tag.MirroredRepeat; 2078 case "ClampToBorder": tagType = EdgeMode.Tag.ClampToBorder; break;
2404 } 2079 default: throw new Exception("unknown constructor: " + tag);
2405 else if (tag == "ClampToEdge") {
2406 tagType = EdgeMode.Tag.ClampToEdge;
2407 } 2080 }
2408 else if (tag == "ClampToBorder") {
2409 tagType = EdgeMode.Tag.ClampToBorder;
2410 }
2411 else throw new Exception("unknown constructor: " + tag);
2412 EdgeMode o = new EdgeMode(); 2081 EdgeMode o = new EdgeMode();
2413 o.tag = tagType; 2082 o.tag = tagType;
2414 return o; 2083 return o;
@@ -2416,324 +2085,269 @@ namespace LambdaCube.IR {
2416 case Type.ImageSemantic: { 2085 case Type.ImageSemantic: {
2417 string tag = (string)obj["tag"]; 2086 string tag = (string)obj["tag"];
2418 ImageSemantic.Tag tagType; 2087 ImageSemantic.Tag tagType;
2419 if (tag == "Depth") { 2088 switch (tag) {
2420 tagType = ImageSemantic.Tag.Depth; 2089 case "Depth": tagType = ImageSemantic.Tag.Depth; break;
2421 } 2090 case "Stencil": tagType = ImageSemantic.Tag.Stencil; break;
2422 else if (tag == "Stencil") { 2091 case "Color": tagType = ImageSemantic.Tag.Color; break;
2423 tagType = ImageSemantic.Tag.Stencil; 2092 default: throw new Exception("unknown constructor: " + tag);
2424 }
2425 else if (tag == "Color") {
2426 tagType = ImageSemantic.Tag.Color;
2427 } 2093 }
2428 else throw new Exception("unknown constructor: " + tag);
2429 ImageSemantic o = new ImageSemantic(); 2094 ImageSemantic o = new ImageSemantic();
2430 o.tag = tagType; 2095 o.tag = tagType;
2431 return o; 2096 return o;
2432 } 2097 }
2433 case Type.ImageRef: { 2098 case Type.ImageRef: {
2434 string tag = (string)obj["tag"]; 2099 string tag = (string)obj["tag"];
2435 ImageRef.Tag tagType; 2100 switch (tag) {
2436 if (tag == "TextureImage") { 2101 case "TextureImage": {
2437 tagType = ImageRef.Tag.TextureImage; 2102 data.TextureImage tv = new data.TextureImage();
2438 data.TextureImage tv = new data.TextureImage(); 2103 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]);
2439 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]); 2104 tv._1 = (int)fromJSON(Type.Int,obj["arg1"]);
2440 tv._1 = (int)fromJSON(Type.Int,obj["arg1"]); 2105 tv._2 = (Maybe<int>)fromJSON(Type.Maybe_Int,obj["arg2"]);
2441 tv._2 = (Maybe<int>)fromJSON(Type.Maybe_Int,obj["arg2"]); 2106 return tv;
2442 return tv; 2107 }
2443 } 2108 case "Framebuffer": {
2444 else if (tag == "Framebuffer") { 2109 data.Framebuffer tv = new data.Framebuffer();
2445 tagType = ImageRef.Tag.Framebuffer; 2110 tv._0 = (global::LambdaCube.IR.ImageSemantic)fromJSON(Type.ImageSemantic,obj["arg0"]);
2446 data.Framebuffer tv = new data.Framebuffer(); 2111 return tv;
2447 tv._0 = (global::LambdaCube.IR.ImageSemantic)fromJSON(Type.ImageSemantic,obj["arg0"]); 2112 }
2448 return tv; 2113 default: throw new Exception("unknown constructor: " + tag);
2449 } 2114 }
2450 else throw new Exception("unknown constructor: " + tag);
2451 ImageRef o = new ImageRef();
2452 o.tag = tagType;
2453 return o;
2454 } 2115 }
2455 case Type.ClearImage: { 2116 case Type.ClearImage: {
2456 string tag = (string)obj["tag"]; 2117 string tag = (string)obj["tag"];
2457 ClearImage.Tag tagType; 2118 switch (tag) {
2458 if (tag == "ClearImage") { 2119 case "ClearImage": {
2459 tagType = ClearImage.Tag.ClearImage; 2120 data.ClearImage tv = new data.ClearImage();
2460 data.ClearImage tv = new data.ClearImage(); 2121 tv.imageSemantic = (global::LambdaCube.IR.ImageSemantic)fromJSON(Type.ImageSemantic,obj["imageSemantic"]);
2461 tv.imageSemantic = (global::LambdaCube.IR.ImageSemantic)fromJSON(Type.ImageSemantic,obj["imageSemantic"]); 2122 tv.clearValue = (global::LambdaCube.IR.Value)fromJSON(Type.Value,obj["clearValue"]);
2462 tv.clearValue = (global::LambdaCube.IR.Value)fromJSON(Type.Value,obj["clearValue"]); 2123 return tv;
2463 return tv; 2124 }
2464 } 2125 default: throw new Exception("unknown constructor: " + tag);
2465 else throw new Exception("unknown constructor: " + tag); 2126 }
2466 ClearImage o = new ClearImage();
2467 o.tag = tagType;
2468 return o;
2469 } 2127 }
2470 case Type.Command: { 2128 case Type.Command: {
2471 string tag = (string)obj["tag"]; 2129 string tag = (string)obj["tag"];
2472 Command.Tag tagType; 2130 switch (tag) {
2473 if (tag == "SetRasterContext") { 2131 case "SetRasterContext": {
2474 tagType = Command.Tag.SetRasterContext; 2132 data.SetRasterContext tv = new data.SetRasterContext();
2475 data.SetRasterContext tv = new data.SetRasterContext(); 2133 tv._0 = (global::LambdaCube.IR.RasterContext)fromJSON(Type.RasterContext,obj["arg0"]);
2476 tv._0 = (global::LambdaCube.IR.RasterContext)fromJSON(Type.RasterContext,obj["arg0"]); 2134 return tv;
2477 return tv; 2135 }
2478 } 2136 case "SetAccumulationContext": {
2479 else if (tag == "SetAccumulationContext") { 2137 data.SetAccumulationContext tv = new data.SetAccumulationContext();
2480 tagType = Command.Tag.SetAccumulationContext; 2138 tv._0 = (global::LambdaCube.IR.AccumulationContext)fromJSON(Type.AccumulationContext,obj["arg0"]);
2481 data.SetAccumulationContext tv = new data.SetAccumulationContext(); 2139 return tv;
2482 tv._0 = (global::LambdaCube.IR.AccumulationContext)fromJSON(Type.AccumulationContext,obj["arg0"]); 2140 }
2483 return tv; 2141 case "SetRenderTarget": {
2484 } 2142 data.SetRenderTarget tv = new data.SetRenderTarget();
2485 else if (tag == "SetRenderTarget") { 2143 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]);
2486 tagType = Command.Tag.SetRenderTarget; 2144 return tv;
2487 data.SetRenderTarget tv = new data.SetRenderTarget(); 2145 }
2488 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]); 2146 case "SetProgram": {
2489 return tv; 2147 data.SetProgram tv = new data.SetProgram();
2490 } 2148 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]);
2491 else if (tag == "SetProgram") { 2149 return tv;
2492 tagType = Command.Tag.SetProgram; 2150 }
2493 data.SetProgram tv = new data.SetProgram(); 2151 case "SetSamplerUniform": {
2494 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]); 2152 data.SetSamplerUniform tv = new data.SetSamplerUniform();
2495 return tv; 2153 tv._0 = (string)fromJSON(Type.String,obj["arg0"]);
2496 } 2154 tv._1 = (int)fromJSON(Type.Int,obj["arg1"]);
2497 else if (tag == "SetSamplerUniform") { 2155 return tv;
2498 tagType = Command.Tag.SetSamplerUniform; 2156 }
2499 data.SetSamplerUniform tv = new data.SetSamplerUniform(); 2157 case "SetTexture": {
2500 tv._0 = (string)fromJSON(Type.String,obj["arg0"]); 2158 data.SetTexture tv = new data.SetTexture();
2501 tv._1 = (int)fromJSON(Type.Int,obj["arg1"]); 2159 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]);
2502 return tv; 2160 tv._1 = (int)fromJSON(Type.Int,obj["arg1"]);
2503 } 2161 return tv;
2504 else if (tag == "SetTexture") { 2162 }
2505 tagType = Command.Tag.SetTexture; 2163 case "SetSampler": {
2506 data.SetTexture tv = new data.SetTexture(); 2164 data.SetSampler tv = new data.SetSampler();
2507 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]); 2165 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]);
2508 tv._1 = (int)fromJSON(Type.Int,obj["arg1"]); 2166 tv._1 = (Maybe<int>)fromJSON(Type.Maybe_Int,obj["arg1"]);
2509 return tv; 2167 return tv;
2510 } 2168 }
2511 else if (tag == "SetSampler") { 2169 case "RenderSlot": {
2512 tagType = Command.Tag.SetSampler; 2170 data.RenderSlot tv = new data.RenderSlot();
2513 data.SetSampler tv = new data.SetSampler(); 2171 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]);
2514 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]); 2172 return tv;
2515 tv._1 = (Maybe<int>)fromJSON(Type.Maybe_Int,obj["arg1"]); 2173 }
2516 return tv; 2174 case "RenderStream": {
2517 } 2175 data.RenderStream tv = new data.RenderStream();
2518 else if (tag == "RenderSlot") { 2176 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]);
2519 tagType = Command.Tag.RenderSlot; 2177 return tv;
2520 data.RenderSlot tv = new data.RenderSlot(); 2178 }
2521 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]); 2179 case "ClearRenderTarget": {
2522 return tv; 2180 data.ClearRenderTarget tv = new data.ClearRenderTarget();
2523 } 2181 tv._0 = (List<global::LambdaCube.IR.ClearImage>)fromJSON(Type.Array_ClearImage,obj["arg0"]);
2524 else if (tag == "RenderStream") { 2182 return tv;
2525 tagType = Command.Tag.RenderStream; 2183 }
2526 data.RenderStream tv = new data.RenderStream(); 2184 case "GenerateMipMap": {
2527 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]); 2185 data.GenerateMipMap tv = new data.GenerateMipMap();
2528 return tv; 2186 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]);
2529 } 2187 return tv;
2530 else if (tag == "ClearRenderTarget") { 2188 }
2531 tagType = Command.Tag.ClearRenderTarget; 2189 case "SaveImage": {
2532 data.ClearRenderTarget tv = new data.ClearRenderTarget(); 2190 data.SaveImage tv = new data.SaveImage();
2533 tv._0 = (List<global::LambdaCube.IR.ClearImage>)fromJSON(Type.Array_ClearImage,obj["arg0"]); 2191 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]);
2534 return tv; 2192 tv._1 = (global::LambdaCube.IR.ImageRef)fromJSON(Type.ImageRef,obj["arg1"]);
2535 } 2193 return tv;
2536 else if (tag == "GenerateMipMap") { 2194 }
2537 tagType = Command.Tag.GenerateMipMap; 2195 case "LoadImage": {
2538 data.GenerateMipMap tv = new data.GenerateMipMap(); 2196 data.LoadImage tv = new data.LoadImage();
2539 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]); 2197 tv._0 = (global::LambdaCube.IR.ImageRef)fromJSON(Type.ImageRef,obj["arg0"]);
2540 return tv; 2198 tv._1 = (int)fromJSON(Type.Int,obj["arg1"]);
2541 } 2199 return tv;
2542 else if (tag == "SaveImage") { 2200 }
2543 tagType = Command.Tag.SaveImage; 2201 default: throw new Exception("unknown constructor: " + tag);
2544 data.SaveImage tv = new data.SaveImage(); 2202 }
2545 tv._0 = (int)fromJSON(Type.Int,obj["arg0"]);
2546 tv._1 = (global::LambdaCube.IR.ImageRef)fromJSON(Type.ImageRef,obj["arg1"]);
2547 return tv;
2548 }
2549 else if (tag == "LoadImage") {
2550 tagType = Command.Tag.LoadImage;
2551 data.LoadImage tv = new data.LoadImage();
2552 tv._0 = (global::LambdaCube.IR.ImageRef)fromJSON(Type.ImageRef,obj["arg0"]);
2553 tv._1 = (int)fromJSON(Type.Int,obj["arg1"]);
2554 return tv;
2555 }
2556 else throw new Exception("unknown constructor: " + tag);
2557 Command o = new Command();
2558 o.tag = tagType;
2559 return o;
2560 } 2203 }
2561 case Type.SamplerDescriptor: { 2204 case Type.SamplerDescriptor: {
2562 string tag = (string)obj["tag"]; 2205 string tag = (string)obj["tag"];
2563 SamplerDescriptor.Tag tagType; 2206 switch (tag) {
2564 if (tag == "SamplerDescriptor") { 2207 case "SamplerDescriptor": {
2565 tagType = SamplerDescriptor.Tag.SamplerDescriptor; 2208 data.SamplerDescriptor tv = new data.SamplerDescriptor();
2566 data.SamplerDescriptor tv = new data.SamplerDescriptor(); 2209 tv.samplerWrapS = (global::LambdaCube.IR.EdgeMode)fromJSON(Type.EdgeMode,obj["samplerWrapS"]);
2567 tv.samplerWrapS = (global::LambdaCube.IR.EdgeMode)fromJSON(Type.EdgeMode,obj["samplerWrapS"]); 2210 tv.samplerWrapT = (Maybe<global::LambdaCube.IR.EdgeMode>)fromJSON(Type.Maybe_EdgeMode,obj["samplerWrapT"]);
2568 tv.samplerWrapT = (Maybe<global::LambdaCube.IR.EdgeMode>)fromJSON(Type.Maybe_EdgeMode,obj["samplerWrapT"]); 2211 tv.samplerWrapR = (Maybe<global::LambdaCube.IR.EdgeMode>)fromJSON(Type.Maybe_EdgeMode,obj["samplerWrapR"]);
2569 tv.samplerWrapR = (Maybe<global::LambdaCube.IR.EdgeMode>)fromJSON(Type.Maybe_EdgeMode,obj["samplerWrapR"]); 2212 tv.samplerMinFilter = (global::LambdaCube.IR.Filter)fromJSON(Type.Filter,obj["samplerMinFilter"]);
2570 tv.samplerMinFilter = (global::LambdaCube.IR.Filter)fromJSON(Type.Filter,obj["samplerMinFilter"]); 2213 tv.samplerMagFilter = (global::LambdaCube.IR.Filter)fromJSON(Type.Filter,obj["samplerMagFilter"]);
2571 tv.samplerMagFilter = (global::LambdaCube.IR.Filter)fromJSON(Type.Filter,obj["samplerMagFilter"]); 2214 tv.samplerBorderColor = (global::LambdaCube.IR.Value)fromJSON(Type.Value,obj["samplerBorderColor"]);
2572 tv.samplerBorderColor = (global::LambdaCube.IR.Value)fromJSON(Type.Value,obj["samplerBorderColor"]); 2215 tv.samplerMinLod = (Maybe<float>)fromJSON(Type.Maybe_Float,obj["samplerMinLod"]);
2573 tv.samplerMinLod = (Maybe<float>)fromJSON(Type.Maybe_Float,obj["samplerMinLod"]); 2216 tv.samplerMaxLod = (Maybe<float>)fromJSON(Type.Maybe_Float,obj["samplerMaxLod"]);
2574 tv.samplerMaxLod = (Maybe<float>)fromJSON(Type.Maybe_Float,obj["samplerMaxLod"]); 2217 tv.samplerLodBias = (float)fromJSON(Type.Float,obj["samplerLodBias"]);
2575 tv.samplerLodBias = (float)fromJSON(Type.Float,obj["samplerLodBias"]); 2218 tv.samplerCompareFunc = (Maybe<global::LambdaCube.IR.ComparisonFunction>)fromJSON(Type.Maybe_ComparisonFunction,obj["samplerCompareFunc"]);
2576 tv.samplerCompareFunc = (Maybe<global::LambdaCube.IR.ComparisonFunction>)fromJSON(Type.Maybe_ComparisonFunction,obj["samplerCompareFunc"]); 2219 return tv;
2577 return tv; 2220 }
2578 } 2221 default: throw new Exception("unknown constructor: " + tag);
2579 else throw new Exception("unknown constructor: " + tag); 2222 }
2580 SamplerDescriptor o = new SamplerDescriptor();
2581 o.tag = tagType;
2582 return o;
2583 } 2223 }
2584 case Type.TextureDescriptor: { 2224 case Type.TextureDescriptor: {
2585 string tag = (string)obj["tag"]; 2225 string tag = (string)obj["tag"];
2586 TextureDescriptor.Tag tagType; 2226 switch (tag) {
2587 if (tag == "TextureDescriptor") { 2227 case "TextureDescriptor": {
2588 tagType = TextureDescriptor.Tag.TextureDescriptor; 2228 data.TextureDescriptor tv = new data.TextureDescriptor();
2589 data.TextureDescriptor tv = new data.TextureDescriptor(); 2229 tv.textureType = (global::LambdaCube.IR.TextureType)fromJSON(Type.TextureType,obj["textureType"]);
2590 tv.textureType = (global::LambdaCube.IR.TextureType)fromJSON(Type.TextureType,obj["textureType"]); 2230 tv.textureSize = (global::LambdaCube.IR.Value)fromJSON(Type.Value,obj["textureSize"]);
2591 tv.textureSize = (global::LambdaCube.IR.Value)fromJSON(Type.Value,obj["textureSize"]); 2231 tv.textureSemantic = (global::LambdaCube.IR.ImageSemantic)fromJSON(Type.ImageSemantic,obj["textureSemantic"]);
2592 tv.textureSemantic = (global::LambdaCube.IR.ImageSemantic)fromJSON(Type.ImageSemantic,obj["textureSemantic"]); 2232 tv.textureSampler = (global::LambdaCube.IR.SamplerDescriptor)fromJSON(Type.SamplerDescriptor,obj["textureSampler"]);
2593 tv.textureSampler = (global::LambdaCube.IR.SamplerDescriptor)fromJSON(Type.SamplerDescriptor,obj["textureSampler"]); 2233 tv.textureBaseLevel = (int)fromJSON(Type.Int,obj["textureBaseLevel"]);
2594 tv.textureBaseLevel = (int)fromJSON(Type.Int,obj["textureBaseLevel"]); 2234 tv.textureMaxLevel = (int)fromJSON(Type.Int,obj["textureMaxLevel"]);
2595 tv.textureMaxLevel = (int)fromJSON(Type.Int,obj["textureMaxLevel"]); 2235 return tv;
2596 return tv; 2236 }
2597 } 2237 default: throw new Exception("unknown constructor: " + tag);
2598 else throw new Exception("unknown constructor: " + tag); 2238 }
2599 TextureDescriptor o = new TextureDescriptor();
2600 o.tag = tagType;
2601 return o;
2602 } 2239 }
2603 case Type.Parameter: { 2240 case Type.Parameter: {
2604 string tag = (string)obj["tag"]; 2241 string tag = (string)obj["tag"];
2605 Parameter.Tag tagType; 2242 switch (tag) {
2606 if (tag == "Parameter") { 2243 case "Parameter": {
2607 tagType = Parameter.Tag.Parameter; 2244 data.Parameter tv = new data.Parameter();
2608 data.Parameter tv = new data.Parameter(); 2245 tv.name = (string)fromJSON(Type.String,obj["name"]);
2609 tv.name = (string)fromJSON(Type.String,obj["name"]); 2246 tv.ty = (global::LambdaCube.IR.InputType)fromJSON(Type.InputType,obj["ty"]);
2610 tv.ty = (global::LambdaCube.IR.InputType)fromJSON(Type.InputType,obj["ty"]); 2247 return tv;
2611 return tv; 2248 }
2612 } 2249 default: throw new Exception("unknown constructor: " + tag);
2613 else throw new Exception("unknown constructor: " + tag); 2250 }
2614 Parameter o = new Parameter();
2615 o.tag = tagType;
2616 return o;
2617 } 2251 }
2618 case Type.Program: { 2252 case Type.Program: {
2619 string tag = (string)obj["tag"]; 2253 string tag = (string)obj["tag"];
2620 Program.Tag tagType; 2254 switch (tag) {
2621 if (tag == "Program") { 2255 case "Program": {
2622 tagType = Program.Tag.Program; 2256 data.Program tv = new data.Program();
2623 data.Program tv = new data.Program(); 2257 tv.programUniforms = (Dictionary<string, global::LambdaCube.IR.InputType>)fromJSON(Type.Map_String_InputType,obj["programUniforms"]);
2624 tv.programUniforms = (Dictionary<string, global::LambdaCube.IR.InputType>)fromJSON(Type.Map_String_InputType,obj["programUniforms"]); 2258 tv.programStreams = (Dictionary<string, global::LambdaCube.IR.Parameter>)fromJSON(Type.Map_String_Parameter,obj["programStreams"]);
2625 tv.programStreams = (Dictionary<string, global::LambdaCube.IR.Parameter>)fromJSON(Type.Map_String_Parameter,obj["programStreams"]); 2259 tv.programInTextures = (Dictionary<string, global::LambdaCube.IR.InputType>)fromJSON(Type.Map_String_InputType,obj["programInTextures"]);
2626 tv.programInTextures = (Dictionary<string, global::LambdaCube.IR.InputType>)fromJSON(Type.Map_String_InputType,obj["programInTextures"]); 2260 tv.programOutput = (List<global::LambdaCube.IR.Parameter>)fromJSON(Type.Array_Parameter,obj["programOutput"]);
2627 tv.programOutput = (List<global::LambdaCube.IR.Parameter>)fromJSON(Type.Array_Parameter,obj["programOutput"]); 2261 tv.vertexShader = (string)fromJSON(Type.String,obj["vertexShader"]);
2628 tv.vertexShader = (string)fromJSON(Type.String,obj["vertexShader"]); 2262 tv.geometryShader = (Maybe<string>)fromJSON(Type.Maybe_String,obj["geometryShader"]);
2629 tv.geometryShader = (Maybe<string>)fromJSON(Type.Maybe_String,obj["geometryShader"]); 2263 tv.fragmentShader = (string)fromJSON(Type.String,obj["fragmentShader"]);
2630 tv.fragmentShader = (string)fromJSON(Type.String,obj["fragmentShader"]); 2264 return tv;
2631 return tv; 2265 }
2632 } 2266 default: throw new Exception("unknown constructor: " + tag);
2633 else throw new Exception("unknown constructor: " + tag); 2267 }
2634 Program o = new Program();
2635 o.tag = tagType;
2636 return o;
2637 } 2268 }
2638 case Type.Slot: { 2269 case Type.Slot: {
2639 string tag = (string)obj["tag"]; 2270 string tag = (string)obj["tag"];
2640 Slot.Tag tagType; 2271 switch (tag) {
2641 if (tag == "Slot") { 2272 case "Slot": {
2642 tagType = Slot.Tag.Slot; 2273 data.Slot tv = new data.Slot();
2643 data.Slot tv = new data.Slot(); 2274 tv.slotName = (string)fromJSON(Type.String,obj["slotName"]);
2644 tv.slotName = (string)fromJSON(Type.String,obj["slotName"]); 2275 tv.slotStreams = (Dictionary<string, global::LambdaCube.IR.InputType>)fromJSON(Type.Map_String_InputType,obj["slotStreams"]);
2645 tv.slotStreams = (Dictionary<string, global::LambdaCube.IR.InputType>)fromJSON(Type.Map_String_InputType,obj["slotStreams"]); 2276 tv.slotUniforms = (Dictionary<string, global::LambdaCube.IR.InputType>)fromJSON(Type.Map_String_InputType,obj["slotUniforms"]);
2646 tv.slotUniforms = (Dictionary<string, global::LambdaCube.IR.InputType>)fromJSON(Type.Map_String_InputType,obj["slotUniforms"]); 2277 tv.slotPrimitive = (global::LambdaCube.IR.FetchPrimitive)fromJSON(Type.FetchPrimitive,obj["slotPrimitive"]);
2647 tv.slotPrimitive = (global::LambdaCube.IR.FetchPrimitive)fromJSON(Type.FetchPrimitive,obj["slotPrimitive"]); 2278 tv.slotPrograms = (List<int>)fromJSON(Type.Array_Int,obj["slotPrograms"]);
2648 tv.slotPrograms = (List<int>)fromJSON(Type.Array_Int,obj["slotPrograms"]); 2279 return tv;
2649 return tv; 2280 }
2650 } 2281 default: throw new Exception("unknown constructor: " + tag);
2651 else throw new Exception("unknown constructor: " + tag); 2282 }
2652 Slot o = new Slot();
2653 o.tag = tagType;
2654 return o;
2655 } 2283 }
2656 case Type.StreamData: { 2284 case Type.StreamData: {
2657 string tag = (string)obj["tag"]; 2285 string tag = (string)obj["tag"];
2658 StreamData.Tag tagType; 2286 switch (tag) {
2659 if (tag == "StreamData") { 2287 case "StreamData": {
2660 tagType = StreamData.Tag.StreamData; 2288 data.StreamData tv = new data.StreamData();
2661 data.StreamData tv = new data.StreamData(); 2289 tv.streamData = (Dictionary<string, global::LambdaCube.IR.ArrayValue>)fromJSON(Type.Map_String_ArrayValue,obj["streamData"]);
2662 tv.streamData = (Dictionary<string, global::LambdaCube.IR.ArrayValue>)fromJSON(Type.Map_String_ArrayValue,obj["streamData"]); 2290 tv.streamType = (Dictionary<string, global::LambdaCube.IR.InputType>)fromJSON(Type.Map_String_InputType,obj["streamType"]);
2663 tv.streamType = (Dictionary<string, global::LambdaCube.IR.InputType>)fromJSON(Type.Map_String_InputType,obj["streamType"]); 2291 tv.streamPrimitive = (global::LambdaCube.IR.FetchPrimitive)fromJSON(Type.FetchPrimitive,obj["streamPrimitive"]);
2664 tv.streamPrimitive = (global::LambdaCube.IR.FetchPrimitive)fromJSON(Type.FetchPrimitive,obj["streamPrimitive"]); 2292 tv.streamPrograms = (List<int>)fromJSON(Type.Array_Int,obj["streamPrograms"]);
2665 tv.streamPrograms = (List<int>)fromJSON(Type.Array_Int,obj["streamPrograms"]); 2293 return tv;
2666 return tv; 2294 }
2667 } 2295 default: throw new Exception("unknown constructor: " + tag);
2668 else throw new Exception("unknown constructor: " + tag); 2296 }
2669 StreamData o = new StreamData();
2670 o.tag = tagType;
2671 return o;
2672 } 2297 }
2673 case Type.TargetItem: { 2298 case Type.TargetItem: {
2674 string tag = (string)obj["tag"]; 2299 string tag = (string)obj["tag"];
2675 TargetItem.Tag tagType; 2300 switch (tag) {
2676 if (tag == "TargetItem") { 2301 case "TargetItem": {
2677 tagType = TargetItem.Tag.TargetItem; 2302 data.TargetItem tv = new data.TargetItem();
2678 data.TargetItem tv = new data.TargetItem(); 2303 tv.targetSemantic = (global::LambdaCube.IR.ImageSemantic)fromJSON(Type.ImageSemantic,obj["targetSemantic"]);
2679 tv.targetSemantic = (global::LambdaCube.IR.ImageSemantic)fromJSON(Type.ImageSemantic,obj["targetSemantic"]); 2304 tv.targetRef = (Maybe<global::LambdaCube.IR.ImageRef>)fromJSON(Type.Maybe_ImageRef,obj["targetRef"]);
2680 tv.targetRef = (Maybe<global::LambdaCube.IR.ImageRef>)fromJSON(Type.Maybe_ImageRef,obj["targetRef"]); 2305 return tv;
2681 return tv; 2306 }
2682 } 2307 default: throw new Exception("unknown constructor: " + tag);
2683 else throw new Exception("unknown constructor: " + tag); 2308 }
2684 TargetItem o = new TargetItem();
2685 o.tag = tagType;
2686 return o;
2687 } 2309 }
2688 case Type.RenderTarget: { 2310 case Type.RenderTarget: {
2689 string tag = (string)obj["tag"]; 2311 string tag = (string)obj["tag"];
2690 RenderTarget.Tag tagType; 2312 switch (tag) {
2691 if (tag == "RenderTarget") { 2313 case "RenderTarget": {
2692 tagType = RenderTarget.Tag.RenderTarget; 2314 data.RenderTarget tv = new data.RenderTarget();
2693 data.RenderTarget tv = new data.RenderTarget(); 2315 tv.renderTargets = (List<global::LambdaCube.IR.TargetItem>)fromJSON(Type.Array_TargetItem,obj["renderTargets"]);
2694 tv.renderTargets = (List<global::LambdaCube.IR.TargetItem>)fromJSON(Type.Array_TargetItem,obj["renderTargets"]); 2316 return tv;
2695 return tv; 2317 }
2696 } 2318 default: throw new Exception("unknown constructor: " + tag);
2697 else throw new Exception("unknown constructor: " + tag); 2319 }
2698 RenderTarget o = new RenderTarget();
2699 o.tag = tagType;
2700 return o;
2701 } 2320 }
2702 case Type.Backend: { 2321 case Type.Backend: {
2703 string tag = (string)obj["tag"]; 2322 string tag = (string)obj["tag"];
2704 Backend.Tag tagType; 2323 Backend.Tag tagType;
2705 if (tag == "WebGL1") { 2324 switch (tag) {
2706 tagType = Backend.Tag.WebGL1; 2325 case "WebGL1": tagType = Backend.Tag.WebGL1; break;
2707 } 2326 case "OpenGL33": tagType = Backend.Tag.OpenGL33; break;
2708 else if (tag == "OpenGL33") { 2327 default: throw new Exception("unknown constructor: " + tag);
2709 tagType = Backend.Tag.OpenGL33;
2710 } 2328 }
2711 else throw new Exception("unknown constructor: " + tag);
2712 Backend o = new Backend(); 2329 Backend o = new Backend();
2713 o.tag = tagType; 2330 o.tag = tagType;
2714 return o; 2331 return o;
2715 } 2332 }
2716 case Type.Pipeline: { 2333 case Type.Pipeline: {
2717 string tag = (string)obj["tag"]; 2334 string tag = (string)obj["tag"];
2718 Pipeline.Tag tagType; 2335 switch (tag) {
2719 if (tag == "Pipeline") { 2336 case "Pipeline": {
2720 tagType = Pipeline.Tag.Pipeline; 2337 data.Pipeline tv = new data.Pipeline();
2721 data.Pipeline tv = new data.Pipeline(); 2338 tv.info = (string)fromJSON(Type.String,obj["info"]);
2722 tv.info = (string)fromJSON(Type.String,obj["info"]); 2339 tv.backend = (global::LambdaCube.IR.Backend)fromJSON(Type.Backend,obj["backend"]);
2723 tv.backend = (global::LambdaCube.IR.Backend)fromJSON(Type.Backend,obj["backend"]); 2340 tv.textures = (List<global::LambdaCube.IR.TextureDescriptor>)fromJSON(Type.Array_TextureDescriptor,obj["textures"]);
2724 tv.textures = (List<global::LambdaCube.IR.TextureDescriptor>)fromJSON(Type.Array_TextureDescriptor,obj["textures"]); 2341 tv.samplers = (List<global::LambdaCube.IR.SamplerDescriptor>)fromJSON(Type.Array_SamplerDescriptor,obj["samplers"]);
2725 tv.samplers = (List<global::LambdaCube.IR.SamplerDescriptor>)fromJSON(Type.Array_SamplerDescriptor,obj["samplers"]); 2342 tv.targets = (List<global::LambdaCube.IR.RenderTarget>)fromJSON(Type.Array_RenderTarget,obj["targets"]);
2726 tv.targets = (List<global::LambdaCube.IR.RenderTarget>)fromJSON(Type.Array_RenderTarget,obj["targets"]); 2343 tv.programs = (List<global::LambdaCube.IR.Program>)fromJSON(Type.Array_Program,obj["programs"]);
2727 tv.programs = (List<global::LambdaCube.IR.Program>)fromJSON(Type.Array_Program,obj["programs"]); 2344 tv.slots = (List<global::LambdaCube.IR.Slot>)fromJSON(Type.Array_Slot,obj["slots"]);
2728 tv.slots = (List<global::LambdaCube.IR.Slot>)fromJSON(Type.Array_Slot,obj["slots"]); 2345 tv.streams = (List<global::LambdaCube.IR.StreamData>)fromJSON(Type.Array_StreamData,obj["streams"]);
2729 tv.streams = (List<global::LambdaCube.IR.StreamData>)fromJSON(Type.Array_StreamData,obj["streams"]); 2346 tv.commands = (List<global::LambdaCube.IR.Command>)fromJSON(Type.Array_Command,obj["commands"]);
2730 tv.commands = (List<global::LambdaCube.IR.Command>)fromJSON(Type.Array_Command,obj["commands"]); 2347 return tv;
2731 return tv; 2348 }
2732 } 2349 default: throw new Exception("unknown constructor: " + tag);
2733 else throw new Exception("unknown constructor: " + tag); 2350 }
2734 Pipeline o = new Pipeline();
2735 o.tag = tagType;
2736 return o;
2737 } 2351 }
2738 } 2352 }
2739 throw new Exception("unknown type"); 2353 throw new Exception("unknown type");
diff --git a/ddl/out/LambdaCube.IR.hpp b/ddl/out/LambdaCube.IR.hpp
index 56d32ed..ebbee08 100644
--- a/ddl/out/LambdaCube.IR.hpp
+++ b/ddl/out/LambdaCube.IR.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4#ifndef HEADER_LambdaCube.IR_H 4#ifndef HEADER_LambdaCube.IR_H
5#define HEADER_LambdaCube.IR_H 5#define HEADER_LambdaCube.IR_H
diff --git a/ddl/out/LambdaCube.IR.hs b/ddl/out/LambdaCube.IR.hs
index b18a2c7..bcb1850 100644
--- a/ddl/out/LambdaCube.IR.hs
+++ b/ddl/out/LambdaCube.IR.hs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T13:14:17.421561000000Z 2-- 2016-03-21T13:31:09.634879000000Z
3 3
4{-# LANGUAGE OverloadedStrings, RecordWildCards #-} 4{-# LANGUAGE OverloadedStrings, RecordWildCards #-}
5module LambdaCube.IR where 5module LambdaCube.IR where
diff --git a/ddl/out/LambdaCube.IR.purs b/ddl/out/LambdaCube.IR.purs
index 89965ef..56b5f5b 100644
--- a/ddl/out/LambdaCube.IR.purs
+++ b/ddl/out/LambdaCube.IR.purs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T13:14:17.421561000000Z 2-- 2016-03-21T13:31:09.634879000000Z
3 3
4module LambdaCube.IR where 4module LambdaCube.IR where
5import Prelude 5import Prelude
diff --git a/ddl/out/LambdaCube.IR.swift b/ddl/out/LambdaCube.IR.swift
index 62cbaa3..7b848b1 100644
--- a/ddl/out/LambdaCube.IR.swift
+++ b/ddl/out/LambdaCube.IR.swift
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4typealias StreamName = Int 4typealias StreamName = Int
5 5
diff --git a/ddl/out/LambdaCube.IR2.hpp b/ddl/out/LambdaCube.IR2.hpp
index bdcdec3..718778e 100644
--- a/ddl/out/LambdaCube.IR2.hpp
+++ b/ddl/out/LambdaCube.IR2.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4#ifndef HEADER_LambdaCube.IR_H 4#ifndef HEADER_LambdaCube.IR_H
5#define HEADER_LambdaCube.IR_H 5#define HEADER_LambdaCube.IR_H
diff --git a/ddl/out/LambdaCube.Mesh.cpp b/ddl/out/LambdaCube.Mesh.cpp
index 50e4072..8687341 100644
--- a/ddl/out/LambdaCube.Mesh.cpp
+++ b/ddl/out/LambdaCube.Mesh.cpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.184851000000Z 2// 2016-03-21T13:31:10.335329000000Z
3 3
4#include "LambdaCube.Mesh.hpp" 4#include "LambdaCube.Mesh.hpp"
5template<> json toJSON<std::shared_ptr<MeshAttribute>>(std::shared_ptr<MeshAttribute> &v) { 5template<> json toJSON<std::shared_ptr<MeshAttribute>>(std::shared_ptr<MeshAttribute> &v) {
diff --git a/ddl/out/LambdaCube.Mesh.cs b/ddl/out/LambdaCube.Mesh.cs
index 694cbef..096daef 100644
--- a/ddl/out/LambdaCube.Mesh.cs
+++ b/ddl/out/LambdaCube.Mesh.cs
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.184851000000Z 2// 2016-03-21T13:31:10.335329000000Z
3 3
4using System; 4using System;
5using System.Linq; 5using System.Linq;
@@ -187,109 +187,89 @@ namespace LambdaCube.Mesh {
187 187
188 case Type.MeshAttribute: { 188 case Type.MeshAttribute: {
189 string tag = (string)obj["tag"]; 189 string tag = (string)obj["tag"];
190 MeshAttribute.Tag tagType; 190 switch (tag) {
191 if (tag == "A_Float") { 191 case "A_Float": {
192 tagType = MeshAttribute.Tag.A_Float; 192 data.A_Float tv = new data.A_Float();
193 data.A_Float tv = new data.A_Float(); 193 tv._0 = (List<float>)fromJSON(Type.Array_Float,obj["arg0"]);
194 tv._0 = (List<float>)fromJSON(Type.Array_Float,obj["arg0"]); 194 return tv;
195 return tv; 195 }
196 case "A_V2F": {
197 data.A_V2F tv = new data.A_V2F();
198 tv._0 = (List<V2<float>>)fromJSON(Type.Array_V2_Float,obj["arg0"]);
199 return tv;
200 }
201 case "A_V3F": {
202 data.A_V3F tv = new data.A_V3F();
203 tv._0 = (List<V3<float>>)fromJSON(Type.Array_V3_Float,obj["arg0"]);
204 return tv;
205 }
206 case "A_V4F": {
207 data.A_V4F tv = new data.A_V4F();
208 tv._0 = (List<V4<float>>)fromJSON(Type.Array_V4_Float,obj["arg0"]);
209 return tv;
210 }
211 case "A_M22F": {
212 data.A_M22F tv = new data.A_M22F();
213 tv._0 = (List<V2<V2<float>>>)fromJSON(Type.Array_V2_V2_Float,obj["arg0"]);
214 return tv;
215 }
216 case "A_M33F": {
217 data.A_M33F tv = new data.A_M33F();
218 tv._0 = (List<V3<V3<float>>>)fromJSON(Type.Array_V3_V3_Float,obj["arg0"]);
219 return tv;
220 }
221 case "A_M44F": {
222 data.A_M44F tv = new data.A_M44F();
223 tv._0 = (List<V4<V4<float>>>)fromJSON(Type.Array_V4_V4_Float,obj["arg0"]);
224 return tv;
225 }
226 case "A_Int": {
227 data.A_Int tv = new data.A_Int();
228 tv._0 = (List<int>)fromJSON(Type.Array_Int32,obj["arg0"]);
229 return tv;
230 }
231 case "A_Word": {
232 data.A_Word tv = new data.A_Word();
233 tv._0 = (List<uint>)fromJSON(Type.Array_Word32,obj["arg0"]);
234 return tv;
235 }
236 default: throw new Exception("unknown constructor: " + tag);
196 } 237 }
197 else if (tag == "A_V2F") {
198 tagType = MeshAttribute.Tag.A_V2F;
199 data.A_V2F tv = new data.A_V2F();
200 tv._0 = (List<V2<float>>)fromJSON(Type.Array_V2_Float,obj["arg0"]);
201 return tv;
202 }
203 else if (tag == "A_V3F") {
204 tagType = MeshAttribute.Tag.A_V3F;
205 data.A_V3F tv = new data.A_V3F();
206 tv._0 = (List<V3<float>>)fromJSON(Type.Array_V3_Float,obj["arg0"]);
207 return tv;
208 }
209 else if (tag == "A_V4F") {
210 tagType = MeshAttribute.Tag.A_V4F;
211 data.A_V4F tv = new data.A_V4F();
212 tv._0 = (List<V4<float>>)fromJSON(Type.Array_V4_Float,obj["arg0"]);
213 return tv;
214 }
215 else if (tag == "A_M22F") {
216 tagType = MeshAttribute.Tag.A_M22F;
217 data.A_M22F tv = new data.A_M22F();
218 tv._0 = (List<V2<V2<float>>>)fromJSON(Type.Array_V2_V2_Float,obj["arg0"]);
219 return tv;
220 }
221 else if (tag == "A_M33F") {
222 tagType = MeshAttribute.Tag.A_M33F;
223 data.A_M33F tv = new data.A_M33F();
224 tv._0 = (List<V3<V3<float>>>)fromJSON(Type.Array_V3_V3_Float,obj["arg0"]);
225 return tv;
226 }
227 else if (tag == "A_M44F") {
228 tagType = MeshAttribute.Tag.A_M44F;
229 data.A_M44F tv = new data.A_M44F();
230 tv._0 = (List<V4<V4<float>>>)fromJSON(Type.Array_V4_V4_Float,obj["arg0"]);
231 return tv;
232 }
233 else if (tag == "A_Int") {
234 tagType = MeshAttribute.Tag.A_Int;
235 data.A_Int tv = new data.A_Int();
236 tv._0 = (List<int>)fromJSON(Type.Array_Int32,obj["arg0"]);
237 return tv;
238 }
239 else if (tag == "A_Word") {
240 tagType = MeshAttribute.Tag.A_Word;
241 data.A_Word tv = new data.A_Word();
242 tv._0 = (List<uint>)fromJSON(Type.Array_Word32,obj["arg0"]);
243 return tv;
244 }
245 else throw new Exception("unknown constructor: " + tag);
246 MeshAttribute o = new MeshAttribute();
247 o.tag = tagType;
248 return o;
249 } 238 }
250 case Type.MeshPrimitive: { 239 case Type.MeshPrimitive: {
251 string tag = (string)obj["tag"]; 240 string tag = (string)obj["tag"];
252 MeshPrimitive.Tag tagType; 241 MeshPrimitive.Tag tagType;
253 if (tag == "P_Points") { 242 switch (tag) {
254 tagType = MeshPrimitive.Tag.P_Points; 243 case "P_Points": tagType = MeshPrimitive.Tag.P_Points; break;
255 } 244 case "P_TriangleStrip": tagType = MeshPrimitive.Tag.P_TriangleStrip; break;
256 else if (tag == "P_TriangleStrip") { 245 case "P_Triangles": tagType = MeshPrimitive.Tag.P_Triangles; break;
257 tagType = MeshPrimitive.Tag.P_TriangleStrip; 246 case "P_TriangleStripI": {
258 } 247 data.P_TriangleStripI tv = new data.P_TriangleStripI();
259 else if (tag == "P_Triangles") { 248 tv._0 = (List<int>)fromJSON(Type.Array_Int32,obj["arg0"]);
260 tagType = MeshPrimitive.Tag.P_Triangles; 249 return tv;
250 }
251 case "P_TrianglesI": {
252 data.P_TrianglesI tv = new data.P_TrianglesI();
253 tv._0 = (List<int>)fromJSON(Type.Array_Int32,obj["arg0"]);
254 return tv;
255 }
256 default: throw new Exception("unknown constructor: " + tag);
261 } 257 }
262 else if (tag == "P_TriangleStripI") {
263 tagType = MeshPrimitive.Tag.P_TriangleStripI;
264 data.P_TriangleStripI tv = new data.P_TriangleStripI();
265 tv._0 = (List<int>)fromJSON(Type.Array_Int32,obj["arg0"]);
266 return tv;
267 }
268 else if (tag == "P_TrianglesI") {
269 tagType = MeshPrimitive.Tag.P_TrianglesI;
270 data.P_TrianglesI tv = new data.P_TrianglesI();
271 tv._0 = (List<int>)fromJSON(Type.Array_Int32,obj["arg0"]);
272 return tv;
273 }
274 else throw new Exception("unknown constructor: " + tag);
275 MeshPrimitive o = new MeshPrimitive(); 258 MeshPrimitive o = new MeshPrimitive();
276 o.tag = tagType; 259 o.tag = tagType;
277 return o; 260 return o;
278 } 261 }
279 case Type.Mesh: { 262 case Type.Mesh: {
280 string tag = (string)obj["tag"]; 263 string tag = (string)obj["tag"];
281 Mesh.Tag tagType; 264 switch (tag) {
282 if (tag == "Mesh") { 265 case "Mesh": {
283 tagType = Mesh.Tag.Mesh; 266 data.Mesh tv = new data.Mesh();
284 data.Mesh tv = new data.Mesh(); 267 tv.mAttributes = (Dictionary<string, global::LambdaCube.Mesh.MeshAttribute>)fromJSON(Type.Map_String_MeshAttribute,obj["mAttributes"]);
285 tv.mAttributes = (Dictionary<string, global::LambdaCube.Mesh.MeshAttribute>)fromJSON(Type.Map_String_MeshAttribute,obj["mAttributes"]); 268 tv.mPrimitive = (global::LambdaCube.Mesh.MeshPrimitive)fromJSON(Type.MeshPrimitive,obj["mPrimitive"]);
286 tv.mPrimitive = (global::LambdaCube.Mesh.MeshPrimitive)fromJSON(Type.MeshPrimitive,obj["mPrimitive"]); 269 return tv;
287 return tv; 270 }
271 default: throw new Exception("unknown constructor: " + tag);
288 } 272 }
289 else throw new Exception("unknown constructor: " + tag);
290 Mesh o = new Mesh();
291 o.tag = tagType;
292 return o;
293 } 273 }
294 } 274 }
295 throw new Exception("unknown type"); 275 throw new Exception("unknown type");
diff --git a/ddl/out/LambdaCube.Mesh.hpp b/ddl/out/LambdaCube.Mesh.hpp
index 4f259f3..6b8bb85 100644
--- a/ddl/out/LambdaCube.Mesh.hpp
+++ b/ddl/out/LambdaCube.Mesh.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.184851000000Z 2// 2016-03-21T13:31:10.335329000000Z
3 3
4#ifndef HEADER_LambdaCube.Mesh_H 4#ifndef HEADER_LambdaCube.Mesh_H
5#define HEADER_LambdaCube.Mesh_H 5#define HEADER_LambdaCube.Mesh_H
diff --git a/ddl/out/LambdaCube.Mesh.hs b/ddl/out/LambdaCube.Mesh.hs
index 4ecb2f0..173a689 100644
--- a/ddl/out/LambdaCube.Mesh.hs
+++ b/ddl/out/LambdaCube.Mesh.hs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T13:14:18.184851000000Z 2-- 2016-03-21T13:31:10.335329000000Z
3 3
4{-# LANGUAGE OverloadedStrings, RecordWildCards #-} 4{-# LANGUAGE OverloadedStrings, RecordWildCards #-}
5module LambdaCube.Mesh where 5module LambdaCube.Mesh where
diff --git a/ddl/out/LambdaCube.Mesh.purs b/ddl/out/LambdaCube.Mesh.purs
index ef25eb8..1fef519 100644
--- a/ddl/out/LambdaCube.Mesh.purs
+++ b/ddl/out/LambdaCube.Mesh.purs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T13:14:18.184851000000Z 2-- 2016-03-21T13:31:10.335329000000Z
3 3
4module LambdaCube.Mesh where 4module LambdaCube.Mesh where
5import Prelude 5import Prelude
diff --git a/ddl/out/LambdaCube.Mesh.swift b/ddl/out/LambdaCube.Mesh.swift
index c5e4257..bb71038 100644
--- a/ddl/out/LambdaCube.Mesh.swift
+++ b/ddl/out/LambdaCube.Mesh.swift
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.184851000000Z 2// 2016-03-21T13:31:10.335329000000Z
3 3
4enum MeshAttribute { 4enum MeshAttribute {
5 case A_Float(Array<Float>) 5 case A_Float(Array<Float>)
diff --git a/ddl/out/LambdaCube.Mesh2.hpp b/ddl/out/LambdaCube.Mesh2.hpp
index 1b8c6ad..3f28a3e 100644
--- a/ddl/out/LambdaCube.Mesh2.hpp
+++ b/ddl/out/LambdaCube.Mesh2.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.184851000000Z 2// 2016-03-21T13:31:10.335329000000Z
3 3
4#ifndef HEADER_LambdaCube.Mesh_H 4#ifndef HEADER_LambdaCube.Mesh_H
5#define HEADER_LambdaCube.Mesh_H 5#define HEADER_LambdaCube.Mesh_H
diff --git a/ddl/out/LambdaCube.PipelineSchema.cpp b/ddl/out/LambdaCube.PipelineSchema.cpp
index f4c1946..dd0ba47 100644
--- a/ddl/out/LambdaCube.PipelineSchema.cpp
+++ b/ddl/out/LambdaCube.PipelineSchema.cpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.137981000000Z 2// 2016-03-21T13:31:10.293368000000Z
3 3
4#include "LambdaCube.PipelineSchema.hpp" 4#include "LambdaCube.PipelineSchema.hpp"
5template<> json toJSON<std::shared_ptr<StreamType>>(std::shared_ptr<StreamType> &v) { 5template<> json toJSON<std::shared_ptr<StreamType>>(std::shared_ptr<StreamType> &v) {
diff --git a/ddl/out/LambdaCube.PipelineSchema.cs b/ddl/out/LambdaCube.PipelineSchema.cs
index 68acd42..acdbcc1 100644
--- a/ddl/out/LambdaCube.PipelineSchema.cs
+++ b/ddl/out/LambdaCube.PipelineSchema.cs
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.137981000000Z 2// 2016-03-21T13:31:10.293368000000Z
3 3
4using System; 4using System;
5using System.Linq; 5using System.Linq;
@@ -112,103 +112,57 @@ namespace LambdaCube.PipelineSchema {
112 case Type.StreamType: { 112 case Type.StreamType: {
113 string tag = (string)obj["tag"]; 113 string tag = (string)obj["tag"];
114 StreamType.Tag tagType; 114 StreamType.Tag tagType;
115 if (tag == "Attribute_Word") { 115 switch (tag) {
116 tagType = StreamType.Tag.Attribute_Word; 116 case "Attribute_Word": tagType = StreamType.Tag.Attribute_Word; break;
117 case "Attribute_V2U": tagType = StreamType.Tag.Attribute_V2U; break;
118 case "Attribute_V3U": tagType = StreamType.Tag.Attribute_V3U; break;
119 case "Attribute_V4U": tagType = StreamType.Tag.Attribute_V4U; break;
120 case "Attribute_Int": tagType = StreamType.Tag.Attribute_Int; break;
121 case "Attribute_V2I": tagType = StreamType.Tag.Attribute_V2I; break;
122 case "Attribute_V3I": tagType = StreamType.Tag.Attribute_V3I; break;
123 case "Attribute_V4I": tagType = StreamType.Tag.Attribute_V4I; break;
124 case "Attribute_Float": tagType = StreamType.Tag.Attribute_Float; break;
125 case "Attribute_V2F": tagType = StreamType.Tag.Attribute_V2F; break;
126 case "Attribute_V3F": tagType = StreamType.Tag.Attribute_V3F; break;
127 case "Attribute_V4F": tagType = StreamType.Tag.Attribute_V4F; break;
128 case "Attribute_M22F": tagType = StreamType.Tag.Attribute_M22F; break;
129 case "Attribute_M23F": tagType = StreamType.Tag.Attribute_M23F; break;
130 case "Attribute_M24F": tagType = StreamType.Tag.Attribute_M24F; break;
131 case "Attribute_M32F": tagType = StreamType.Tag.Attribute_M32F; break;
132 case "Attribute_M33F": tagType = StreamType.Tag.Attribute_M33F; break;
133 case "Attribute_M34F": tagType = StreamType.Tag.Attribute_M34F; break;
134 case "Attribute_M42F": tagType = StreamType.Tag.Attribute_M42F; break;
135 case "Attribute_M43F": tagType = StreamType.Tag.Attribute_M43F; break;
136 case "Attribute_M44F": tagType = StreamType.Tag.Attribute_M44F; break;
137 default: throw new Exception("unknown constructor: " + tag);
117 } 138 }
118 else if (tag == "Attribute_V2U") {
119 tagType = StreamType.Tag.Attribute_V2U;
120 }
121 else if (tag == "Attribute_V3U") {
122 tagType = StreamType.Tag.Attribute_V3U;
123 }
124 else if (tag == "Attribute_V4U") {
125 tagType = StreamType.Tag.Attribute_V4U;
126 }
127 else if (tag == "Attribute_Int") {
128 tagType = StreamType.Tag.Attribute_Int;
129 }
130 else if (tag == "Attribute_V2I") {
131 tagType = StreamType.Tag.Attribute_V2I;
132 }
133 else if (tag == "Attribute_V3I") {
134 tagType = StreamType.Tag.Attribute_V3I;
135 }
136 else if (tag == "Attribute_V4I") {
137 tagType = StreamType.Tag.Attribute_V4I;
138 }
139 else if (tag == "Attribute_Float") {
140 tagType = StreamType.Tag.Attribute_Float;
141 }
142 else if (tag == "Attribute_V2F") {
143 tagType = StreamType.Tag.Attribute_V2F;
144 }
145 else if (tag == "Attribute_V3F") {
146 tagType = StreamType.Tag.Attribute_V3F;
147 }
148 else if (tag == "Attribute_V4F") {
149 tagType = StreamType.Tag.Attribute_V4F;
150 }
151 else if (tag == "Attribute_M22F") {
152 tagType = StreamType.Tag.Attribute_M22F;
153 }
154 else if (tag == "Attribute_M23F") {
155 tagType = StreamType.Tag.Attribute_M23F;
156 }
157 else if (tag == "Attribute_M24F") {
158 tagType = StreamType.Tag.Attribute_M24F;
159 }
160 else if (tag == "Attribute_M32F") {
161 tagType = StreamType.Tag.Attribute_M32F;
162 }
163 else if (tag == "Attribute_M33F") {
164 tagType = StreamType.Tag.Attribute_M33F;
165 }
166 else if (tag == "Attribute_M34F") {
167 tagType = StreamType.Tag.Attribute_M34F;
168 }
169 else if (tag == "Attribute_M42F") {
170 tagType = StreamType.Tag.Attribute_M42F;
171 }
172 else if (tag == "Attribute_M43F") {
173 tagType = StreamType.Tag.Attribute_M43F;
174 }
175 else if (tag == "Attribute_M44F") {
176 tagType = StreamType.Tag.Attribute_M44F;
177 }
178 else throw new Exception("unknown constructor: " + tag);
179 StreamType o = new StreamType(); 139 StreamType o = new StreamType();
180 o.tag = tagType; 140 o.tag = tagType;
181 return o; 141 return o;
182 } 142 }
183 case Type.ObjectArraySchema: { 143 case Type.ObjectArraySchema: {
184 string tag = (string)obj["tag"]; 144 string tag = (string)obj["tag"];
185 ObjectArraySchema.Tag tagType; 145 switch (tag) {
186 if (tag == "ObjectArraySchema") { 146 case "ObjectArraySchema": {
187 tagType = ObjectArraySchema.Tag.ObjectArraySchema; 147 data.ObjectArraySchema tv = new data.ObjectArraySchema();
188 data.ObjectArraySchema tv = new data.ObjectArraySchema(); 148 tv.primitive = (global::LambdaCube.PipelineSchema.FetchPrimitive)fromJSON(Type.FetchPrimitive,obj["primitive"]);
189 tv.primitive = (global::LambdaCube.PipelineSchema.FetchPrimitive)fromJSON(Type.FetchPrimitive,obj["primitive"]); 149 tv.attributes = (Dictionary<string, global::LambdaCube.PipelineSchema.StreamType>)fromJSON(Type.Map_String_StreamType,obj["attributes"]);
190 tv.attributes = (Dictionary<string, global::LambdaCube.PipelineSchema.StreamType>)fromJSON(Type.Map_String_StreamType,obj["attributes"]); 150 return tv;
191 return tv; 151 }
152 default: throw new Exception("unknown constructor: " + tag);
192 } 153 }
193 else throw new Exception("unknown constructor: " + tag);
194 ObjectArraySchema o = new ObjectArraySchema();
195 o.tag = tagType;
196 return o;
197 } 154 }
198 case Type.PipelineSchema: { 155 case Type.PipelineSchema: {
199 string tag = (string)obj["tag"]; 156 string tag = (string)obj["tag"];
200 PipelineSchema.Tag tagType; 157 switch (tag) {
201 if (tag == "PipelineSchema") { 158 case "PipelineSchema": {
202 tagType = PipelineSchema.Tag.PipelineSchema; 159 data.PipelineSchema tv = new data.PipelineSchema();
203 data.PipelineSchema tv = new data.PipelineSchema(); 160 tv.objectArrays = (Dictionary<string, global::LambdaCube.PipelineSchema.ObjectArraySchema>)fromJSON(Type.Map_String_ObjectArraySchema,obj["objectArrays"]);
204 tv.objectArrays = (Dictionary<string, global::LambdaCube.PipelineSchema.ObjectArraySchema>)fromJSON(Type.Map_String_ObjectArraySchema,obj["objectArrays"]); 161 tv.uniforms = (Dictionary<string, global::LambdaCube.PipelineSchema.InputType>)fromJSON(Type.Map_String_InputType,obj["uniforms"]);
205 tv.uniforms = (Dictionary<string, global::LambdaCube.PipelineSchema.InputType>)fromJSON(Type.Map_String_InputType,obj["uniforms"]); 162 return tv;
206 return tv; 163 }
164 default: throw new Exception("unknown constructor: " + tag);
207 } 165 }
208 else throw new Exception("unknown constructor: " + tag);
209 PipelineSchema o = new PipelineSchema();
210 o.tag = tagType;
211 return o;
212 } 166 }
213 } 167 }
214 throw new Exception("unknown type"); 168 throw new Exception("unknown type");
diff --git a/ddl/out/LambdaCube.PipelineSchema.hpp b/ddl/out/LambdaCube.PipelineSchema.hpp
index d0777fe..2760daa 100644
--- a/ddl/out/LambdaCube.PipelineSchema.hpp
+++ b/ddl/out/LambdaCube.PipelineSchema.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.137981000000Z 2// 2016-03-21T13:31:10.293368000000Z
3 3
4#ifndef HEADER_LambdaCube.PipelineSchema_H 4#ifndef HEADER_LambdaCube.PipelineSchema_H
5#define HEADER_LambdaCube.PipelineSchema_H 5#define HEADER_LambdaCube.PipelineSchema_H
diff --git a/ddl/out/LambdaCube.PipelineSchema.hs b/ddl/out/LambdaCube.PipelineSchema.hs
index a7f3e40..9237fff 100644
--- a/ddl/out/LambdaCube.PipelineSchema.hs
+++ b/ddl/out/LambdaCube.PipelineSchema.hs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T13:14:18.137981000000Z 2-- 2016-03-21T13:31:10.293368000000Z
3 3
4{-# LANGUAGE OverloadedStrings, RecordWildCards #-} 4{-# LANGUAGE OverloadedStrings, RecordWildCards #-}
5module LambdaCube.PipelineSchema where 5module LambdaCube.PipelineSchema where
diff --git a/ddl/out/LambdaCube.PipelineSchema.purs b/ddl/out/LambdaCube.PipelineSchema.purs
index f8c210b..c7a5b54 100644
--- a/ddl/out/LambdaCube.PipelineSchema.purs
+++ b/ddl/out/LambdaCube.PipelineSchema.purs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T13:14:18.137981000000Z 2-- 2016-03-21T13:31:10.293368000000Z
3 3
4module LambdaCube.PipelineSchema where 4module LambdaCube.PipelineSchema where
5import Prelude 5import Prelude
diff --git a/ddl/out/LambdaCube.PipelineSchema.swift b/ddl/out/LambdaCube.PipelineSchema.swift
index 2a6e8f2..35906bb 100644
--- a/ddl/out/LambdaCube.PipelineSchema.swift
+++ b/ddl/out/LambdaCube.PipelineSchema.swift
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.137981000000Z 2// 2016-03-21T13:31:10.293368000000Z
3 3
4enum StreamType { 4enum StreamType {
5 case Attribute_Word 5 case Attribute_Word
diff --git a/ddl/out/LambdaCube.PipelineSchema2.hpp b/ddl/out/LambdaCube.PipelineSchema2.hpp
index 05a4521..c3c1158 100644
--- a/ddl/out/LambdaCube.PipelineSchema2.hpp
+++ b/ddl/out/LambdaCube.PipelineSchema2.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.137981000000Z 2// 2016-03-21T13:31:10.293368000000Z
3 3
4#ifndef HEADER_LambdaCube.PipelineSchema_H 4#ifndef HEADER_LambdaCube.PipelineSchema_H
5#define HEADER_LambdaCube.PipelineSchema_H 5#define HEADER_LambdaCube.PipelineSchema_H
diff --git a/ddl/out/LambdaCube.TypeInfo.cpp b/ddl/out/LambdaCube.TypeInfo.cpp
index 0cecc31..6c64556 100644
--- a/ddl/out/LambdaCube.TypeInfo.cpp
+++ b/ddl/out/LambdaCube.TypeInfo.cpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.260874000000Z 2// 2016-03-21T13:31:10.409214000000Z
3 3
4#include "LambdaCube.TypeInfo.hpp" 4#include "LambdaCube.TypeInfo.hpp"
5template<> json toJSON<std::shared_ptr<Range>>(std::shared_ptr<Range> &v) { 5template<> json toJSON<std::shared_ptr<Range>>(std::shared_ptr<Range> &v) {
diff --git a/ddl/out/LambdaCube.TypeInfo.cs b/ddl/out/LambdaCube.TypeInfo.cs
index 70642a0..ed57f07 100644
--- a/ddl/out/LambdaCube.TypeInfo.cs
+++ b/ddl/out/LambdaCube.TypeInfo.cs
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.260874000000Z 2// 2016-03-21T13:31:10.409214000000Z
3 3
4using System; 4using System;
5using System.Linq; 5using System.Linq;
@@ -85,60 +85,50 @@ namespace LambdaCube.TypeInfo {
85 85
86 case Type.Range: { 86 case Type.Range: {
87 string tag = (string)obj["tag"]; 87 string tag = (string)obj["tag"];
88 Range.Tag tagType; 88 switch (tag) {
89 if (tag == "Range") { 89 case "Range": {
90 tagType = Range.Tag.Range; 90 data.Range tv = new data.Range();
91 data.Range tv = new data.Range(); 91 tv.startLine = (int)fromJSON(Type.Int,obj["startLine"]);
92 tv.startLine = (int)fromJSON(Type.Int,obj["startLine"]); 92 tv.startColumn = (int)fromJSON(Type.Int,obj["startColumn"]);
93 tv.startColumn = (int)fromJSON(Type.Int,obj["startColumn"]); 93 tv.endLine = (int)fromJSON(Type.Int,obj["endLine"]);
94 tv.endLine = (int)fromJSON(Type.Int,obj["endLine"]); 94 tv.endColumn = (int)fromJSON(Type.Int,obj["endColumn"]);
95 tv.endColumn = (int)fromJSON(Type.Int,obj["endColumn"]); 95 return tv;
96 return tv; 96 }
97 default: throw new Exception("unknown constructor: " + tag);
97 } 98 }
98 else throw new Exception("unknown constructor: " + tag);
99 Range o = new Range();
100 o.tag = tagType;
101 return o;
102 } 99 }
103 case Type.TypeInfo: { 100 case Type.TypeInfo: {
104 string tag = (string)obj["tag"]; 101 string tag = (string)obj["tag"];
105 TypeInfo.Tag tagType; 102 switch (tag) {
106 if (tag == "TypeInfo") { 103 case "TypeInfo": {
107 tagType = TypeInfo.Tag.TypeInfo; 104 data.TypeInfo tv = new data.TypeInfo();
108 data.TypeInfo tv = new data.TypeInfo(); 105 tv.range = (global::LambdaCube.TypeInfo.Range)fromJSON(Type.Range,obj["range"]);
109 tv.range = (global::LambdaCube.TypeInfo.Range)fromJSON(Type.Range,obj["range"]); 106 tv.text = (string)fromJSON(Type.String,obj["text"]);
110 tv.text = (string)fromJSON(Type.String,obj["text"]); 107 return tv;
111 return tv; 108 }
109 default: throw new Exception("unknown constructor: " + tag);
112 } 110 }
113 else throw new Exception("unknown constructor: " + tag);
114 TypeInfo o = new TypeInfo();
115 o.tag = tagType;
116 return o;
117 } 111 }
118 case Type.CompileResult: { 112 case Type.CompileResult: {
119 string tag = (string)obj["tag"]; 113 string tag = (string)obj["tag"];
120 CompileResult.Tag tagType; 114 switch (tag) {
121 if (tag == "CompileError") { 115 case "CompileError": {
122 tagType = CompileResult.Tag.CompileError; 116 data.CompileError tv = new data.CompileError();
123 data.CompileError tv = new data.CompileError(); 117 tv._0 = (List<global::LambdaCube.TypeInfo.Range>)fromJSON(Type.Array_Range,obj["arg0"]);
124 tv._0 = (List<global::LambdaCube.TypeInfo.Range>)fromJSON(Type.Array_Range,obj["arg0"]); 118 tv._1 = (string)fromJSON(Type.String,obj["arg1"]);
125 tv._1 = (string)fromJSON(Type.String,obj["arg1"]); 119 tv._2 = (List<global::LambdaCube.TypeInfo.TypeInfo>)fromJSON(Type.Array_TypeInfo,obj["arg2"]);
126 tv._2 = (List<global::LambdaCube.TypeInfo.TypeInfo>)fromJSON(Type.Array_TypeInfo,obj["arg2"]); 120 return tv;
127 return tv; 121 }
122 case "Compiled": {
123 data.Compiled tv = new data.Compiled();
124 tv._0 = (string)fromJSON(Type.String,obj["arg0"]);
125 tv._1 = (string)fromJSON(Type.String,obj["arg1"]);
126 tv._2 = (global::LambdaCube.TypeInfo.Pipeline)fromJSON(Type.Pipeline,obj["arg2"]);
127 tv._3 = (List<global::LambdaCube.TypeInfo.TypeInfo>)fromJSON(Type.Array_TypeInfo,obj["arg3"]);
128 return tv;
129 }
130 default: throw new Exception("unknown constructor: " + tag);
128 } 131 }
129 else if (tag == "Compiled") {
130 tagType = CompileResult.Tag.Compiled;
131 data.Compiled tv = new data.Compiled();
132 tv._0 = (string)fromJSON(Type.String,obj["arg0"]);
133 tv._1 = (string)fromJSON(Type.String,obj["arg1"]);
134 tv._2 = (global::LambdaCube.TypeInfo.Pipeline)fromJSON(Type.Pipeline,obj["arg2"]);
135 tv._3 = (List<global::LambdaCube.TypeInfo.TypeInfo>)fromJSON(Type.Array_TypeInfo,obj["arg3"]);
136 return tv;
137 }
138 else throw new Exception("unknown constructor: " + tag);
139 CompileResult o = new CompileResult();
140 o.tag = tagType;
141 return o;
142 } 132 }
143 } 133 }
144 throw new Exception("unknown type"); 134 throw new Exception("unknown type");
diff --git a/ddl/out/LambdaCube.TypeInfo.hpp b/ddl/out/LambdaCube.TypeInfo.hpp
index c57870f..22518b9 100644
--- a/ddl/out/LambdaCube.TypeInfo.hpp
+++ b/ddl/out/LambdaCube.TypeInfo.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.260874000000Z 2// 2016-03-21T13:31:10.409214000000Z
3 3
4#ifndef HEADER_LambdaCube.TypeInfo_H 4#ifndef HEADER_LambdaCube.TypeInfo_H
5#define HEADER_LambdaCube.TypeInfo_H 5#define HEADER_LambdaCube.TypeInfo_H
diff --git a/ddl/out/LambdaCube.TypeInfo.hs b/ddl/out/LambdaCube.TypeInfo.hs
index db3c77f..0bd04f6 100644
--- a/ddl/out/LambdaCube.TypeInfo.hs
+++ b/ddl/out/LambdaCube.TypeInfo.hs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T13:14:18.260874000000Z 2-- 2016-03-21T13:31:10.409214000000Z
3 3
4{-# LANGUAGE OverloadedStrings, RecordWildCards #-} 4{-# LANGUAGE OverloadedStrings, RecordWildCards #-}
5module LambdaCube.TypeInfo where 5module LambdaCube.TypeInfo where
diff --git a/ddl/out/LambdaCube.TypeInfo.purs b/ddl/out/LambdaCube.TypeInfo.purs
index a2f85e3..4cbdd74 100644
--- a/ddl/out/LambdaCube.TypeInfo.purs
+++ b/ddl/out/LambdaCube.TypeInfo.purs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T13:14:18.260874000000Z 2-- 2016-03-21T13:31:10.409214000000Z
3 3
4module LambdaCube.TypeInfo where 4module LambdaCube.TypeInfo where
5import Prelude 5import Prelude
diff --git a/ddl/out/LambdaCube.TypeInfo.swift b/ddl/out/LambdaCube.TypeInfo.swift
index f024792..3eb10db 100644
--- a/ddl/out/LambdaCube.TypeInfo.swift
+++ b/ddl/out/LambdaCube.TypeInfo.swift
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.260874000000Z 2// 2016-03-21T13:31:10.409214000000Z
3 3
4enum Range { 4enum Range {
5 case Range(Range_Data) 5 case Range(Range_Data)
diff --git a/ddl/out/LambdaCube.TypeInfo2.hpp b/ddl/out/LambdaCube.TypeInfo2.hpp
index cd2c26c..6ef3009 100644
--- a/ddl/out/LambdaCube.TypeInfo2.hpp
+++ b/ddl/out/LambdaCube.TypeInfo2.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.260874000000Z 2// 2016-03-21T13:31:10.409214000000Z
3 3
4#ifndef HEADER_LambdaCube.TypeInfo_H 4#ifndef HEADER_LambdaCube.TypeInfo_H
5#define HEADER_LambdaCube.TypeInfo_H 5#define HEADER_LambdaCube.TypeInfo_H
diff --git a/ddl/out/TestData.cpp b/ddl/out/TestData.cpp
index 2ddf138..223df9f 100644
--- a/ddl/out/TestData.cpp
+++ b/ddl/out/TestData.cpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.341517000000Z 2// 2016-03-21T13:31:10.455557000000Z
3 3
4#include "TestData.hpp" 4#include "TestData.hpp"
5template<> json toJSON<std::shared_ptr<ClientInfo>>(std::shared_ptr<ClientInfo> &v) { 5template<> json toJSON<std::shared_ptr<ClientInfo>>(std::shared_ptr<ClientInfo> &v) {
diff --git a/ddl/out/TestData.cs b/ddl/out/TestData.cs
index 7bb120f..c112934 100644
--- a/ddl/out/TestData.cs
+++ b/ddl/out/TestData.cs
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.341517000000Z 2// 2016-03-21T13:31:10.455557000000Z
3 3
4using System; 4using System;
5using System.Linq; 5using System.Linq;
@@ -190,120 +190,98 @@ namespace TestData {
190 190
191 case Type.ClientInfo: { 191 case Type.ClientInfo: {
192 string tag = (string)obj["tag"]; 192 string tag = (string)obj["tag"];
193 ClientInfo.Tag tagType; 193 switch (tag) {
194 if (tag == "ClientInfo") { 194 case "ClientInfo": {
195 tagType = ClientInfo.Tag.ClientInfo; 195 data.ClientInfo tv = new data.ClientInfo();
196 data.ClientInfo tv = new data.ClientInfo(); 196 tv.clientName = (string)fromJSON(Type.String,obj["clientName"]);
197 tv.clientName = (string)fromJSON(Type.String,obj["clientName"]); 197 tv.clientBackend = (global::TestData.Backend)fromJSON(Type.Backend,obj["clientBackend"]);
198 tv.clientBackend = (global::TestData.Backend)fromJSON(Type.Backend,obj["clientBackend"]); 198 return tv;
199 return tv; 199 }
200 default: throw new Exception("unknown constructor: " + tag);
200 } 201 }
201 else throw new Exception("unknown constructor: " + tag);
202 ClientInfo o = new ClientInfo();
203 o.tag = tagType;
204 return o;
205 } 202 }
206 case Type.Frame: { 203 case Type.Frame: {
207 string tag = (string)obj["tag"]; 204 string tag = (string)obj["tag"];
208 Frame.Tag tagType; 205 switch (tag) {
209 if (tag == "Frame") { 206 case "Frame": {
210 tagType = Frame.Tag.Frame; 207 data.Frame tv = new data.Frame();
211 data.Frame tv = new data.Frame(); 208 tv.renderCount = (int)fromJSON(Type.Int,obj["renderCount"]);
212 tv.renderCount = (int)fromJSON(Type.Int,obj["renderCount"]); 209 tv.frameUniforms = (Dictionary<string, global::TestData.Value>)fromJSON(Type.Map_String_Value,obj["frameUniforms"]);
213 tv.frameUniforms = (Dictionary<string, global::TestData.Value>)fromJSON(Type.Map_String_Value,obj["frameUniforms"]); 210 tv.frameTextures = (Dictionary<string, int>)fromJSON(Type.Map_String_Int,obj["frameTextures"]);
214 tv.frameTextures = (Dictionary<string, int>)fromJSON(Type.Map_String_Int,obj["frameTextures"]); 211 return tv;
215 return tv; 212 }
213 default: throw new Exception("unknown constructor: " + tag);
216 } 214 }
217 else throw new Exception("unknown constructor: " + tag);
218 Frame o = new Frame();
219 o.tag = tagType;
220 return o;
221 } 215 }
222 case Type.Scene: { 216 case Type.Scene: {
223 string tag = (string)obj["tag"]; 217 string tag = (string)obj["tag"];
224 Scene.Tag tagType; 218 switch (tag) {
225 if (tag == "Scene") { 219 case "Scene": {
226 tagType = Scene.Tag.Scene; 220 data.Scene tv = new data.Scene();
227 data.Scene tv = new data.Scene(); 221 tv.objectArrays = (Dictionary<string, List<int>>)fromJSON(Type.Map_String_Array_Int,obj["objectArrays"]);
228 tv.objectArrays = (Dictionary<string, List<int>>)fromJSON(Type.Map_String_Array_Int,obj["objectArrays"]); 222 tv.renderTargetWidth = (int)fromJSON(Type.Int,obj["renderTargetWidth"]);
229 tv.renderTargetWidth = (int)fromJSON(Type.Int,obj["renderTargetWidth"]); 223 tv.renderTargetHeight = (int)fromJSON(Type.Int,obj["renderTargetHeight"]);
230 tv.renderTargetHeight = (int)fromJSON(Type.Int,obj["renderTargetHeight"]); 224 tv.frames = (List<global::TestData.Frame>)fromJSON(Type.Array_Frame,obj["frames"]);
231 tv.frames = (List<global::TestData.Frame>)fromJSON(Type.Array_Frame,obj["frames"]); 225 return tv;
232 return tv; 226 }
227 default: throw new Exception("unknown constructor: " + tag);
233 } 228 }
234 else throw new Exception("unknown constructor: " + tag);
235 Scene o = new Scene();
236 o.tag = tagType;
237 return o;
238 } 229 }
239 case Type.PipelineInfo: { 230 case Type.PipelineInfo: {
240 string tag = (string)obj["tag"]; 231 string tag = (string)obj["tag"];
241 PipelineInfo.Tag tagType; 232 switch (tag) {
242 if (tag == "PipelineInfo") { 233 case "PipelineInfo": {
243 tagType = PipelineInfo.Tag.PipelineInfo; 234 data.PipelineInfo tv = new data.PipelineInfo();
244 data.PipelineInfo tv = new data.PipelineInfo(); 235 tv.pipelineName = (string)fromJSON(Type.String,obj["pipelineName"]);
245 tv.pipelineName = (string)fromJSON(Type.String,obj["pipelineName"]); 236 tv.pipeline = (global::TestData.Pipeline)fromJSON(Type.Pipeline,obj["pipeline"]);
246 tv.pipeline = (global::TestData.Pipeline)fromJSON(Type.Pipeline,obj["pipeline"]); 237 return tv;
247 return tv; 238 }
239 default: throw new Exception("unknown constructor: " + tag);
248 } 240 }
249 else throw new Exception("unknown constructor: " + tag);
250 PipelineInfo o = new PipelineInfo();
251 o.tag = tagType;
252 return o;
253 } 241 }
254 case Type.RenderJob: { 242 case Type.RenderJob: {
255 string tag = (string)obj["tag"]; 243 string tag = (string)obj["tag"];
256 RenderJob.Tag tagType; 244 switch (tag) {
257 if (tag == "RenderJob") { 245 case "RenderJob": {
258 tagType = RenderJob.Tag.RenderJob; 246 data.RenderJob tv = new data.RenderJob();
259 data.RenderJob tv = new data.RenderJob(); 247 tv.meshes = (List<global::TestData.Mesh>)fromJSON(Type.Array_Mesh,obj["meshes"]);
260 tv.meshes = (List<global::TestData.Mesh>)fromJSON(Type.Array_Mesh,obj["meshes"]); 248 tv.textures = (List<string>)fromJSON(Type.Array_String,obj["textures"]);
261 tv.textures = (List<string>)fromJSON(Type.Array_String,obj["textures"]); 249 tv.schema = (global::TestData.PipelineSchema)fromJSON(Type.PipelineSchema,obj["schema"]);
262 tv.schema = (global::TestData.PipelineSchema)fromJSON(Type.PipelineSchema,obj["schema"]); 250 tv.scenes = (List<global::TestData.Scene>)fromJSON(Type.Array_Scene,obj["scenes"]);
263 tv.scenes = (List<global::TestData.Scene>)fromJSON(Type.Array_Scene,obj["scenes"]); 251 tv.pipelines = (List<global::TestData.PipelineInfo>)fromJSON(Type.Array_PipelineInfo,obj["pipelines"]);
264 tv.pipelines = (List<global::TestData.PipelineInfo>)fromJSON(Type.Array_PipelineInfo,obj["pipelines"]); 252 return tv;
265 return tv; 253 }
254 default: throw new Exception("unknown constructor: " + tag);
266 } 255 }
267 else throw new Exception("unknown constructor: " + tag);
268 RenderJob o = new RenderJob();
269 o.tag = tagType;
270 return o;
271 } 256 }
272 case Type.FrameResult: { 257 case Type.FrameResult: {
273 string tag = (string)obj["tag"]; 258 string tag = (string)obj["tag"];
274 FrameResult.Tag tagType; 259 switch (tag) {
275 if (tag == "FrameResult") { 260 case "FrameResult": {
276 tagType = FrameResult.Tag.FrameResult; 261 data.FrameResult tv = new data.FrameResult();
277 data.FrameResult tv = new data.FrameResult(); 262 tv.frRenderTimes = (List<float>)fromJSON(Type.Array_Float,obj["frRenderTimes"]);
278 tv.frRenderTimes = (List<float>)fromJSON(Type.Array_Float,obj["frRenderTimes"]); 263 tv.frImageWidth = (int)fromJSON(Type.Int,obj["frImageWidth"]);
279 tv.frImageWidth = (int)fromJSON(Type.Int,obj["frImageWidth"]); 264 tv.frImageHeight = (int)fromJSON(Type.Int,obj["frImageHeight"]);
280 tv.frImageHeight = (int)fromJSON(Type.Int,obj["frImageHeight"]); 265 return tv;
281 return tv; 266 }
267 default: throw new Exception("unknown constructor: " + tag);
282 } 268 }
283 else throw new Exception("unknown constructor: " + tag);
284 FrameResult o = new FrameResult();
285 o.tag = tagType;
286 return o;
287 } 269 }
288 case Type.RenderJobResult: { 270 case Type.RenderJobResult: {
289 string tag = (string)obj["tag"]; 271 string tag = (string)obj["tag"];
290 RenderJobResult.Tag tagType; 272 switch (tag) {
291 if (tag == "RenderJobResult") { 273 case "RenderJobResult": {
292 tagType = RenderJobResult.Tag.RenderJobResult; 274 data.RenderJobResult tv = new data.RenderJobResult();
293 data.RenderJobResult tv = new data.RenderJobResult(); 275 tv._0 = (global::TestData.FrameResult)fromJSON(Type.FrameResult,obj["arg0"]);
294 tv._0 = (global::TestData.FrameResult)fromJSON(Type.FrameResult,obj["arg0"]); 276 return tv;
295 return tv; 277 }
278 case "RenderJobError": {
279 data.RenderJobError tv = new data.RenderJobError();
280 tv._0 = (string)fromJSON(Type.String,obj["arg0"]);
281 return tv;
282 }
283 default: throw new Exception("unknown constructor: " + tag);
296 } 284 }
297 else if (tag == "RenderJobError") {
298 tagType = RenderJobResult.Tag.RenderJobError;
299 data.RenderJobError tv = new data.RenderJobError();
300 tv._0 = (string)fromJSON(Type.String,obj["arg0"]);
301 return tv;
302 }
303 else throw new Exception("unknown constructor: " + tag);
304 RenderJobResult o = new RenderJobResult();
305 o.tag = tagType;
306 return o;
307 } 285 }
308 } 286 }
309 throw new Exception("unknown type"); 287 throw new Exception("unknown type");
diff --git a/ddl/out/TestData.hpp b/ddl/out/TestData.hpp
index d1645fe..c28b8d2 100644
--- a/ddl/out/TestData.hpp
+++ b/ddl/out/TestData.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.341517000000Z 2// 2016-03-21T13:31:10.455557000000Z
3 3
4#ifndef HEADER_TestData_H 4#ifndef HEADER_TestData_H
5#define HEADER_TestData_H 5#define HEADER_TestData_H
diff --git a/ddl/out/TestData.hs b/ddl/out/TestData.hs
index 75bc9be..3a4ec43 100644
--- a/ddl/out/TestData.hs
+++ b/ddl/out/TestData.hs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T13:14:18.341517000000Z 2-- 2016-03-21T13:31:10.455557000000Z
3 3
4{-# LANGUAGE OverloadedStrings, RecordWildCards #-} 4{-# LANGUAGE OverloadedStrings, RecordWildCards #-}
5module TestData where 5module TestData where
diff --git a/ddl/out/TestData.purs b/ddl/out/TestData.purs
index b3204bc..f909f30 100644
--- a/ddl/out/TestData.purs
+++ b/ddl/out/TestData.purs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T13:14:18.341517000000Z 2-- 2016-03-21T13:31:10.455557000000Z
3 3
4module TestData where 4module TestData where
5import Prelude 5import Prelude
diff --git a/ddl/out/TestData.swift b/ddl/out/TestData.swift
index 918287d..d02a684 100644
--- a/ddl/out/TestData.swift
+++ b/ddl/out/TestData.swift
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.341517000000Z 2// 2016-03-21T13:31:10.455557000000Z
3 3
4enum ClientInfo { 4enum ClientInfo {
5 case ClientInfo(ClientInfo_Data) 5 case ClientInfo(ClientInfo_Data)
diff --git a/ddl/out/TestData2.hpp b/ddl/out/TestData2.hpp
index 2e49ab6..d5a84c4 100644
--- a/ddl/out/TestData2.hpp
+++ b/ddl/out/TestData2.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.341517000000Z 2// 2016-03-21T13:31:10.455557000000Z
3 3
4#ifndef HEADER_TestData_H 4#ifndef HEADER_TestData_H
5#define HEADER_TestData_H 5#define HEADER_TestData_H
diff --git a/ddl/out/java/LambdaCube/IR/AccumulationContext.java b/ddl/out/java/LambdaCube/IR/AccumulationContext.java
index 370a7e7..4b35c4c 100644
--- a/ddl/out/java/LambdaCube/IR/AccumulationContext.java
+++ b/ddl/out/java/LambdaCube/IR/AccumulationContext.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/ArrayValue.java b/ddl/out/java/LambdaCube/IR/ArrayValue.java
index 04c7176..4bdf944 100644
--- a/ddl/out/java/LambdaCube/IR/ArrayValue.java
+++ b/ddl/out/java/LambdaCube/IR/ArrayValue.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/Backend.java b/ddl/out/java/LambdaCube/IR/Backend.java
index 91645c0..dcc58d7 100644
--- a/ddl/out/java/LambdaCube/IR/Backend.java
+++ b/ddl/out/java/LambdaCube/IR/Backend.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/BlendEquation.java b/ddl/out/java/LambdaCube/IR/BlendEquation.java
index 1c93189..138f3cb 100644
--- a/ddl/out/java/LambdaCube/IR/BlendEquation.java
+++ b/ddl/out/java/LambdaCube/IR/BlendEquation.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/Blending.java b/ddl/out/java/LambdaCube/IR/Blending.java
index 58c208f..d30b963 100644
--- a/ddl/out/java/LambdaCube/IR/Blending.java
+++ b/ddl/out/java/LambdaCube/IR/Blending.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/BlendingFactor.java b/ddl/out/java/LambdaCube/IR/BlendingFactor.java
index 1283737..8c02971 100644
--- a/ddl/out/java/LambdaCube/IR/BlendingFactor.java
+++ b/ddl/out/java/LambdaCube/IR/BlendingFactor.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/ClearImage.java b/ddl/out/java/LambdaCube/IR/ClearImage.java
index d8db2b9..48fdbe1 100644
--- a/ddl/out/java/LambdaCube/IR/ClearImage.java
+++ b/ddl/out/java/LambdaCube/IR/ClearImage.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/ColorArity.java b/ddl/out/java/LambdaCube/IR/ColorArity.java
index 3ded450..dee0704 100644
--- a/ddl/out/java/LambdaCube/IR/ColorArity.java
+++ b/ddl/out/java/LambdaCube/IR/ColorArity.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/Command.java b/ddl/out/java/LambdaCube/IR/Command.java
index 39d70fd..407059f 100644
--- a/ddl/out/java/LambdaCube/IR/Command.java
+++ b/ddl/out/java/LambdaCube/IR/Command.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/ComparisonFunction.java b/ddl/out/java/LambdaCube/IR/ComparisonFunction.java
index 46bed68..ecd2947 100644
--- a/ddl/out/java/LambdaCube/IR/ComparisonFunction.java
+++ b/ddl/out/java/LambdaCube/IR/ComparisonFunction.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/CullMode.java b/ddl/out/java/LambdaCube/IR/CullMode.java
index 6b0623c..10f7630 100644
--- a/ddl/out/java/LambdaCube/IR/CullMode.java
+++ b/ddl/out/java/LambdaCube/IR/CullMode.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/EdgeMode.java b/ddl/out/java/LambdaCube/IR/EdgeMode.java
index adf7f82..1c597a6 100644
--- a/ddl/out/java/LambdaCube/IR/EdgeMode.java
+++ b/ddl/out/java/LambdaCube/IR/EdgeMode.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/FetchPrimitive.java b/ddl/out/java/LambdaCube/IR/FetchPrimitive.java
index a142a91..bfd60ee 100644
--- a/ddl/out/java/LambdaCube/IR/FetchPrimitive.java
+++ b/ddl/out/java/LambdaCube/IR/FetchPrimitive.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/Filter.java b/ddl/out/java/LambdaCube/IR/Filter.java
index b79fe17..19e692b 100644
--- a/ddl/out/java/LambdaCube/IR/Filter.java
+++ b/ddl/out/java/LambdaCube/IR/Filter.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/FragmentOperation.java b/ddl/out/java/LambdaCube/IR/FragmentOperation.java
index a098e99..42c5738 100644
--- a/ddl/out/java/LambdaCube/IR/FragmentOperation.java
+++ b/ddl/out/java/LambdaCube/IR/FragmentOperation.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/FrontFace.java b/ddl/out/java/LambdaCube/IR/FrontFace.java
index 6979742..fca8e14 100644
--- a/ddl/out/java/LambdaCube/IR/FrontFace.java
+++ b/ddl/out/java/LambdaCube/IR/FrontFace.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/ImageRef.java b/ddl/out/java/LambdaCube/IR/ImageRef.java
index b5f1ebf..1da3948 100644
--- a/ddl/out/java/LambdaCube/IR/ImageRef.java
+++ b/ddl/out/java/LambdaCube/IR/ImageRef.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/ImageSemantic.java b/ddl/out/java/LambdaCube/IR/ImageSemantic.java
index 4eda2b3..b17b954 100644
--- a/ddl/out/java/LambdaCube/IR/ImageSemantic.java
+++ b/ddl/out/java/LambdaCube/IR/ImageSemantic.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/InputType.java b/ddl/out/java/LambdaCube/IR/InputType.java
index eb55ab1..38e1cdb 100644
--- a/ddl/out/java/LambdaCube/IR/InputType.java
+++ b/ddl/out/java/LambdaCube/IR/InputType.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/JSON.java b/ddl/out/java/LambdaCube/IR/JSON.java
index ad4622c..f5f7967 100644
--- a/ddl/out/java/LambdaCube/IR/JSON.java
+++ b/ddl/out/java/LambdaCube/IR/JSON.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/LogicOperation.java b/ddl/out/java/LambdaCube/IR/LogicOperation.java
index 5f89372..564f069 100644
--- a/ddl/out/java/LambdaCube/IR/LogicOperation.java
+++ b/ddl/out/java/LambdaCube/IR/LogicOperation.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/MipMap.java b/ddl/out/java/LambdaCube/IR/MipMap.java
index 3ea426a..fdfa90b 100644
--- a/ddl/out/java/LambdaCube/IR/MipMap.java
+++ b/ddl/out/java/LambdaCube/IR/MipMap.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/OutputPrimitive.java b/ddl/out/java/LambdaCube/IR/OutputPrimitive.java
index c3e2fc9..80b9233 100644
--- a/ddl/out/java/LambdaCube/IR/OutputPrimitive.java
+++ b/ddl/out/java/LambdaCube/IR/OutputPrimitive.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/Parameter.java b/ddl/out/java/LambdaCube/IR/Parameter.java
index fb57062..6eb1e8b 100644
--- a/ddl/out/java/LambdaCube/IR/Parameter.java
+++ b/ddl/out/java/LambdaCube/IR/Parameter.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/Pipeline.java b/ddl/out/java/LambdaCube/IR/Pipeline.java
index d5d697f..020df55 100644
--- a/ddl/out/java/LambdaCube/IR/Pipeline.java
+++ b/ddl/out/java/LambdaCube/IR/Pipeline.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/PointSize.java b/ddl/out/java/LambdaCube/IR/PointSize.java
index 25fc231..4f2981d 100644
--- a/ddl/out/java/LambdaCube/IR/PointSize.java
+++ b/ddl/out/java/LambdaCube/IR/PointSize.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/PointSpriteCoordOrigin.java b/ddl/out/java/LambdaCube/IR/PointSpriteCoordOrigin.java
index 24f1a1a..7145e2d 100644
--- a/ddl/out/java/LambdaCube/IR/PointSpriteCoordOrigin.java
+++ b/ddl/out/java/LambdaCube/IR/PointSpriteCoordOrigin.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/PolygonMode.java b/ddl/out/java/LambdaCube/IR/PolygonMode.java
index 68c21d1..8e8bda0 100644
--- a/ddl/out/java/LambdaCube/IR/PolygonMode.java
+++ b/ddl/out/java/LambdaCube/IR/PolygonMode.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/PolygonOffset.java b/ddl/out/java/LambdaCube/IR/PolygonOffset.java
index c96984d..d5898ae 100644
--- a/ddl/out/java/LambdaCube/IR/PolygonOffset.java
+++ b/ddl/out/java/LambdaCube/IR/PolygonOffset.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/Program.java b/ddl/out/java/LambdaCube/IR/Program.java
index 1b4e431..48f9e44 100644
--- a/ddl/out/java/LambdaCube/IR/Program.java
+++ b/ddl/out/java/LambdaCube/IR/Program.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/ProvokingVertex.java b/ddl/out/java/LambdaCube/IR/ProvokingVertex.java
index c602610..44c33a2 100644
--- a/ddl/out/java/LambdaCube/IR/ProvokingVertex.java
+++ b/ddl/out/java/LambdaCube/IR/ProvokingVertex.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/RasterContext.java b/ddl/out/java/LambdaCube/IR/RasterContext.java
index 32d05e7..bd1b381 100644
--- a/ddl/out/java/LambdaCube/IR/RasterContext.java
+++ b/ddl/out/java/LambdaCube/IR/RasterContext.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/RenderTarget.java b/ddl/out/java/LambdaCube/IR/RenderTarget.java
index 4b91fb4..3a430f5 100644
--- a/ddl/out/java/LambdaCube/IR/RenderTarget.java
+++ b/ddl/out/java/LambdaCube/IR/RenderTarget.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/SamplerDescriptor.java b/ddl/out/java/LambdaCube/IR/SamplerDescriptor.java
index 0424cb0..d531106 100644
--- a/ddl/out/java/LambdaCube/IR/SamplerDescriptor.java
+++ b/ddl/out/java/LambdaCube/IR/SamplerDescriptor.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/Slot.java b/ddl/out/java/LambdaCube/IR/Slot.java
index 16fa1d5..d5226fa 100644
--- a/ddl/out/java/LambdaCube/IR/Slot.java
+++ b/ddl/out/java/LambdaCube/IR/Slot.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/StencilOperation.java b/ddl/out/java/LambdaCube/IR/StencilOperation.java
index 35224f8..3b2c9d7 100644
--- a/ddl/out/java/LambdaCube/IR/StencilOperation.java
+++ b/ddl/out/java/LambdaCube/IR/StencilOperation.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/StencilOps.java b/ddl/out/java/LambdaCube/IR/StencilOps.java
index 4eb2e46..6759674 100644
--- a/ddl/out/java/LambdaCube/IR/StencilOps.java
+++ b/ddl/out/java/LambdaCube/IR/StencilOps.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/StencilTest.java b/ddl/out/java/LambdaCube/IR/StencilTest.java
index f6107e5..275e52e 100644
--- a/ddl/out/java/LambdaCube/IR/StencilTest.java
+++ b/ddl/out/java/LambdaCube/IR/StencilTest.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/StencilTests.java b/ddl/out/java/LambdaCube/IR/StencilTests.java
index a64efdd..35304b5 100644
--- a/ddl/out/java/LambdaCube/IR/StencilTests.java
+++ b/ddl/out/java/LambdaCube/IR/StencilTests.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/StreamData.java b/ddl/out/java/LambdaCube/IR/StreamData.java
index 8904a4c..8f48d54 100644
--- a/ddl/out/java/LambdaCube/IR/StreamData.java
+++ b/ddl/out/java/LambdaCube/IR/StreamData.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/TargetItem.java b/ddl/out/java/LambdaCube/IR/TargetItem.java
index 8fdb7d6..89705b5 100644
--- a/ddl/out/java/LambdaCube/IR/TargetItem.java
+++ b/ddl/out/java/LambdaCube/IR/TargetItem.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/TextureDataType.java b/ddl/out/java/LambdaCube/IR/TextureDataType.java
index 14dd217..f4b2e15 100644
--- a/ddl/out/java/LambdaCube/IR/TextureDataType.java
+++ b/ddl/out/java/LambdaCube/IR/TextureDataType.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/TextureDescriptor.java b/ddl/out/java/LambdaCube/IR/TextureDescriptor.java
index 1283e48..d8df081 100644
--- a/ddl/out/java/LambdaCube/IR/TextureDescriptor.java
+++ b/ddl/out/java/LambdaCube/IR/TextureDescriptor.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/TextureType.java b/ddl/out/java/LambdaCube/IR/TextureType.java
index c250571..a17600a 100644
--- a/ddl/out/java/LambdaCube/IR/TextureType.java
+++ b/ddl/out/java/LambdaCube/IR/TextureType.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/Value.java b/ddl/out/java/LambdaCube/IR/Value.java
index 68dc3c7..d4b809e 100644
--- a/ddl/out/java/LambdaCube/IR/Value.java
+++ b/ddl/out/java/LambdaCube/IR/Value.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:17.421561000000Z 2// 2016-03-21T13:31:09.634879000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/Mesh/JSON.java b/ddl/out/java/LambdaCube/Mesh/JSON.java
index 64af069..d46b506 100644
--- a/ddl/out/java/LambdaCube/Mesh/JSON.java
+++ b/ddl/out/java/LambdaCube/Mesh/JSON.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.184851000000Z 2// 2016-03-21T13:31:10.335329000000Z
3 3
4package LambdaCube.Mesh; 4package LambdaCube.Mesh;
5 5
diff --git a/ddl/out/java/LambdaCube/Mesh/Mesh.java b/ddl/out/java/LambdaCube/Mesh/Mesh.java
index 1ecb273..00bd352 100644
--- a/ddl/out/java/LambdaCube/Mesh/Mesh.java
+++ b/ddl/out/java/LambdaCube/Mesh/Mesh.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.184851000000Z 2// 2016-03-21T13:31:10.335329000000Z
3 3
4package LambdaCube.Mesh; 4package LambdaCube.Mesh;
5 5
diff --git a/ddl/out/java/LambdaCube/Mesh/MeshAttribute.java b/ddl/out/java/LambdaCube/Mesh/MeshAttribute.java
index b618bda..b6d3585 100644
--- a/ddl/out/java/LambdaCube/Mesh/MeshAttribute.java
+++ b/ddl/out/java/LambdaCube/Mesh/MeshAttribute.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.184851000000Z 2// 2016-03-21T13:31:10.335329000000Z
3 3
4package LambdaCube.Mesh; 4package LambdaCube.Mesh;
5 5
diff --git a/ddl/out/java/LambdaCube/Mesh/MeshPrimitive.java b/ddl/out/java/LambdaCube/Mesh/MeshPrimitive.java
index eeaf0f9..90a2797 100644
--- a/ddl/out/java/LambdaCube/Mesh/MeshPrimitive.java
+++ b/ddl/out/java/LambdaCube/Mesh/MeshPrimitive.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.184851000000Z 2// 2016-03-21T13:31:10.335329000000Z
3 3
4package LambdaCube.Mesh; 4package LambdaCube.Mesh;
5 5
diff --git a/ddl/out/java/LambdaCube/PipelineSchema/JSON.java b/ddl/out/java/LambdaCube/PipelineSchema/JSON.java
index afc8c0a..346f719 100644
--- a/ddl/out/java/LambdaCube/PipelineSchema/JSON.java
+++ b/ddl/out/java/LambdaCube/PipelineSchema/JSON.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.137981000000Z 2// 2016-03-21T13:31:10.293368000000Z
3 3
4package LambdaCube.PipelineSchema; 4package LambdaCube.PipelineSchema;
5 5
diff --git a/ddl/out/java/LambdaCube/PipelineSchema/ObjectArraySchema.java b/ddl/out/java/LambdaCube/PipelineSchema/ObjectArraySchema.java
index ad34f07..282cfe6 100644
--- a/ddl/out/java/LambdaCube/PipelineSchema/ObjectArraySchema.java
+++ b/ddl/out/java/LambdaCube/PipelineSchema/ObjectArraySchema.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.137981000000Z 2// 2016-03-21T13:31:10.293368000000Z
3 3
4package LambdaCube.PipelineSchema; 4package LambdaCube.PipelineSchema;
5 5
diff --git a/ddl/out/java/LambdaCube/PipelineSchema/PipelineSchema.java b/ddl/out/java/LambdaCube/PipelineSchema/PipelineSchema.java
index 732e212..3128d7f 100644
--- a/ddl/out/java/LambdaCube/PipelineSchema/PipelineSchema.java
+++ b/ddl/out/java/LambdaCube/PipelineSchema/PipelineSchema.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.137981000000Z 2// 2016-03-21T13:31:10.293368000000Z
3 3
4package LambdaCube.PipelineSchema; 4package LambdaCube.PipelineSchema;
5 5
diff --git a/ddl/out/java/LambdaCube/PipelineSchema/StreamType.java b/ddl/out/java/LambdaCube/PipelineSchema/StreamType.java
index 4187857..f8d8e8f 100644
--- a/ddl/out/java/LambdaCube/PipelineSchema/StreamType.java
+++ b/ddl/out/java/LambdaCube/PipelineSchema/StreamType.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.137981000000Z 2// 2016-03-21T13:31:10.293368000000Z
3 3
4package LambdaCube.PipelineSchema; 4package LambdaCube.PipelineSchema;
5 5
diff --git a/ddl/out/java/LambdaCube/TypeInfo/CompileResult.java b/ddl/out/java/LambdaCube/TypeInfo/CompileResult.java
index 58713d9..c9e7b2d 100644
--- a/ddl/out/java/LambdaCube/TypeInfo/CompileResult.java
+++ b/ddl/out/java/LambdaCube/TypeInfo/CompileResult.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.260874000000Z 2// 2016-03-21T13:31:10.409214000000Z
3 3
4package LambdaCube.TypeInfo; 4package LambdaCube.TypeInfo;
5 5
diff --git a/ddl/out/java/LambdaCube/TypeInfo/JSON.java b/ddl/out/java/LambdaCube/TypeInfo/JSON.java
index 9a2fa6c..ba6b3d6 100644
--- a/ddl/out/java/LambdaCube/TypeInfo/JSON.java
+++ b/ddl/out/java/LambdaCube/TypeInfo/JSON.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.260874000000Z 2// 2016-03-21T13:31:10.409214000000Z
3 3
4package LambdaCube.TypeInfo; 4package LambdaCube.TypeInfo;
5 5
diff --git a/ddl/out/java/LambdaCube/TypeInfo/Range.java b/ddl/out/java/LambdaCube/TypeInfo/Range.java
index 901980f..3ecd9b0 100644
--- a/ddl/out/java/LambdaCube/TypeInfo/Range.java
+++ b/ddl/out/java/LambdaCube/TypeInfo/Range.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.260874000000Z 2// 2016-03-21T13:31:10.409214000000Z
3 3
4package LambdaCube.TypeInfo; 4package LambdaCube.TypeInfo;
5 5
diff --git a/ddl/out/java/LambdaCube/TypeInfo/TypeInfo.java b/ddl/out/java/LambdaCube/TypeInfo/TypeInfo.java
index 2998902..c06980e 100644
--- a/ddl/out/java/LambdaCube/TypeInfo/TypeInfo.java
+++ b/ddl/out/java/LambdaCube/TypeInfo/TypeInfo.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.260874000000Z 2// 2016-03-21T13:31:10.409214000000Z
3 3
4package LambdaCube.TypeInfo; 4package LambdaCube.TypeInfo;
5 5
diff --git a/ddl/out/java/TestData/ClientInfo.java b/ddl/out/java/TestData/ClientInfo.java
index d842f81..f054e9f 100644
--- a/ddl/out/java/TestData/ClientInfo.java
+++ b/ddl/out/java/TestData/ClientInfo.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.341517000000Z 2// 2016-03-21T13:31:10.455557000000Z
3 3
4package TestData; 4package TestData;
5 5
diff --git a/ddl/out/java/TestData/Frame.java b/ddl/out/java/TestData/Frame.java
index af71eda..d9f22de 100644
--- a/ddl/out/java/TestData/Frame.java
+++ b/ddl/out/java/TestData/Frame.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.341517000000Z 2// 2016-03-21T13:31:10.455557000000Z
3 3
4package TestData; 4package TestData;
5 5
diff --git a/ddl/out/java/TestData/FrameResult.java b/ddl/out/java/TestData/FrameResult.java
index d21d8c9..41748d6 100644
--- a/ddl/out/java/TestData/FrameResult.java
+++ b/ddl/out/java/TestData/FrameResult.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.341517000000Z 2// 2016-03-21T13:31:10.455557000000Z
3 3
4package TestData; 4package TestData;
5 5
diff --git a/ddl/out/java/TestData/JSON.java b/ddl/out/java/TestData/JSON.java
index 7f3e27c..011b471 100644
--- a/ddl/out/java/TestData/JSON.java
+++ b/ddl/out/java/TestData/JSON.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.341517000000Z 2// 2016-03-21T13:31:10.455557000000Z
3 3
4package TestData; 4package TestData;
5 5
diff --git a/ddl/out/java/TestData/PipelineInfo.java b/ddl/out/java/TestData/PipelineInfo.java
index 92dea76..b49e3cd 100644
--- a/ddl/out/java/TestData/PipelineInfo.java
+++ b/ddl/out/java/TestData/PipelineInfo.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.341517000000Z 2// 2016-03-21T13:31:10.455557000000Z
3 3
4package TestData; 4package TestData;
5 5
diff --git a/ddl/out/java/TestData/RenderJob.java b/ddl/out/java/TestData/RenderJob.java
index 3152459..c6b2504 100644
--- a/ddl/out/java/TestData/RenderJob.java
+++ b/ddl/out/java/TestData/RenderJob.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.341517000000Z 2// 2016-03-21T13:31:10.455557000000Z
3 3
4package TestData; 4package TestData;
5 5
diff --git a/ddl/out/java/TestData/RenderJobResult.java b/ddl/out/java/TestData/RenderJobResult.java
index 346b609..25e8fc2 100644
--- a/ddl/out/java/TestData/RenderJobResult.java
+++ b/ddl/out/java/TestData/RenderJobResult.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.341517000000Z 2// 2016-03-21T13:31:10.455557000000Z
3 3
4package TestData; 4package TestData;
5 5
diff --git a/ddl/out/java/TestData/Scene.java b/ddl/out/java/TestData/Scene.java
index 57d1e0b..87bf983 100644
--- a/ddl/out/java/TestData/Scene.java
+++ b/ddl/out/java/TestData/Scene.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T13:14:18.341517000000Z 2// 2016-03-21T13:31:10.455557000000Z
3 3
4package TestData; 4package TestData;
5 5
diff --git a/ddl/templates/data.cs.ede b/ddl/templates/data.cs.ede
index 74e0dac..08dc42c 100644
--- a/ddl/templates/data.cs.ede
+++ b/ddl/templates/data.cs.ede
@@ -95,22 +95,27 @@ namespace {{ moduleName }} {
95 {% for t in definitions %} 95 {% for t in definitions %}
96 case Type.{{ t.value.dataName }}: { 96 case Type.{{ t.value.dataName }}: {
97 string tag = (string)obj["tag"]; 97 string tag = (string)obj["tag"];
98 {% if t.value | hasEnumConstructor %}
98 {{ t.value.dataName }}.Tag tagType; 99 {{ t.value.dataName }}.Tag tagType;
100 {% endif %}
101 switch (tag) {
99 {% for c in t.value.constructors %} 102 {% for c in t.value.constructors %}
100 {% if !c.first %}else {% endif %}if (tag == "{{ c.value.name }}") { 103 case "{{ c.value.name }}":{% if (c.value.fields | empty) %} tagType = {{ t.value.dataName }}.Tag.{{ c.value.name }}; break;
101 tagType = {{ t.value.dataName }}.Tag.{{ c.value.name }}; 104{% else %} {
102 {% if !(c.value.fields | empty) %} 105 data.{{ c.value.name }} tv = new data.{{ c.value.name }}();{% for f in c.value.fields %}{% if c.value.fields | hasFieldNames %}
103 data.{{ c.value.name }} tv = new data.{{ c.value.name }}();{% for f in c.value.fields %}{% if c.value.fields | hasFieldNames %} 106 tv.{{ f.value.fieldName }} = ({{ f.value.fieldType | csType }})fromJSON(Type.{{ f.value.fieldType | typeEnum }},obj["{{ f.value.fieldName }}"]);{% else %}
104 tv.{{ f.value.fieldName }} = ({{ f.value.fieldType | csType }})fromJSON(Type.{{ f.value.fieldType | typeEnum }},obj["{{ f.value.fieldName }}"]);{% else %} 107 tv._{{ f.index0 }} = ({{ f.value.fieldType | csType }})fromJSON(Type.{{ f.value.fieldType | typeEnum }},obj["arg{{ f.index0 }}"]);{% endif %}{% endfor %}
105 tv._{{ f.index0 }} = ({{ f.value.fieldType | csType }})fromJSON(Type.{{ f.value.fieldType | typeEnum }},obj["arg{{ f.index0 }}"]);{% endif %}{% endfor %} 108 return tv;
106 return tv; 109 }
107 {% endif %} 110 {% endif %}
108 }
109 {% endfor %} 111 {% endfor %}
110 else throw new Exception("unknown constructor: " + tag); 112 default: throw new Exception("unknown constructor: " + tag);
113 }
114 {% if t.value | hasEnumConstructor %}
111 {{ t.value.dataName }} o = new {{ t.value.dataName }}(); 115 {{ t.value.dataName }} o = new {{ t.value.dataName }}();
112 o.tag = tagType; 116 o.tag = tagType;
113 return o; 117 return o;
118 {% endif %}
114 } 119 }
115 {% endfor %} 120 {% endfor %}
116 } 121 }