From b2cae2db744cfca2825bf1e7a1c1ed41ce105c3e Mon Sep 17 00:00:00 2001 From: Csaba Hruska Date: Mon, 21 Mar 2016 16:34:52 +0100 Subject: generate toJSON java code --- ddl/Generate.hs | 3 +- ddl/out/LambdaCube.IR.cpp | 2 +- ddl/out/LambdaCube.IR.cs | 2 +- ddl/out/LambdaCube.IR.hpp | 2 +- ddl/out/LambdaCube.IR.hs | 2 +- ddl/out/LambdaCube.IR.purs | 2 +- ddl/out/LambdaCube.IR.swift | 2 +- ddl/out/LambdaCube.IR2.hpp | 2 +- ddl/out/LambdaCube.Mesh.cpp | 2 +- ddl/out/LambdaCube.Mesh.cs | 2 +- ddl/out/LambdaCube.Mesh.hpp | 2 +- ddl/out/LambdaCube.Mesh.hs | 2 +- ddl/out/LambdaCube.Mesh.purs | 2 +- ddl/out/LambdaCube.Mesh.swift | 2 +- ddl/out/LambdaCube.Mesh2.hpp | 2 +- ddl/out/LambdaCube.PipelineSchema.cpp | 2 +- ddl/out/LambdaCube.PipelineSchema.cs | 2 +- ddl/out/LambdaCube.PipelineSchema.hpp | 2 +- ddl/out/LambdaCube.PipelineSchema.hs | 2 +- ddl/out/LambdaCube.PipelineSchema.purs | 2 +- ddl/out/LambdaCube.PipelineSchema.swift | 2 +- ddl/out/LambdaCube.PipelineSchema2.hpp | 2 +- ddl/out/LambdaCube.TypeInfo.cpp | 2 +- ddl/out/LambdaCube.TypeInfo.cs | 2 +- ddl/out/LambdaCube.TypeInfo.hpp | 2 +- ddl/out/LambdaCube.TypeInfo.hs | 2 +- ddl/out/LambdaCube.TypeInfo.purs | 2 +- ddl/out/LambdaCube.TypeInfo.swift | 2 +- ddl/out/LambdaCube.TypeInfo2.hpp | 2 +- ddl/out/TestData.cpp | 2 +- ddl/out/TestData.cs | 2 +- ddl/out/TestData.hpp | 2 +- ddl/out/TestData.hs | 2 +- ddl/out/TestData.purs | 2 +- ddl/out/TestData.swift | 2 +- ddl/out/TestData2.hpp | 2 +- .../java/LambdaCube/IR/AccumulationContext.java | 2 +- ddl/out/java/LambdaCube/IR/ArrayValue.java | 2 +- ddl/out/java/LambdaCube/IR/Backend.java | 2 +- ddl/out/java/LambdaCube/IR/BlendEquation.java | 2 +- ddl/out/java/LambdaCube/IR/Blending.java | 2 +- ddl/out/java/LambdaCube/IR/BlendingFactor.java | 2 +- ddl/out/java/LambdaCube/IR/ClearImage.java | 2 +- ddl/out/java/LambdaCube/IR/ColorArity.java | 2 +- ddl/out/java/LambdaCube/IR/Command.java | 2 +- ddl/out/java/LambdaCube/IR/ComparisonFunction.java | 2 +- ddl/out/java/LambdaCube/IR/CullMode.java | 2 +- ddl/out/java/LambdaCube/IR/EdgeMode.java | 2 +- ddl/out/java/LambdaCube/IR/FetchPrimitive.java | 2 +- ddl/out/java/LambdaCube/IR/Filter.java | 2 +- ddl/out/java/LambdaCube/IR/FragmentOperation.java | 2 +- ddl/out/java/LambdaCube/IR/FrontFace.java | 2 +- ddl/out/java/LambdaCube/IR/ImageRef.java | 2 +- ddl/out/java/LambdaCube/IR/ImageSemantic.java | 2 +- ddl/out/java/LambdaCube/IR/InputType.java | 2 +- ddl/out/java/LambdaCube/IR/JSON.java | 1765 +++++++++++++++++++- ddl/out/java/LambdaCube/IR/LogicOperation.java | 2 +- ddl/out/java/LambdaCube/IR/MipMap.java | 2 +- ddl/out/java/LambdaCube/IR/OutputPrimitive.java | 2 +- ddl/out/java/LambdaCube/IR/Parameter.java | 2 +- ddl/out/java/LambdaCube/IR/Pipeline.java | 2 +- ddl/out/java/LambdaCube/IR/PointSize.java | 2 +- .../java/LambdaCube/IR/PointSpriteCoordOrigin.java | 2 +- ddl/out/java/LambdaCube/IR/PolygonMode.java | 2 +- ddl/out/java/LambdaCube/IR/PolygonOffset.java | 2 +- ddl/out/java/LambdaCube/IR/Program.java | 2 +- ddl/out/java/LambdaCube/IR/ProvokingVertex.java | 2 +- ddl/out/java/LambdaCube/IR/RasterContext.java | 2 +- ddl/out/java/LambdaCube/IR/RenderTarget.java | 2 +- ddl/out/java/LambdaCube/IR/SamplerDescriptor.java | 2 +- ddl/out/java/LambdaCube/IR/Slot.java | 2 +- ddl/out/java/LambdaCube/IR/StencilOperation.java | 2 +- ddl/out/java/LambdaCube/IR/StencilOps.java | 2 +- ddl/out/java/LambdaCube/IR/StencilTest.java | 2 +- ddl/out/java/LambdaCube/IR/StencilTests.java | 2 +- ddl/out/java/LambdaCube/IR/StreamData.java | 2 +- ddl/out/java/LambdaCube/IR/TargetItem.java | 2 +- ddl/out/java/LambdaCube/IR/TextureDataType.java | 2 +- ddl/out/java/LambdaCube/IR/TextureDescriptor.java | 2 +- ddl/out/java/LambdaCube/IR/TextureType.java | 2 +- ddl/out/java/LambdaCube/IR/Value.java | 2 +- ddl/out/java/LambdaCube/Mesh/JSON.java | 248 ++- ddl/out/java/LambdaCube/Mesh/Mesh.java | 2 +- ddl/out/java/LambdaCube/Mesh/MeshAttribute.java | 2 +- ddl/out/java/LambdaCube/Mesh/MeshPrimitive.java | 2 +- ddl/out/java/LambdaCube/PipelineSchema/JSON.java | 135 +- .../PipelineSchema/ObjectArraySchema.java | 2 +- .../LambdaCube/PipelineSchema/PipelineSchema.java | 2 +- .../java/LambdaCube/PipelineSchema/StreamType.java | 2 +- .../java/LambdaCube/TypeInfo/CompileResult.java | 2 +- ddl/out/java/LambdaCube/TypeInfo/JSON.java | 86 +- ddl/out/java/LambdaCube/TypeInfo/Range.java | 2 +- ddl/out/java/LambdaCube/TypeInfo/TypeInfo.java | 2 +- ddl/out/java/TestData/ClientInfo.java | 2 +- ddl/out/java/TestData/Frame.java | 2 +- ddl/out/java/TestData/FrameResult.java | 2 +- ddl/out/java/TestData/JSON.java | 211 ++- ddl/out/java/TestData/PipelineInfo.java | 2 +- ddl/out/java/TestData/RenderJob.java | 2 +- ddl/out/java/TestData/RenderJobResult.java | 2 +- ddl/out/java/TestData/Scene.java | 2 +- ddl/templates/json.java.ede | 94 ++ 102 files changed, 2631 insertions(+), 101 deletions(-) diff --git a/ddl/Generate.hs b/ddl/Generate.hs index 37437de..36d913e 100644 --- a/ddl/Generate.hs +++ b/ddl/Generate.hs @@ -44,7 +44,8 @@ main = do , "dateTime" .= dt , "imports" .= imports , "usedTypes" .= collectTypes aliasMap mod - , "usedCSTypes" .= (Set.fromList $ Map.elems $ Map.fromList [ (csType name aliasMap t,t) | t <- Set.toList $ collectTypes aliasMap mod]) + , "usedCSTypes" .= (Set.fromList $ Map.elems $ Map.fromList [ (csType name aliasMap t,t) | t <- Set.toList $ collectTypes aliasMap mod]) + , "usedJavaTypes" .= (Set.fromList $ Map.elems $ Map.fromList [ (javaType aliasMap t,t) | t <- Set.toList $ collectTypes aliasMap mod]) ] aliasMap = Map.fromList [(n,t) | TypeAlias n t <- def] mylib :: HashMap Text Term diff --git a/ddl/out/LambdaCube.IR.cpp b/ddl/out/LambdaCube.IR.cpp index f999419..719379d 100644 --- a/ddl/out/LambdaCube.IR.cpp +++ b/ddl/out/LambdaCube.IR.cpp @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z #include "LambdaCube.IR.hpp" template<> json toJSON>(std::shared_ptr &v) { diff --git a/ddl/out/LambdaCube.IR.cs b/ddl/out/LambdaCube.IR.cs index 39813dd..674a336 100644 --- a/ddl/out/LambdaCube.IR.cs +++ b/ddl/out/LambdaCube.IR.cs @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z using System; using System.Linq; diff --git a/ddl/out/LambdaCube.IR.hpp b/ddl/out/LambdaCube.IR.hpp index f69d4fc..a4d9509 100644 --- a/ddl/out/LambdaCube.IR.hpp +++ b/ddl/out/LambdaCube.IR.hpp @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z #ifndef HEADER_LambdaCube.IR_H #define HEADER_LambdaCube.IR_H diff --git a/ddl/out/LambdaCube.IR.hs b/ddl/out/LambdaCube.IR.hs index ee9ac35..341acae 100644 --- a/ddl/out/LambdaCube.IR.hs +++ b/ddl/out/LambdaCube.IR.hs @@ -1,5 +1,5 @@ -- generated file, do not modify! --- 2016-03-21T14:06:54.700322000000Z +-- 2016-03-21T15:32:16.153401000000Z {-# LANGUAGE OverloadedStrings, RecordWildCards #-} module LambdaCube.IR where diff --git a/ddl/out/LambdaCube.IR.purs b/ddl/out/LambdaCube.IR.purs index 5540d8d..8149d3e 100644 --- a/ddl/out/LambdaCube.IR.purs +++ b/ddl/out/LambdaCube.IR.purs @@ -1,5 +1,5 @@ -- generated file, do not modify! --- 2016-03-21T14:06:54.700322000000Z +-- 2016-03-21T15:32:16.153401000000Z module LambdaCube.IR where import Prelude diff --git a/ddl/out/LambdaCube.IR.swift b/ddl/out/LambdaCube.IR.swift index 6293abd..e96d7d4 100644 --- a/ddl/out/LambdaCube.IR.swift +++ b/ddl/out/LambdaCube.IR.swift @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z typealias StreamName = Int diff --git a/ddl/out/LambdaCube.IR2.hpp b/ddl/out/LambdaCube.IR2.hpp index b5da9b0..7b10b75 100644 --- a/ddl/out/LambdaCube.IR2.hpp +++ b/ddl/out/LambdaCube.IR2.hpp @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z #ifndef HEADER_LambdaCube.IR_H #define HEADER_LambdaCube.IR_H diff --git a/ddl/out/LambdaCube.Mesh.cpp b/ddl/out/LambdaCube.Mesh.cpp index a89f0f7..3b2f266 100644 --- a/ddl/out/LambdaCube.Mesh.cpp +++ b/ddl/out/LambdaCube.Mesh.cpp @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.404479000000Z +// 2016-03-21T15:32:17.804995000000Z #include "LambdaCube.Mesh.hpp" template<> json toJSON>(std::shared_ptr &v) { diff --git a/ddl/out/LambdaCube.Mesh.cs b/ddl/out/LambdaCube.Mesh.cs index 95be336..20a0f7b 100644 --- a/ddl/out/LambdaCube.Mesh.cs +++ b/ddl/out/LambdaCube.Mesh.cs @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.404479000000Z +// 2016-03-21T15:32:17.804995000000Z using System; using System.Linq; diff --git a/ddl/out/LambdaCube.Mesh.hpp b/ddl/out/LambdaCube.Mesh.hpp index 4692756..f896dc2 100644 --- a/ddl/out/LambdaCube.Mesh.hpp +++ b/ddl/out/LambdaCube.Mesh.hpp @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.404479000000Z +// 2016-03-21T15:32:17.804995000000Z #ifndef HEADER_LambdaCube.Mesh_H #define HEADER_LambdaCube.Mesh_H diff --git a/ddl/out/LambdaCube.Mesh.hs b/ddl/out/LambdaCube.Mesh.hs index 9ae5a3a..3651653 100644 --- a/ddl/out/LambdaCube.Mesh.hs +++ b/ddl/out/LambdaCube.Mesh.hs @@ -1,5 +1,5 @@ -- generated file, do not modify! --- 2016-03-21T14:06:55.404479000000Z +-- 2016-03-21T15:32:17.804995000000Z {-# LANGUAGE OverloadedStrings, RecordWildCards #-} module LambdaCube.Mesh where diff --git a/ddl/out/LambdaCube.Mesh.purs b/ddl/out/LambdaCube.Mesh.purs index 8976b23..d171868 100644 --- a/ddl/out/LambdaCube.Mesh.purs +++ b/ddl/out/LambdaCube.Mesh.purs @@ -1,5 +1,5 @@ -- generated file, do not modify! --- 2016-03-21T14:06:55.404479000000Z +-- 2016-03-21T15:32:17.804995000000Z module LambdaCube.Mesh where import Prelude diff --git a/ddl/out/LambdaCube.Mesh.swift b/ddl/out/LambdaCube.Mesh.swift index f890267..9d9efdf 100644 --- a/ddl/out/LambdaCube.Mesh.swift +++ b/ddl/out/LambdaCube.Mesh.swift @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.404479000000Z +// 2016-03-21T15:32:17.804995000000Z enum MeshAttribute { case A_Float(Array) diff --git a/ddl/out/LambdaCube.Mesh2.hpp b/ddl/out/LambdaCube.Mesh2.hpp index ac910b7..f61f8ed 100644 --- a/ddl/out/LambdaCube.Mesh2.hpp +++ b/ddl/out/LambdaCube.Mesh2.hpp @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.404479000000Z +// 2016-03-21T15:32:17.804995000000Z #ifndef HEADER_LambdaCube.Mesh_H #define HEADER_LambdaCube.Mesh_H diff --git a/ddl/out/LambdaCube.PipelineSchema.cpp b/ddl/out/LambdaCube.PipelineSchema.cpp index 047ab67..80ed7d8 100644 --- a/ddl/out/LambdaCube.PipelineSchema.cpp +++ b/ddl/out/LambdaCube.PipelineSchema.cpp @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.360355000000Z +// 2016-03-21T15:32:17.702608000000Z #include "LambdaCube.PipelineSchema.hpp" template<> json toJSON>(std::shared_ptr &v) { diff --git a/ddl/out/LambdaCube.PipelineSchema.cs b/ddl/out/LambdaCube.PipelineSchema.cs index 4644b5a..88f3d16 100644 --- a/ddl/out/LambdaCube.PipelineSchema.cs +++ b/ddl/out/LambdaCube.PipelineSchema.cs @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.360355000000Z +// 2016-03-21T15:32:17.702608000000Z using System; using System.Linq; diff --git a/ddl/out/LambdaCube.PipelineSchema.hpp b/ddl/out/LambdaCube.PipelineSchema.hpp index 3d9b092..3092eea 100644 --- a/ddl/out/LambdaCube.PipelineSchema.hpp +++ b/ddl/out/LambdaCube.PipelineSchema.hpp @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.360355000000Z +// 2016-03-21T15:32:17.702608000000Z #ifndef HEADER_LambdaCube.PipelineSchema_H #define HEADER_LambdaCube.PipelineSchema_H diff --git a/ddl/out/LambdaCube.PipelineSchema.hs b/ddl/out/LambdaCube.PipelineSchema.hs index 447afe4..a5fbc07 100644 --- a/ddl/out/LambdaCube.PipelineSchema.hs +++ b/ddl/out/LambdaCube.PipelineSchema.hs @@ -1,5 +1,5 @@ -- generated file, do not modify! --- 2016-03-21T14:06:55.360355000000Z +-- 2016-03-21T15:32:17.702608000000Z {-# LANGUAGE OverloadedStrings, RecordWildCards #-} module LambdaCube.PipelineSchema where diff --git a/ddl/out/LambdaCube.PipelineSchema.purs b/ddl/out/LambdaCube.PipelineSchema.purs index 7292bf5..7b6daca 100644 --- a/ddl/out/LambdaCube.PipelineSchema.purs +++ b/ddl/out/LambdaCube.PipelineSchema.purs @@ -1,5 +1,5 @@ -- generated file, do not modify! --- 2016-03-21T14:06:55.360355000000Z +-- 2016-03-21T15:32:17.702608000000Z module LambdaCube.PipelineSchema where import Prelude diff --git a/ddl/out/LambdaCube.PipelineSchema.swift b/ddl/out/LambdaCube.PipelineSchema.swift index f824093..f72546e 100644 --- a/ddl/out/LambdaCube.PipelineSchema.swift +++ b/ddl/out/LambdaCube.PipelineSchema.swift @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.360355000000Z +// 2016-03-21T15:32:17.702608000000Z enum StreamType { case Attribute_Word diff --git a/ddl/out/LambdaCube.PipelineSchema2.hpp b/ddl/out/LambdaCube.PipelineSchema2.hpp index c35b803..df67fcc 100644 --- a/ddl/out/LambdaCube.PipelineSchema2.hpp +++ b/ddl/out/LambdaCube.PipelineSchema2.hpp @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.360355000000Z +// 2016-03-21T15:32:17.702608000000Z #ifndef HEADER_LambdaCube.PipelineSchema_H #define HEADER_LambdaCube.PipelineSchema_H diff --git a/ddl/out/LambdaCube.TypeInfo.cpp b/ddl/out/LambdaCube.TypeInfo.cpp index f015db4..2e135e8 100644 --- a/ddl/out/LambdaCube.TypeInfo.cpp +++ b/ddl/out/LambdaCube.TypeInfo.cpp @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.479415000000Z +// 2016-03-21T15:32:17.924228000000Z #include "LambdaCube.TypeInfo.hpp" template<> json toJSON>(std::shared_ptr &v) { diff --git a/ddl/out/LambdaCube.TypeInfo.cs b/ddl/out/LambdaCube.TypeInfo.cs index 43d094e..7bd571b 100644 --- a/ddl/out/LambdaCube.TypeInfo.cs +++ b/ddl/out/LambdaCube.TypeInfo.cs @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.479415000000Z +// 2016-03-21T15:32:17.924228000000Z using System; using System.Linq; diff --git a/ddl/out/LambdaCube.TypeInfo.hpp b/ddl/out/LambdaCube.TypeInfo.hpp index 4c6413b..d283203 100644 --- a/ddl/out/LambdaCube.TypeInfo.hpp +++ b/ddl/out/LambdaCube.TypeInfo.hpp @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.479415000000Z +// 2016-03-21T15:32:17.924228000000Z #ifndef HEADER_LambdaCube.TypeInfo_H #define HEADER_LambdaCube.TypeInfo_H diff --git a/ddl/out/LambdaCube.TypeInfo.hs b/ddl/out/LambdaCube.TypeInfo.hs index d66c490..6414d2d 100644 --- a/ddl/out/LambdaCube.TypeInfo.hs +++ b/ddl/out/LambdaCube.TypeInfo.hs @@ -1,5 +1,5 @@ -- generated file, do not modify! --- 2016-03-21T14:06:55.479415000000Z +-- 2016-03-21T15:32:17.924228000000Z {-# LANGUAGE OverloadedStrings, RecordWildCards #-} module LambdaCube.TypeInfo where diff --git a/ddl/out/LambdaCube.TypeInfo.purs b/ddl/out/LambdaCube.TypeInfo.purs index fffac7f..2a11ab5 100644 --- a/ddl/out/LambdaCube.TypeInfo.purs +++ b/ddl/out/LambdaCube.TypeInfo.purs @@ -1,5 +1,5 @@ -- generated file, do not modify! --- 2016-03-21T14:06:55.479415000000Z +-- 2016-03-21T15:32:17.924228000000Z module LambdaCube.TypeInfo where import Prelude diff --git a/ddl/out/LambdaCube.TypeInfo.swift b/ddl/out/LambdaCube.TypeInfo.swift index 808b61c..f069445 100644 --- a/ddl/out/LambdaCube.TypeInfo.swift +++ b/ddl/out/LambdaCube.TypeInfo.swift @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.479415000000Z +// 2016-03-21T15:32:17.924228000000Z enum Range { case Range(Range_Data) diff --git a/ddl/out/LambdaCube.TypeInfo2.hpp b/ddl/out/LambdaCube.TypeInfo2.hpp index 13c48a7..f3146f2 100644 --- a/ddl/out/LambdaCube.TypeInfo2.hpp +++ b/ddl/out/LambdaCube.TypeInfo2.hpp @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.479415000000Z +// 2016-03-21T15:32:17.924228000000Z #ifndef HEADER_LambdaCube.TypeInfo_H #define HEADER_LambdaCube.TypeInfo_H diff --git a/ddl/out/TestData.cpp b/ddl/out/TestData.cpp index b354cde..82616bb 100644 --- a/ddl/out/TestData.cpp +++ b/ddl/out/TestData.cpp @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.528630000000Z +// 2016-03-21T15:32:18.087397000000Z #include "TestData.hpp" template<> json toJSON>(std::shared_ptr &v) { diff --git a/ddl/out/TestData.cs b/ddl/out/TestData.cs index 0c2a143..d8b4676 100644 --- a/ddl/out/TestData.cs +++ b/ddl/out/TestData.cs @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.528630000000Z +// 2016-03-21T15:32:18.087397000000Z using System; using System.Linq; diff --git a/ddl/out/TestData.hpp b/ddl/out/TestData.hpp index 6d87ec3..d8756dd 100644 --- a/ddl/out/TestData.hpp +++ b/ddl/out/TestData.hpp @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.528630000000Z +// 2016-03-21T15:32:18.087397000000Z #ifndef HEADER_TestData_H #define HEADER_TestData_H diff --git a/ddl/out/TestData.hs b/ddl/out/TestData.hs index 4fc19ff..be5468b 100644 --- a/ddl/out/TestData.hs +++ b/ddl/out/TestData.hs @@ -1,5 +1,5 @@ -- generated file, do not modify! --- 2016-03-21T14:06:55.528630000000Z +-- 2016-03-21T15:32:18.087397000000Z {-# LANGUAGE OverloadedStrings, RecordWildCards #-} module TestData where diff --git a/ddl/out/TestData.purs b/ddl/out/TestData.purs index 5c0eeb3..2d0cc58 100644 --- a/ddl/out/TestData.purs +++ b/ddl/out/TestData.purs @@ -1,5 +1,5 @@ -- generated file, do not modify! --- 2016-03-21T14:06:55.528630000000Z +-- 2016-03-21T15:32:18.087397000000Z module TestData where import Prelude diff --git a/ddl/out/TestData.swift b/ddl/out/TestData.swift index 70241b5..4564486 100644 --- a/ddl/out/TestData.swift +++ b/ddl/out/TestData.swift @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.528630000000Z +// 2016-03-21T15:32:18.087397000000Z enum ClientInfo { case ClientInfo(ClientInfo_Data) diff --git a/ddl/out/TestData2.hpp b/ddl/out/TestData2.hpp index d89775c..6957677 100644 --- a/ddl/out/TestData2.hpp +++ b/ddl/out/TestData2.hpp @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.528630000000Z +// 2016-03-21T15:32:18.087397000000Z #ifndef HEADER_TestData_H #define HEADER_TestData_H diff --git a/ddl/out/java/LambdaCube/IR/AccumulationContext.java b/ddl/out/java/LambdaCube/IR/AccumulationContext.java index 47e92cc..b10b75e 100644 --- a/ddl/out/java/LambdaCube/IR/AccumulationContext.java +++ b/ddl/out/java/LambdaCube/IR/AccumulationContext.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/ArrayValue.java b/ddl/out/java/LambdaCube/IR/ArrayValue.java index df0d096..c4c9e04 100644 --- a/ddl/out/java/LambdaCube/IR/ArrayValue.java +++ b/ddl/out/java/LambdaCube/IR/ArrayValue.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/Backend.java b/ddl/out/java/LambdaCube/IR/Backend.java index 8a395af..ec22de1 100644 --- a/ddl/out/java/LambdaCube/IR/Backend.java +++ b/ddl/out/java/LambdaCube/IR/Backend.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/BlendEquation.java b/ddl/out/java/LambdaCube/IR/BlendEquation.java index c6712d3..d4a5565 100644 --- a/ddl/out/java/LambdaCube/IR/BlendEquation.java +++ b/ddl/out/java/LambdaCube/IR/BlendEquation.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/Blending.java b/ddl/out/java/LambdaCube/IR/Blending.java index f3e1e48..d1ad43a 100644 --- a/ddl/out/java/LambdaCube/IR/Blending.java +++ b/ddl/out/java/LambdaCube/IR/Blending.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/BlendingFactor.java b/ddl/out/java/LambdaCube/IR/BlendingFactor.java index b45483b..4819c5f 100644 --- a/ddl/out/java/LambdaCube/IR/BlendingFactor.java +++ b/ddl/out/java/LambdaCube/IR/BlendingFactor.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/ClearImage.java b/ddl/out/java/LambdaCube/IR/ClearImage.java index de88625..f90d03b 100644 --- a/ddl/out/java/LambdaCube/IR/ClearImage.java +++ b/ddl/out/java/LambdaCube/IR/ClearImage.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/ColorArity.java b/ddl/out/java/LambdaCube/IR/ColorArity.java index 1a89df1..5ff3d31 100644 --- a/ddl/out/java/LambdaCube/IR/ColorArity.java +++ b/ddl/out/java/LambdaCube/IR/ColorArity.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/Command.java b/ddl/out/java/LambdaCube/IR/Command.java index 4a1c915..6f390c5 100644 --- a/ddl/out/java/LambdaCube/IR/Command.java +++ b/ddl/out/java/LambdaCube/IR/Command.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/ComparisonFunction.java b/ddl/out/java/LambdaCube/IR/ComparisonFunction.java index d64cd26..34f1072 100644 --- a/ddl/out/java/LambdaCube/IR/ComparisonFunction.java +++ b/ddl/out/java/LambdaCube/IR/ComparisonFunction.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/CullMode.java b/ddl/out/java/LambdaCube/IR/CullMode.java index bd462ef..5f9a8ea 100644 --- a/ddl/out/java/LambdaCube/IR/CullMode.java +++ b/ddl/out/java/LambdaCube/IR/CullMode.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/EdgeMode.java b/ddl/out/java/LambdaCube/IR/EdgeMode.java index 280ed53..9ac7276 100644 --- a/ddl/out/java/LambdaCube/IR/EdgeMode.java +++ b/ddl/out/java/LambdaCube/IR/EdgeMode.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/FetchPrimitive.java b/ddl/out/java/LambdaCube/IR/FetchPrimitive.java index 89bc1a5..6543729 100644 --- a/ddl/out/java/LambdaCube/IR/FetchPrimitive.java +++ b/ddl/out/java/LambdaCube/IR/FetchPrimitive.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/Filter.java b/ddl/out/java/LambdaCube/IR/Filter.java index 19d9a39..7398a2e 100644 --- a/ddl/out/java/LambdaCube/IR/Filter.java +++ b/ddl/out/java/LambdaCube/IR/Filter.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/FragmentOperation.java b/ddl/out/java/LambdaCube/IR/FragmentOperation.java index 65d284f..c2e9290 100644 --- a/ddl/out/java/LambdaCube/IR/FragmentOperation.java +++ b/ddl/out/java/LambdaCube/IR/FragmentOperation.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/FrontFace.java b/ddl/out/java/LambdaCube/IR/FrontFace.java index 6d5323d..7897723 100644 --- a/ddl/out/java/LambdaCube/IR/FrontFace.java +++ b/ddl/out/java/LambdaCube/IR/FrontFace.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/ImageRef.java b/ddl/out/java/LambdaCube/IR/ImageRef.java index bc382bc..333947c 100644 --- a/ddl/out/java/LambdaCube/IR/ImageRef.java +++ b/ddl/out/java/LambdaCube/IR/ImageRef.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/ImageSemantic.java b/ddl/out/java/LambdaCube/IR/ImageSemantic.java index 4777479..fc31e36 100644 --- a/ddl/out/java/LambdaCube/IR/ImageSemantic.java +++ b/ddl/out/java/LambdaCube/IR/ImageSemantic.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/InputType.java b/ddl/out/java/LambdaCube/IR/InputType.java index 48d42c1..1c8578d 100644 --- a/ddl/out/java/LambdaCube/IR/InputType.java +++ b/ddl/out/java/LambdaCube/IR/InputType.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/JSON.java b/ddl/out/java/LambdaCube/IR/JSON.java index a25af3d..953f675 100644 --- a/ddl/out/java/LambdaCube/IR/JSON.java +++ b/ddl/out/java/LambdaCube/IR/JSON.java @@ -1,11 +1,12 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import java.util.Map; import org.json.*; import RT.*; @@ -1564,4 +1565,1766 @@ public class JSON { } throw new Exception("unknown type"); } + + public static Object toJSON(Type type, Object rawObj) throws JSONException, Exception { + switch (type) { + case ArrayValue: { + ArrayValue v = (ArrayValue)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case VBoolArray: + obj.put("tag", "VBoolArray"); + { + ArrayValue.VBoolArray_ tv = (ArrayValue.VBoolArray_)v; + obj.put("arg0", toJSON(Type.Array_Bool,tv._0)); + } + break; + case VIntArray: + obj.put("tag", "VIntArray"); + { + ArrayValue.VIntArray_ tv = (ArrayValue.VIntArray_)v; + obj.put("arg0", toJSON(Type.Array_Int32,tv._0)); + } + break; + case VWordArray: + obj.put("tag", "VWordArray"); + { + ArrayValue.VWordArray_ tv = (ArrayValue.VWordArray_)v; + obj.put("arg0", toJSON(Type.Array_Word32,tv._0)); + } + break; + case VFloatArray: + obj.put("tag", "VFloatArray"); + { + ArrayValue.VFloatArray_ tv = (ArrayValue.VFloatArray_)v; + obj.put("arg0", toJSON(Type.Array_Float,tv._0)); + } + break; + } + return obj; + } + case Value: { + Value v = (Value)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case VBool: + obj.put("tag", "VBool"); + { + Value.VBool_ tv = (Value.VBool_)v; + obj.put("arg0", toJSON(Type.Bool,tv._0)); + } + break; + case VV2B: + obj.put("tag", "VV2B"); + { + Value.VV2B_ tv = (Value.VV2B_)v; + obj.put("arg0", toJSON(Type.V2_Bool,tv._0)); + } + break; + case VV3B: + obj.put("tag", "VV3B"); + { + Value.VV3B_ tv = (Value.VV3B_)v; + obj.put("arg0", toJSON(Type.V3_Bool,tv._0)); + } + break; + case VV4B: + obj.put("tag", "VV4B"); + { + Value.VV4B_ tv = (Value.VV4B_)v; + obj.put("arg0", toJSON(Type.V4_Bool,tv._0)); + } + break; + case VWord: + obj.put("tag", "VWord"); + { + Value.VWord_ tv = (Value.VWord_)v; + obj.put("arg0", toJSON(Type.Word32,tv._0)); + } + break; + case VV2U: + obj.put("tag", "VV2U"); + { + Value.VV2U_ tv = (Value.VV2U_)v; + obj.put("arg0", toJSON(Type.V2_Word,tv._0)); + } + break; + case VV3U: + obj.put("tag", "VV3U"); + { + Value.VV3U_ tv = (Value.VV3U_)v; + obj.put("arg0", toJSON(Type.V3_Word,tv._0)); + } + break; + case VV4U: + obj.put("tag", "VV4U"); + { + Value.VV4U_ tv = (Value.VV4U_)v; + obj.put("arg0", toJSON(Type.V4_Word,tv._0)); + } + break; + case VInt: + obj.put("tag", "VInt"); + { + Value.VInt_ tv = (Value.VInt_)v; + obj.put("arg0", toJSON(Type.Int32,tv._0)); + } + break; + case VV2I: + obj.put("tag", "VV2I"); + { + Value.VV2I_ tv = (Value.VV2I_)v; + obj.put("arg0", toJSON(Type.V2_Int,tv._0)); + } + break; + case VV3I: + obj.put("tag", "VV3I"); + { + Value.VV3I_ tv = (Value.VV3I_)v; + obj.put("arg0", toJSON(Type.V3_Int,tv._0)); + } + break; + case VV4I: + obj.put("tag", "VV4I"); + { + Value.VV4I_ tv = (Value.VV4I_)v; + obj.put("arg0", toJSON(Type.V4_Int,tv._0)); + } + break; + case VFloat: + obj.put("tag", "VFloat"); + { + Value.VFloat_ tv = (Value.VFloat_)v; + obj.put("arg0", toJSON(Type.Float,tv._0)); + } + break; + case VV2F: + obj.put("tag", "VV2F"); + { + Value.VV2F_ tv = (Value.VV2F_)v; + obj.put("arg0", toJSON(Type.V2_Float,tv._0)); + } + break; + case VV3F: + obj.put("tag", "VV3F"); + { + Value.VV3F_ tv = (Value.VV3F_)v; + obj.put("arg0", toJSON(Type.V3_Float,tv._0)); + } + break; + case VV4F: + obj.put("tag", "VV4F"); + { + Value.VV4F_ tv = (Value.VV4F_)v; + obj.put("arg0", toJSON(Type.V4_Float,tv._0)); + } + break; + case VM22F: + obj.put("tag", "VM22F"); + { + Value.VM22F_ tv = (Value.VM22F_)v; + obj.put("arg0", toJSON(Type.V2_V2_Float,tv._0)); + } + break; + case VM23F: + obj.put("tag", "VM23F"); + { + Value.VM23F_ tv = (Value.VM23F_)v; + obj.put("arg0", toJSON(Type.V3_V2_Float,tv._0)); + } + break; + case VM24F: + obj.put("tag", "VM24F"); + { + Value.VM24F_ tv = (Value.VM24F_)v; + obj.put("arg0", toJSON(Type.V4_V2_Float,tv._0)); + } + break; + case VM32F: + obj.put("tag", "VM32F"); + { + Value.VM32F_ tv = (Value.VM32F_)v; + obj.put("arg0", toJSON(Type.V2_V3_Float,tv._0)); + } + break; + case VM33F: + obj.put("tag", "VM33F"); + { + Value.VM33F_ tv = (Value.VM33F_)v; + obj.put("arg0", toJSON(Type.V3_V3_Float,tv._0)); + } + break; + case VM34F: + obj.put("tag", "VM34F"); + { + Value.VM34F_ tv = (Value.VM34F_)v; + obj.put("arg0", toJSON(Type.V4_V3_Float,tv._0)); + } + break; + case VM42F: + obj.put("tag", "VM42F"); + { + Value.VM42F_ tv = (Value.VM42F_)v; + obj.put("arg0", toJSON(Type.V2_V4_Float,tv._0)); + } + break; + case VM43F: + obj.put("tag", "VM43F"); + { + Value.VM43F_ tv = (Value.VM43F_)v; + obj.put("arg0", toJSON(Type.V3_V4_Float,tv._0)); + } + break; + case VM44F: + obj.put("tag", "VM44F"); + { + Value.VM44F_ tv = (Value.VM44F_)v; + obj.put("arg0", toJSON(Type.V4_V4_Float,tv._0)); + } + break; + } + return obj; + } + case InputType: { + InputType v = (InputType)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Bool: + obj.put("tag", "Bool"); + break; + case V2B: + obj.put("tag", "V2B"); + break; + case V3B: + obj.put("tag", "V3B"); + break; + case V4B: + obj.put("tag", "V4B"); + break; + case Word: + obj.put("tag", "Word"); + break; + case V2U: + obj.put("tag", "V2U"); + break; + case V3U: + obj.put("tag", "V3U"); + break; + case V4U: + obj.put("tag", "V4U"); + break; + case Int: + obj.put("tag", "Int"); + break; + case V2I: + obj.put("tag", "V2I"); + break; + case V3I: + obj.put("tag", "V3I"); + break; + case V4I: + obj.put("tag", "V4I"); + break; + case Float: + obj.put("tag", "Float"); + break; + case V2F: + obj.put("tag", "V2F"); + break; + case V3F: + obj.put("tag", "V3F"); + break; + case V4F: + obj.put("tag", "V4F"); + break; + case M22F: + obj.put("tag", "M22F"); + break; + case M23F: + obj.put("tag", "M23F"); + break; + case M24F: + obj.put("tag", "M24F"); + break; + case M32F: + obj.put("tag", "M32F"); + break; + case M33F: + obj.put("tag", "M33F"); + break; + case M34F: + obj.put("tag", "M34F"); + break; + case M42F: + obj.put("tag", "M42F"); + break; + case M43F: + obj.put("tag", "M43F"); + break; + case M44F: + obj.put("tag", "M44F"); + break; + case STexture1D: + obj.put("tag", "STexture1D"); + break; + case STexture2D: + obj.put("tag", "STexture2D"); + break; + case STextureCube: + obj.put("tag", "STextureCube"); + break; + case STexture1DArray: + obj.put("tag", "STexture1DArray"); + break; + case STexture2DArray: + obj.put("tag", "STexture2DArray"); + break; + case STexture2DRect: + obj.put("tag", "STexture2DRect"); + break; + case FTexture1D: + obj.put("tag", "FTexture1D"); + break; + case FTexture2D: + obj.put("tag", "FTexture2D"); + break; + case FTexture3D: + obj.put("tag", "FTexture3D"); + break; + case FTextureCube: + obj.put("tag", "FTextureCube"); + break; + case FTexture1DArray: + obj.put("tag", "FTexture1DArray"); + break; + case FTexture2DArray: + obj.put("tag", "FTexture2DArray"); + break; + case FTexture2DMS: + obj.put("tag", "FTexture2DMS"); + break; + case FTexture2DMSArray: + obj.put("tag", "FTexture2DMSArray"); + break; + case FTextureBuffer: + obj.put("tag", "FTextureBuffer"); + break; + case FTexture2DRect: + obj.put("tag", "FTexture2DRect"); + break; + case ITexture1D: + obj.put("tag", "ITexture1D"); + break; + case ITexture2D: + obj.put("tag", "ITexture2D"); + break; + case ITexture3D: + obj.put("tag", "ITexture3D"); + break; + case ITextureCube: + obj.put("tag", "ITextureCube"); + break; + case ITexture1DArray: + obj.put("tag", "ITexture1DArray"); + break; + case ITexture2DArray: + obj.put("tag", "ITexture2DArray"); + break; + case ITexture2DMS: + obj.put("tag", "ITexture2DMS"); + break; + case ITexture2DMSArray: + obj.put("tag", "ITexture2DMSArray"); + break; + case ITextureBuffer: + obj.put("tag", "ITextureBuffer"); + break; + case ITexture2DRect: + obj.put("tag", "ITexture2DRect"); + break; + case UTexture1D: + obj.put("tag", "UTexture1D"); + break; + case UTexture2D: + obj.put("tag", "UTexture2D"); + break; + case UTexture3D: + obj.put("tag", "UTexture3D"); + break; + case UTextureCube: + obj.put("tag", "UTextureCube"); + break; + case UTexture1DArray: + obj.put("tag", "UTexture1DArray"); + break; + case UTexture2DArray: + obj.put("tag", "UTexture2DArray"); + break; + case UTexture2DMS: + obj.put("tag", "UTexture2DMS"); + break; + case UTexture2DMSArray: + obj.put("tag", "UTexture2DMSArray"); + break; + case UTextureBuffer: + obj.put("tag", "UTextureBuffer"); + break; + case UTexture2DRect: + obj.put("tag", "UTexture2DRect"); + break; + } + return obj; + } + case PointSpriteCoordOrigin: { + PointSpriteCoordOrigin v = (PointSpriteCoordOrigin)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case LowerLeft: + obj.put("tag", "LowerLeft"); + break; + case UpperLeft: + obj.put("tag", "UpperLeft"); + break; + } + return obj; + } + case PointSize: { + PointSize v = (PointSize)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case PointSize: + obj.put("tag", "PointSize"); + { + PointSize.PointSize_ tv = (PointSize.PointSize_)v; + obj.put("arg0", toJSON(Type.Float,tv._0)); + } + break; + case ProgramPointSize: + obj.put("tag", "ProgramPointSize"); + break; + } + return obj; + } + case PolygonOffset: { + PolygonOffset v = (PolygonOffset)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case NoOffset: + obj.put("tag", "NoOffset"); + break; + case Offset: + obj.put("tag", "Offset"); + { + PolygonOffset.Offset_ tv = (PolygonOffset.Offset_)v; + obj.put("arg0", toJSON(Type.Float,tv._0)); + obj.put("arg1", toJSON(Type.Float,tv._1)); + } + break; + } + return obj; + } + case FrontFace: { + FrontFace v = (FrontFace)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case CCW: + obj.put("tag", "CCW"); + break; + case CW: + obj.put("tag", "CW"); + break; + } + return obj; + } + case PolygonMode: { + PolygonMode v = (PolygonMode)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case PolygonPoint: + obj.put("tag", "PolygonPoint"); + { + PolygonMode.PolygonPoint_ tv = (PolygonMode.PolygonPoint_)v; + obj.put("arg0", toJSON(Type.PointSize,tv._0)); + } + break; + case PolygonLine: + obj.put("tag", "PolygonLine"); + { + PolygonMode.PolygonLine_ tv = (PolygonMode.PolygonLine_)v; + obj.put("arg0", toJSON(Type.Float,tv._0)); + } + break; + case PolygonFill: + obj.put("tag", "PolygonFill"); + break; + } + return obj; + } + case ProvokingVertex: { + ProvokingVertex v = (ProvokingVertex)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case FirstVertex: + obj.put("tag", "FirstVertex"); + break; + case LastVertex: + obj.put("tag", "LastVertex"); + break; + } + return obj; + } + case CullMode: { + CullMode v = (CullMode)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case CullNone: + obj.put("tag", "CullNone"); + break; + case CullFront: + obj.put("tag", "CullFront"); + { + CullMode.CullFront_ tv = (CullMode.CullFront_)v; + obj.put("arg0", toJSON(Type.FrontFace,tv._0)); + } + break; + case CullBack: + obj.put("tag", "CullBack"); + { + CullMode.CullBack_ tv = (CullMode.CullBack_)v; + obj.put("arg0", toJSON(Type.FrontFace,tv._0)); + } + break; + } + return obj; + } + case ComparisonFunction: { + ComparisonFunction v = (ComparisonFunction)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Never: + obj.put("tag", "Never"); + break; + case Less: + obj.put("tag", "Less"); + break; + case Equal: + obj.put("tag", "Equal"); + break; + case Lequal: + obj.put("tag", "Lequal"); + break; + case Greater: + obj.put("tag", "Greater"); + break; + case Notequal: + obj.put("tag", "Notequal"); + break; + case Gequal: + obj.put("tag", "Gequal"); + break; + case Always: + obj.put("tag", "Always"); + break; + } + return obj; + } + case StencilOperation: { + StencilOperation v = (StencilOperation)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case OpZero: + obj.put("tag", "OpZero"); + break; + case OpKeep: + obj.put("tag", "OpKeep"); + break; + case OpReplace: + obj.put("tag", "OpReplace"); + break; + case OpIncr: + obj.put("tag", "OpIncr"); + break; + case OpIncrWrap: + obj.put("tag", "OpIncrWrap"); + break; + case OpDecr: + obj.put("tag", "OpDecr"); + break; + case OpDecrWrap: + obj.put("tag", "OpDecrWrap"); + break; + case OpInvert: + obj.put("tag", "OpInvert"); + break; + } + return obj; + } + case BlendEquation: { + BlendEquation v = (BlendEquation)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case FuncAdd: + obj.put("tag", "FuncAdd"); + break; + case FuncSubtract: + obj.put("tag", "FuncSubtract"); + break; + case FuncReverseSubtract: + obj.put("tag", "FuncReverseSubtract"); + break; + case Min: + obj.put("tag", "Min"); + break; + case Max: + obj.put("tag", "Max"); + break; + } + return obj; + } + case BlendingFactor: { + BlendingFactor v = (BlendingFactor)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Zero: + obj.put("tag", "Zero"); + break; + case One: + obj.put("tag", "One"); + break; + case SrcColor: + obj.put("tag", "SrcColor"); + break; + case OneMinusSrcColor: + obj.put("tag", "OneMinusSrcColor"); + break; + case DstColor: + obj.put("tag", "DstColor"); + break; + case OneMinusDstColor: + obj.put("tag", "OneMinusDstColor"); + break; + case SrcAlpha: + obj.put("tag", "SrcAlpha"); + break; + case OneMinusSrcAlpha: + obj.put("tag", "OneMinusSrcAlpha"); + break; + case DstAlpha: + obj.put("tag", "DstAlpha"); + break; + case OneMinusDstAlpha: + obj.put("tag", "OneMinusDstAlpha"); + break; + case ConstantColor: + obj.put("tag", "ConstantColor"); + break; + case OneMinusConstantColor: + obj.put("tag", "OneMinusConstantColor"); + break; + case ConstantAlpha: + obj.put("tag", "ConstantAlpha"); + break; + case OneMinusConstantAlpha: + obj.put("tag", "OneMinusConstantAlpha"); + break; + case SrcAlphaSaturate: + obj.put("tag", "SrcAlphaSaturate"); + break; + } + return obj; + } + case LogicOperation: { + LogicOperation v = (LogicOperation)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Clear: + obj.put("tag", "Clear"); + break; + case And: + obj.put("tag", "And"); + break; + case AndReverse: + obj.put("tag", "AndReverse"); + break; + case Copy: + obj.put("tag", "Copy"); + break; + case AndInverted: + obj.put("tag", "AndInverted"); + break; + case Noop: + obj.put("tag", "Noop"); + break; + case Xor: + obj.put("tag", "Xor"); + break; + case Or: + obj.put("tag", "Or"); + break; + case Nor: + obj.put("tag", "Nor"); + break; + case Equiv: + obj.put("tag", "Equiv"); + break; + case Invert: + obj.put("tag", "Invert"); + break; + case OrReverse: + obj.put("tag", "OrReverse"); + break; + case CopyInverted: + obj.put("tag", "CopyInverted"); + break; + case OrInverted: + obj.put("tag", "OrInverted"); + break; + case Nand: + obj.put("tag", "Nand"); + break; + case Set: + obj.put("tag", "Set"); + break; + } + return obj; + } + case StencilOps: { + StencilOps v = (StencilOps)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case StencilOps: + obj.put("tag", "StencilOps"); + { + StencilOps.StencilOps_ tv = (StencilOps.StencilOps_)v; + obj.put("frontStencilOp", toJSON(Type.StencilOperation,tv.frontStencilOp)); + obj.put("backStencilOp", toJSON(Type.StencilOperation,tv.backStencilOp)); + } + break; + } + return obj; + } + case StencilTest: { + StencilTest v = (StencilTest)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case StencilTest: + obj.put("tag", "StencilTest"); + { + StencilTest.StencilTest_ tv = (StencilTest.StencilTest_)v; + obj.put("stencilComparision", toJSON(Type.ComparisonFunction,tv.stencilComparision)); + obj.put("stencilReference", toJSON(Type.Int32,tv.stencilReference)); + obj.put("stencilMask", toJSON(Type.Word32,tv.stencilMask)); + } + break; + } + return obj; + } + case StencilTests: { + StencilTests v = (StencilTests)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case StencilTests: + obj.put("tag", "StencilTests"); + { + StencilTests.StencilTests_ tv = (StencilTests.StencilTests_)v; + obj.put("arg0", toJSON(Type.StencilTest,tv._0)); + obj.put("arg1", toJSON(Type.StencilTest,tv._1)); + } + break; + } + return obj; + } + case FetchPrimitive: { + FetchPrimitive v = (FetchPrimitive)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Points: + obj.put("tag", "Points"); + break; + case Lines: + obj.put("tag", "Lines"); + break; + case Triangles: + obj.put("tag", "Triangles"); + break; + case LinesAdjacency: + obj.put("tag", "LinesAdjacency"); + break; + case TrianglesAdjacency: + obj.put("tag", "TrianglesAdjacency"); + break; + } + return obj; + } + case OutputPrimitive: { + OutputPrimitive v = (OutputPrimitive)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case TrianglesOutput: + obj.put("tag", "TrianglesOutput"); + break; + case LinesOutput: + obj.put("tag", "LinesOutput"); + break; + case PointsOutput: + obj.put("tag", "PointsOutput"); + break; + } + return obj; + } + case ColorArity: { + ColorArity v = (ColorArity)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Red: + obj.put("tag", "Red"); + break; + case RG: + obj.put("tag", "RG"); + break; + case RGB: + obj.put("tag", "RGB"); + break; + case RGBA: + obj.put("tag", "RGBA"); + break; + } + return obj; + } + case Blending: { + Blending v = (Blending)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case NoBlending: + obj.put("tag", "NoBlending"); + break; + case BlendLogicOp: + obj.put("tag", "BlendLogicOp"); + { + Blending.BlendLogicOp_ tv = (Blending.BlendLogicOp_)v; + obj.put("arg0", toJSON(Type.LogicOperation,tv._0)); + } + break; + case Blend: + obj.put("tag", "Blend"); + { + Blending.Blend_ tv = (Blending.Blend_)v; + obj.put("colorEqSrc", toJSON(Type.BlendEquation,tv.colorEqSrc)); + obj.put("alphaEqSrc", toJSON(Type.BlendEquation,tv.alphaEqSrc)); + obj.put("colorFSrc", toJSON(Type.BlendingFactor,tv.colorFSrc)); + obj.put("colorFDst", toJSON(Type.BlendingFactor,tv.colorFDst)); + obj.put("alphaFSrc", toJSON(Type.BlendingFactor,tv.alphaFSrc)); + obj.put("alphaFDst", toJSON(Type.BlendingFactor,tv.alphaFDst)); + obj.put("color", toJSON(Type.V4_Float,tv.color)); + } + break; + } + return obj; + } + case RasterContext: { + RasterContext v = (RasterContext)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case PointCtx: + obj.put("tag", "PointCtx"); + { + RasterContext.PointCtx_ tv = (RasterContext.PointCtx_)v; + obj.put("arg0", toJSON(Type.PointSize,tv._0)); + obj.put("arg1", toJSON(Type.Float,tv._1)); + obj.put("arg2", toJSON(Type.PointSpriteCoordOrigin,tv._2)); + } + break; + case LineCtx: + obj.put("tag", "LineCtx"); + { + RasterContext.LineCtx_ tv = (RasterContext.LineCtx_)v; + obj.put("arg0", toJSON(Type.Float,tv._0)); + obj.put("arg1", toJSON(Type.ProvokingVertex,tv._1)); + } + break; + case TriangleCtx: + obj.put("tag", "TriangleCtx"); + { + RasterContext.TriangleCtx_ tv = (RasterContext.TriangleCtx_)v; + obj.put("arg0", toJSON(Type.CullMode,tv._0)); + obj.put("arg1", toJSON(Type.PolygonMode,tv._1)); + obj.put("arg2", toJSON(Type.PolygonOffset,tv._2)); + obj.put("arg3", toJSON(Type.ProvokingVertex,tv._3)); + } + break; + } + return obj; + } + case FragmentOperation: { + FragmentOperation v = (FragmentOperation)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case DepthOp: + obj.put("tag", "DepthOp"); + { + FragmentOperation.DepthOp_ tv = (FragmentOperation.DepthOp_)v; + obj.put("arg0", toJSON(Type.ComparisonFunction,tv._0)); + obj.put("arg1", toJSON(Type.Bool,tv._1)); + } + break; + case StencilOp: + obj.put("tag", "StencilOp"); + { + FragmentOperation.StencilOp_ tv = (FragmentOperation.StencilOp_)v; + obj.put("arg0", toJSON(Type.StencilTests,tv._0)); + obj.put("arg1", toJSON(Type.StencilOps,tv._1)); + obj.put("arg2", toJSON(Type.StencilOps,tv._2)); + } + break; + case ColorOp: + obj.put("tag", "ColorOp"); + { + FragmentOperation.ColorOp_ tv = (FragmentOperation.ColorOp_)v; + obj.put("arg0", toJSON(Type.Blending,tv._0)); + obj.put("arg1", toJSON(Type.Value,tv._1)); + } + break; + } + return obj; + } + case AccumulationContext: { + AccumulationContext v = (AccumulationContext)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case AccumulationContext: + obj.put("tag", "AccumulationContext"); + { + AccumulationContext.AccumulationContext_ tv = (AccumulationContext.AccumulationContext_)v; + obj.put("accViewportName", toJSON(Type.Maybe_String,tv.accViewportName)); + obj.put("accOperations", toJSON(Type.List_FragmentOperation,tv.accOperations)); + } + break; + } + return obj; + } + case TextureDataType: { + TextureDataType v = (TextureDataType)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case FloatT: + obj.put("tag", "FloatT"); + { + TextureDataType.FloatT_ tv = (TextureDataType.FloatT_)v; + obj.put("arg0", toJSON(Type.ColorArity,tv._0)); + } + break; + case IntT: + obj.put("tag", "IntT"); + { + TextureDataType.IntT_ tv = (TextureDataType.IntT_)v; + obj.put("arg0", toJSON(Type.ColorArity,tv._0)); + } + break; + case WordT: + obj.put("tag", "WordT"); + { + TextureDataType.WordT_ tv = (TextureDataType.WordT_)v; + obj.put("arg0", toJSON(Type.ColorArity,tv._0)); + } + break; + case ShadowT: + obj.put("tag", "ShadowT"); + break; + } + return obj; + } + case TextureType: { + TextureType v = (TextureType)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Texture1D: + obj.put("tag", "Texture1D"); + { + TextureType.Texture1D_ tv = (TextureType.Texture1D_)v; + obj.put("arg0", toJSON(Type.TextureDataType,tv._0)); + obj.put("arg1", toJSON(Type.Int,tv._1)); + } + break; + case Texture2D: + obj.put("tag", "Texture2D"); + { + TextureType.Texture2D_ tv = (TextureType.Texture2D_)v; + obj.put("arg0", toJSON(Type.TextureDataType,tv._0)); + obj.put("arg1", toJSON(Type.Int,tv._1)); + } + break; + case Texture3D: + obj.put("tag", "Texture3D"); + { + TextureType.Texture3D_ tv = (TextureType.Texture3D_)v; + obj.put("arg0", toJSON(Type.TextureDataType,tv._0)); + } + break; + case TextureCube: + obj.put("tag", "TextureCube"); + { + TextureType.TextureCube_ tv = (TextureType.TextureCube_)v; + obj.put("arg0", toJSON(Type.TextureDataType,tv._0)); + } + break; + case TextureRect: + obj.put("tag", "TextureRect"); + { + TextureType.TextureRect_ tv = (TextureType.TextureRect_)v; + obj.put("arg0", toJSON(Type.TextureDataType,tv._0)); + } + break; + case Texture2DMS: + obj.put("tag", "Texture2DMS"); + { + TextureType.Texture2DMS_ tv = (TextureType.Texture2DMS_)v; + obj.put("arg0", toJSON(Type.TextureDataType,tv._0)); + obj.put("arg1", toJSON(Type.Int,tv._1)); + obj.put("arg2", toJSON(Type.Int,tv._2)); + obj.put("arg3", toJSON(Type.Bool,tv._3)); + } + break; + case TextureBuffer: + obj.put("tag", "TextureBuffer"); + { + TextureType.TextureBuffer_ tv = (TextureType.TextureBuffer_)v; + obj.put("arg0", toJSON(Type.TextureDataType,tv._0)); + } + break; + } + return obj; + } + case MipMap: { + MipMap v = (MipMap)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Mip: + obj.put("tag", "Mip"); + { + MipMap.Mip_ tv = (MipMap.Mip_)v; + obj.put("arg0", toJSON(Type.Int,tv._0)); + obj.put("arg1", toJSON(Type.Int,tv._1)); + } + break; + case NoMip: + obj.put("tag", "NoMip"); + break; + case AutoMip: + obj.put("tag", "AutoMip"); + { + MipMap.AutoMip_ tv = (MipMap.AutoMip_)v; + obj.put("arg0", toJSON(Type.Int,tv._0)); + obj.put("arg1", toJSON(Type.Int,tv._1)); + } + break; + } + return obj; + } + case Filter: { + Filter v = (Filter)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Nearest: + obj.put("tag", "Nearest"); + break; + case Linear: + obj.put("tag", "Linear"); + break; + case NearestMipmapNearest: + obj.put("tag", "NearestMipmapNearest"); + break; + case NearestMipmapLinear: + obj.put("tag", "NearestMipmapLinear"); + break; + case LinearMipmapNearest: + obj.put("tag", "LinearMipmapNearest"); + break; + case LinearMipmapLinear: + obj.put("tag", "LinearMipmapLinear"); + break; + } + return obj; + } + case EdgeMode: { + EdgeMode v = (EdgeMode)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Repeat: + obj.put("tag", "Repeat"); + break; + case MirroredRepeat: + obj.put("tag", "MirroredRepeat"); + break; + case ClampToEdge: + obj.put("tag", "ClampToEdge"); + break; + case ClampToBorder: + obj.put("tag", "ClampToBorder"); + break; + } + return obj; + } + case ImageSemantic: { + ImageSemantic v = (ImageSemantic)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Depth: + obj.put("tag", "Depth"); + break; + case Stencil: + obj.put("tag", "Stencil"); + break; + case Color: + obj.put("tag", "Color"); + break; + } + return obj; + } + case ImageRef: { + ImageRef v = (ImageRef)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case TextureImage: + obj.put("tag", "TextureImage"); + { + ImageRef.TextureImage_ tv = (ImageRef.TextureImage_)v; + obj.put("arg0", toJSON(Type.Int,tv._0)); + obj.put("arg1", toJSON(Type.Int,tv._1)); + obj.put("arg2", toJSON(Type.Maybe_Int,tv._2)); + } + break; + case Framebuffer: + obj.put("tag", "Framebuffer"); + { + ImageRef.Framebuffer_ tv = (ImageRef.Framebuffer_)v; + obj.put("arg0", toJSON(Type.ImageSemantic,tv._0)); + } + break; + } + return obj; + } + case ClearImage: { + ClearImage v = (ClearImage)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case ClearImage: + obj.put("tag", "ClearImage"); + { + ClearImage.ClearImage_ tv = (ClearImage.ClearImage_)v; + obj.put("imageSemantic", toJSON(Type.ImageSemantic,tv.imageSemantic)); + obj.put("clearValue", toJSON(Type.Value,tv.clearValue)); + } + break; + } + return obj; + } + case Command: { + Command v = (Command)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case SetRasterContext: + obj.put("tag", "SetRasterContext"); + { + Command.SetRasterContext_ tv = (Command.SetRasterContext_)v; + obj.put("arg0", toJSON(Type.RasterContext,tv._0)); + } + break; + case SetAccumulationContext: + obj.put("tag", "SetAccumulationContext"); + { + Command.SetAccumulationContext_ tv = (Command.SetAccumulationContext_)v; + obj.put("arg0", toJSON(Type.AccumulationContext,tv._0)); + } + break; + case SetRenderTarget: + obj.put("tag", "SetRenderTarget"); + { + Command.SetRenderTarget_ tv = (Command.SetRenderTarget_)v; + obj.put("arg0", toJSON(Type.Int,tv._0)); + } + break; + case SetProgram: + obj.put("tag", "SetProgram"); + { + Command.SetProgram_ tv = (Command.SetProgram_)v; + obj.put("arg0", toJSON(Type.Int,tv._0)); + } + break; + case SetSamplerUniform: + obj.put("tag", "SetSamplerUniform"); + { + Command.SetSamplerUniform_ tv = (Command.SetSamplerUniform_)v; + obj.put("arg0", toJSON(Type.String,tv._0)); + obj.put("arg1", toJSON(Type.Int,tv._1)); + } + break; + case SetTexture: + obj.put("tag", "SetTexture"); + { + Command.SetTexture_ tv = (Command.SetTexture_)v; + obj.put("arg0", toJSON(Type.Int,tv._0)); + obj.put("arg1", toJSON(Type.Int,tv._1)); + } + break; + case SetSampler: + obj.put("tag", "SetSampler"); + { + Command.SetSampler_ tv = (Command.SetSampler_)v; + obj.put("arg0", toJSON(Type.Int,tv._0)); + obj.put("arg1", toJSON(Type.Maybe_Int,tv._1)); + } + break; + case RenderSlot: + obj.put("tag", "RenderSlot"); + { + Command.RenderSlot_ tv = (Command.RenderSlot_)v; + obj.put("arg0", toJSON(Type.Int,tv._0)); + } + break; + case RenderStream: + obj.put("tag", "RenderStream"); + { + Command.RenderStream_ tv = (Command.RenderStream_)v; + obj.put("arg0", toJSON(Type.Int,tv._0)); + } + break; + case ClearRenderTarget: + obj.put("tag", "ClearRenderTarget"); + { + Command.ClearRenderTarget_ tv = (Command.ClearRenderTarget_)v; + obj.put("arg0", toJSON(Type.Array_ClearImage,tv._0)); + } + break; + case GenerateMipMap: + obj.put("tag", "GenerateMipMap"); + { + Command.GenerateMipMap_ tv = (Command.GenerateMipMap_)v; + obj.put("arg0", toJSON(Type.Int,tv._0)); + } + break; + case SaveImage: + obj.put("tag", "SaveImage"); + { + Command.SaveImage_ tv = (Command.SaveImage_)v; + obj.put("arg0", toJSON(Type.Int,tv._0)); + obj.put("arg1", toJSON(Type.ImageRef,tv._1)); + } + break; + case LoadImage: + obj.put("tag", "LoadImage"); + { + Command.LoadImage_ tv = (Command.LoadImage_)v; + obj.put("arg0", toJSON(Type.ImageRef,tv._0)); + obj.put("arg1", toJSON(Type.Int,tv._1)); + } + break; + } + return obj; + } + case SamplerDescriptor: { + SamplerDescriptor v = (SamplerDescriptor)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case SamplerDescriptor: + obj.put("tag", "SamplerDescriptor"); + { + SamplerDescriptor.SamplerDescriptor_ tv = (SamplerDescriptor.SamplerDescriptor_)v; + obj.put("samplerWrapS", toJSON(Type.EdgeMode,tv.samplerWrapS)); + obj.put("samplerWrapT", toJSON(Type.Maybe_EdgeMode,tv.samplerWrapT)); + obj.put("samplerWrapR", toJSON(Type.Maybe_EdgeMode,tv.samplerWrapR)); + obj.put("samplerMinFilter", toJSON(Type.Filter,tv.samplerMinFilter)); + obj.put("samplerMagFilter", toJSON(Type.Filter,tv.samplerMagFilter)); + obj.put("samplerBorderColor", toJSON(Type.Value,tv.samplerBorderColor)); + obj.put("samplerMinLod", toJSON(Type.Maybe_Float,tv.samplerMinLod)); + obj.put("samplerMaxLod", toJSON(Type.Maybe_Float,tv.samplerMaxLod)); + obj.put("samplerLodBias", toJSON(Type.Float,tv.samplerLodBias)); + obj.put("samplerCompareFunc", toJSON(Type.Maybe_ComparisonFunction,tv.samplerCompareFunc)); + } + break; + } + return obj; + } + case TextureDescriptor: { + TextureDescriptor v = (TextureDescriptor)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case TextureDescriptor: + obj.put("tag", "TextureDescriptor"); + { + TextureDescriptor.TextureDescriptor_ tv = (TextureDescriptor.TextureDescriptor_)v; + obj.put("textureType", toJSON(Type.TextureType,tv.textureType)); + obj.put("textureSize", toJSON(Type.Value,tv.textureSize)); + obj.put("textureSemantic", toJSON(Type.ImageSemantic,tv.textureSemantic)); + obj.put("textureSampler", toJSON(Type.SamplerDescriptor,tv.textureSampler)); + obj.put("textureBaseLevel", toJSON(Type.Int,tv.textureBaseLevel)); + obj.put("textureMaxLevel", toJSON(Type.Int,tv.textureMaxLevel)); + } + break; + } + return obj; + } + case Parameter: { + Parameter v = (Parameter)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Parameter: + obj.put("tag", "Parameter"); + { + Parameter.Parameter_ tv = (Parameter.Parameter_)v; + obj.put("name", toJSON(Type.String,tv.name)); + obj.put("ty", toJSON(Type.InputType,tv.ty)); + } + break; + } + return obj; + } + case Program: { + Program v = (Program)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Program: + obj.put("tag", "Program"); + { + Program.Program_ tv = (Program.Program_)v; + obj.put("programUniforms", toJSON(Type.Map_String_InputType,tv.programUniforms)); + obj.put("programStreams", toJSON(Type.Map_String_Parameter,tv.programStreams)); + obj.put("programInTextures", toJSON(Type.Map_String_InputType,tv.programInTextures)); + obj.put("programOutput", toJSON(Type.Array_Parameter,tv.programOutput)); + obj.put("vertexShader", toJSON(Type.String,tv.vertexShader)); + obj.put("geometryShader", toJSON(Type.Maybe_String,tv.geometryShader)); + obj.put("fragmentShader", toJSON(Type.String,tv.fragmentShader)); + } + break; + } + return obj; + } + case Slot: { + Slot v = (Slot)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Slot: + obj.put("tag", "Slot"); + { + Slot.Slot_ tv = (Slot.Slot_)v; + obj.put("slotName", toJSON(Type.String,tv.slotName)); + obj.put("slotStreams", toJSON(Type.Map_String_InputType,tv.slotStreams)); + obj.put("slotUniforms", toJSON(Type.Map_String_InputType,tv.slotUniforms)); + obj.put("slotPrimitive", toJSON(Type.FetchPrimitive,tv.slotPrimitive)); + obj.put("slotPrograms", toJSON(Type.Array_Int,tv.slotPrograms)); + } + break; + } + return obj; + } + case StreamData: { + StreamData v = (StreamData)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case StreamData: + obj.put("tag", "StreamData"); + { + StreamData.StreamData_ tv = (StreamData.StreamData_)v; + obj.put("streamData", toJSON(Type.Map_String_ArrayValue,tv.streamData)); + obj.put("streamType", toJSON(Type.Map_String_InputType,tv.streamType)); + obj.put("streamPrimitive", toJSON(Type.FetchPrimitive,tv.streamPrimitive)); + obj.put("streamPrograms", toJSON(Type.Array_Int,tv.streamPrograms)); + } + break; + } + return obj; + } + case TargetItem: { + TargetItem v = (TargetItem)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case TargetItem: + obj.put("tag", "TargetItem"); + { + TargetItem.TargetItem_ tv = (TargetItem.TargetItem_)v; + obj.put("targetSemantic", toJSON(Type.ImageSemantic,tv.targetSemantic)); + obj.put("targetRef", toJSON(Type.Maybe_ImageRef,tv.targetRef)); + } + break; + } + return obj; + } + case RenderTarget: { + RenderTarget v = (RenderTarget)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case RenderTarget: + obj.put("tag", "RenderTarget"); + { + RenderTarget.RenderTarget_ tv = (RenderTarget.RenderTarget_)v; + obj.put("renderTargets", toJSON(Type.Array_TargetItem,tv.renderTargets)); + } + break; + } + return obj; + } + case Backend: { + Backend v = (Backend)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case WebGL1: + obj.put("tag", "WebGL1"); + break; + case OpenGL33: + obj.put("tag", "OpenGL33"); + break; + } + return obj; + } + case Pipeline: { + Pipeline v = (Pipeline)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Pipeline: + obj.put("tag", "Pipeline"); + { + Pipeline.Pipeline_ tv = (Pipeline.Pipeline_)v; + obj.put("info", toJSON(Type.String,tv.info)); + obj.put("backend", toJSON(Type.Backend,tv.backend)); + obj.put("textures", toJSON(Type.Array_TextureDescriptor,tv.textures)); + obj.put("samplers", toJSON(Type.Array_SamplerDescriptor,tv.samplers)); + obj.put("targets", toJSON(Type.Array_RenderTarget,tv.targets)); + obj.put("programs", toJSON(Type.Array_Program,tv.programs)); + obj.put("slots", toJSON(Type.Array_Slot,tv.slots)); + obj.put("streams", toJSON(Type.Array_StreamData,tv.streams)); + obj.put("commands", toJSON(Type.Array_Command,tv.commands)); + } + break; + } + return obj; + } + + case Word32: { return rawObj; } + case Float: { return rawObj; } + case Bool: { return rawObj; } + case String: { return rawObj; } + case V2_Word: { + V2 v = (V2)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.Word,v.x)); + obj.put("y", toJSON(Type.Word,v.y)); + return obj; + } + case V2_Float: { + V2 v = (V2)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.Float,v.x)); + obj.put("y", toJSON(Type.Float,v.y)); + return obj; + } + case V2_Bool: { + V2 v = (V2)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.Bool,v.x)); + obj.put("y", toJSON(Type.Bool,v.y)); + return obj; + } + case V2_V2_Float: { + V2> v = (V2>)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.V2_Float,v.x)); + obj.put("y", toJSON(Type.V2_Float,v.y)); + return obj; + } + case V2_V3_Float: { + V2> v = (V2>)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.V3_Float,v.x)); + obj.put("y", toJSON(Type.V3_Float,v.y)); + return obj; + } + case V2_V4_Float: { + V2> v = (V2>)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.V4_Float,v.x)); + obj.put("y", toJSON(Type.V4_Float,v.y)); + return obj; + } + case V3_Word: { + V3 v = (V3)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.Word,v.x)); + obj.put("y", toJSON(Type.Word,v.y)); + obj.put("z", toJSON(Type.Word,v.z)); + return obj; + } + case V3_Float: { + V3 v = (V3)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.Float,v.x)); + obj.put("y", toJSON(Type.Float,v.y)); + obj.put("z", toJSON(Type.Float,v.z)); + return obj; + } + case V3_Bool: { + V3 v = (V3)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.Bool,v.x)); + obj.put("y", toJSON(Type.Bool,v.y)); + obj.put("z", toJSON(Type.Bool,v.z)); + return obj; + } + case V3_V2_Float: { + V3> v = (V3>)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.V2_Float,v.x)); + obj.put("y", toJSON(Type.V2_Float,v.y)); + obj.put("z", toJSON(Type.V2_Float,v.z)); + return obj; + } + case V3_V3_Float: { + V3> v = (V3>)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.V3_Float,v.x)); + obj.put("y", toJSON(Type.V3_Float,v.y)); + obj.put("z", toJSON(Type.V3_Float,v.z)); + return obj; + } + case V3_V4_Float: { + V3> v = (V3>)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.V4_Float,v.x)); + obj.put("y", toJSON(Type.V4_Float,v.y)); + obj.put("z", toJSON(Type.V4_Float,v.z)); + return obj; + } + case V4_Word: { + V4 v = (V4)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.Word,v.x)); + obj.put("y", toJSON(Type.Word,v.y)); + obj.put("z", toJSON(Type.Word,v.z)); + obj.put("w", toJSON(Type.Word,v.w)); + return obj; + } + case V4_Float: { + V4 v = (V4)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.Float,v.x)); + obj.put("y", toJSON(Type.Float,v.y)); + obj.put("z", toJSON(Type.Float,v.z)); + obj.put("w", toJSON(Type.Float,v.w)); + return obj; + } + case V4_Bool: { + V4 v = (V4)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.Bool,v.x)); + obj.put("y", toJSON(Type.Bool,v.y)); + obj.put("z", toJSON(Type.Bool,v.z)); + obj.put("w", toJSON(Type.Bool,v.w)); + return obj; + } + case V4_V2_Float: { + V4> v = (V4>)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.V2_Float,v.x)); + obj.put("y", toJSON(Type.V2_Float,v.y)); + obj.put("z", toJSON(Type.V2_Float,v.z)); + obj.put("w", toJSON(Type.V2_Float,v.w)); + return obj; + } + case V4_V3_Float: { + V4> v = (V4>)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.V3_Float,v.x)); + obj.put("y", toJSON(Type.V3_Float,v.y)); + obj.put("z", toJSON(Type.V3_Float,v.z)); + obj.put("w", toJSON(Type.V3_Float,v.w)); + return obj; + } + case V4_V4_Float: { + V4> v = (V4>)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.V4_Float,v.x)); + obj.put("y", toJSON(Type.V4_Float,v.y)); + obj.put("z", toJSON(Type.V4_Float,v.z)); + obj.put("w", toJSON(Type.V4_Float,v.w)); + return obj; + } + case Array_Word32: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(Integer i : v) { + obj.put(toJSON(Type.Word32,i)); + } + return obj; + } + case Array_Float: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(Float i : v) { + obj.put(toJSON(Type.Float,i)); + } + return obj; + } + case Array_Bool: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(Boolean i : v) { + obj.put(toJSON(Type.Bool,i)); + } + return obj; + } + case Array_ClearImage: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(ClearImage i : v) { + obj.put(toJSON(Type.ClearImage,i)); + } + return obj; + } + case Array_Command: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(Command i : v) { + obj.put(toJSON(Type.Command,i)); + } + return obj; + } + case Array_Parameter: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(Parameter i : v) { + obj.put(toJSON(Type.Parameter,i)); + } + return obj; + } + case Array_Program: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(Program i : v) { + obj.put(toJSON(Type.Program,i)); + } + return obj; + } + case Array_RenderTarget: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(RenderTarget i : v) { + obj.put(toJSON(Type.RenderTarget,i)); + } + return obj; + } + case Array_SamplerDescriptor: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(SamplerDescriptor i : v) { + obj.put(toJSON(Type.SamplerDescriptor,i)); + } + return obj; + } + case Array_Slot: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(Slot i : v) { + obj.put(toJSON(Type.Slot,i)); + } + return obj; + } + case Array_StreamData: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(StreamData i : v) { + obj.put(toJSON(Type.StreamData,i)); + } + return obj; + } + case Array_TargetItem: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(TargetItem i : v) { + obj.put(toJSON(Type.TargetItem,i)); + } + return obj; + } + case Array_TextureDescriptor: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(TextureDescriptor i : v) { + obj.put(toJSON(Type.TextureDescriptor,i)); + } + return obj; + } + case List_FragmentOperation: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(FragmentOperation i : v) { + obj.put(toJSON(Type.FragmentOperation,i)); + } + return obj; + } + case Maybe_Int: { + Maybe v = (Maybe)rawObj; + if (v.valid) { + return toJSON(Type.Int,v.data); + } + return JSONObject.NULL; + } + case Maybe_Float: { + Maybe v = (Maybe)rawObj; + if (v.valid) { + return toJSON(Type.Float,v.data); + } + return JSONObject.NULL; + } + case Maybe_String: { + Maybe v = (Maybe)rawObj; + if (v.valid) { + return toJSON(Type.String,v.data); + } + return JSONObject.NULL; + } + case Maybe_ComparisonFunction: { + Maybe v = (Maybe)rawObj; + if (v.valid) { + return toJSON(Type.ComparisonFunction,v.data); + } + return JSONObject.NULL; + } + case Maybe_EdgeMode: { + Maybe v = (Maybe)rawObj; + if (v.valid) { + return toJSON(Type.EdgeMode,v.data); + } + return JSONObject.NULL; + } + case Maybe_ImageRef: { + Maybe v = (Maybe)rawObj; + if (v.valid) { + return toJSON(Type.ImageRef,v.data); + } + return JSONObject.NULL; + } + case Map_String_ArrayValue: { + HashMap v = (HashMap)rawObj; + JSONObject obj = new JSONObject(); + for (Map.Entry i : v.entrySet()) { + obj.put(i.getKey(), toJSON(Type.ArrayValue,i.getValue())); + } + return obj; + } + case Map_String_InputType: { + HashMap v = (HashMap)rawObj; + JSONObject obj = new JSONObject(); + for (Map.Entry i : v.entrySet()) { + obj.put(i.getKey(), toJSON(Type.InputType,i.getValue())); + } + return obj; + } + case Map_String_Parameter: { + HashMap v = (HashMap)rawObj; + JSONObject obj = new JSONObject(); + for (Map.Entry i : v.entrySet()) { + obj.put(i.getKey(), toJSON(Type.Parameter,i.getValue())); + } + return obj; + } + } + return null; + } } \ No newline at end of file diff --git a/ddl/out/java/LambdaCube/IR/LogicOperation.java b/ddl/out/java/LambdaCube/IR/LogicOperation.java index b7efcff..76ad5f0 100644 --- a/ddl/out/java/LambdaCube/IR/LogicOperation.java +++ b/ddl/out/java/LambdaCube/IR/LogicOperation.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/MipMap.java b/ddl/out/java/LambdaCube/IR/MipMap.java index 068c824..3f4dd83 100644 --- a/ddl/out/java/LambdaCube/IR/MipMap.java +++ b/ddl/out/java/LambdaCube/IR/MipMap.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/OutputPrimitive.java b/ddl/out/java/LambdaCube/IR/OutputPrimitive.java index 267ff8a..8573b52 100644 --- a/ddl/out/java/LambdaCube/IR/OutputPrimitive.java +++ b/ddl/out/java/LambdaCube/IR/OutputPrimitive.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/Parameter.java b/ddl/out/java/LambdaCube/IR/Parameter.java index 31b8701..c9bbb0e 100644 --- a/ddl/out/java/LambdaCube/IR/Parameter.java +++ b/ddl/out/java/LambdaCube/IR/Parameter.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/Pipeline.java b/ddl/out/java/LambdaCube/IR/Pipeline.java index b5c9a86..5ec9134 100644 --- a/ddl/out/java/LambdaCube/IR/Pipeline.java +++ b/ddl/out/java/LambdaCube/IR/Pipeline.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/PointSize.java b/ddl/out/java/LambdaCube/IR/PointSize.java index b1d4fe3..034b6ef 100644 --- a/ddl/out/java/LambdaCube/IR/PointSize.java +++ b/ddl/out/java/LambdaCube/IR/PointSize.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/PointSpriteCoordOrigin.java b/ddl/out/java/LambdaCube/IR/PointSpriteCoordOrigin.java index 7c387b8..0adea89 100644 --- a/ddl/out/java/LambdaCube/IR/PointSpriteCoordOrigin.java +++ b/ddl/out/java/LambdaCube/IR/PointSpriteCoordOrigin.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/PolygonMode.java b/ddl/out/java/LambdaCube/IR/PolygonMode.java index decf1e5..66ae75b 100644 --- a/ddl/out/java/LambdaCube/IR/PolygonMode.java +++ b/ddl/out/java/LambdaCube/IR/PolygonMode.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/PolygonOffset.java b/ddl/out/java/LambdaCube/IR/PolygonOffset.java index d25c57a..723902c 100644 --- a/ddl/out/java/LambdaCube/IR/PolygonOffset.java +++ b/ddl/out/java/LambdaCube/IR/PolygonOffset.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/Program.java b/ddl/out/java/LambdaCube/IR/Program.java index 520ad58..2a4d203 100644 --- a/ddl/out/java/LambdaCube/IR/Program.java +++ b/ddl/out/java/LambdaCube/IR/Program.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/ProvokingVertex.java b/ddl/out/java/LambdaCube/IR/ProvokingVertex.java index ebe5f5f..4f168a8 100644 --- a/ddl/out/java/LambdaCube/IR/ProvokingVertex.java +++ b/ddl/out/java/LambdaCube/IR/ProvokingVertex.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/RasterContext.java b/ddl/out/java/LambdaCube/IR/RasterContext.java index dc3c725..c3c96af 100644 --- a/ddl/out/java/LambdaCube/IR/RasterContext.java +++ b/ddl/out/java/LambdaCube/IR/RasterContext.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/RenderTarget.java b/ddl/out/java/LambdaCube/IR/RenderTarget.java index ea18e10..9634405 100644 --- a/ddl/out/java/LambdaCube/IR/RenderTarget.java +++ b/ddl/out/java/LambdaCube/IR/RenderTarget.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/SamplerDescriptor.java b/ddl/out/java/LambdaCube/IR/SamplerDescriptor.java index 1fceace..022b5f1 100644 --- a/ddl/out/java/LambdaCube/IR/SamplerDescriptor.java +++ b/ddl/out/java/LambdaCube/IR/SamplerDescriptor.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/Slot.java b/ddl/out/java/LambdaCube/IR/Slot.java index 970c79e..672f23f 100644 --- a/ddl/out/java/LambdaCube/IR/Slot.java +++ b/ddl/out/java/LambdaCube/IR/Slot.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/StencilOperation.java b/ddl/out/java/LambdaCube/IR/StencilOperation.java index 9a4156d..0c836a0 100644 --- a/ddl/out/java/LambdaCube/IR/StencilOperation.java +++ b/ddl/out/java/LambdaCube/IR/StencilOperation.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/StencilOps.java b/ddl/out/java/LambdaCube/IR/StencilOps.java index 5dff15d..4875480 100644 --- a/ddl/out/java/LambdaCube/IR/StencilOps.java +++ b/ddl/out/java/LambdaCube/IR/StencilOps.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/StencilTest.java b/ddl/out/java/LambdaCube/IR/StencilTest.java index 083c053..382f7e3 100644 --- a/ddl/out/java/LambdaCube/IR/StencilTest.java +++ b/ddl/out/java/LambdaCube/IR/StencilTest.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/StencilTests.java b/ddl/out/java/LambdaCube/IR/StencilTests.java index 7cf730c..48fabe3 100644 --- a/ddl/out/java/LambdaCube/IR/StencilTests.java +++ b/ddl/out/java/LambdaCube/IR/StencilTests.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/StreamData.java b/ddl/out/java/LambdaCube/IR/StreamData.java index 6a2f49d..2a29d66 100644 --- a/ddl/out/java/LambdaCube/IR/StreamData.java +++ b/ddl/out/java/LambdaCube/IR/StreamData.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/TargetItem.java b/ddl/out/java/LambdaCube/IR/TargetItem.java index 392a38c..65c3845 100644 --- a/ddl/out/java/LambdaCube/IR/TargetItem.java +++ b/ddl/out/java/LambdaCube/IR/TargetItem.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/TextureDataType.java b/ddl/out/java/LambdaCube/IR/TextureDataType.java index 2a7824d..8b39deb 100644 --- a/ddl/out/java/LambdaCube/IR/TextureDataType.java +++ b/ddl/out/java/LambdaCube/IR/TextureDataType.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/TextureDescriptor.java b/ddl/out/java/LambdaCube/IR/TextureDescriptor.java index 23dedde..6d9b259 100644 --- a/ddl/out/java/LambdaCube/IR/TextureDescriptor.java +++ b/ddl/out/java/LambdaCube/IR/TextureDescriptor.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/TextureType.java b/ddl/out/java/LambdaCube/IR/TextureType.java index bea424e..9321517 100644 --- a/ddl/out/java/LambdaCube/IR/TextureType.java +++ b/ddl/out/java/LambdaCube/IR/TextureType.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/IR/Value.java b/ddl/out/java/LambdaCube/IR/Value.java index fe9d0cd..980417b 100644 --- a/ddl/out/java/LambdaCube/IR/Value.java +++ b/ddl/out/java/LambdaCube/IR/Value.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:54.700322000000Z +// 2016-03-21T15:32:16.153401000000Z package LambdaCube.IR; diff --git a/ddl/out/java/LambdaCube/Mesh/JSON.java b/ddl/out/java/LambdaCube/Mesh/JSON.java index 9a1767e..2d65a3a 100644 --- a/ddl/out/java/LambdaCube/Mesh/JSON.java +++ b/ddl/out/java/LambdaCube/Mesh/JSON.java @@ -1,11 +1,12 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.404479000000Z +// 2016-03-21T15:32:17.804995000000Z package LambdaCube.Mesh; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import java.util.Map; import org.json.*; import RT.*; @@ -267,4 +268,249 @@ public class JSON { } throw new Exception("unknown type"); } + + public static Object toJSON(Type type, Object rawObj) throws JSONException, Exception { + switch (type) { + case MeshAttribute: { + MeshAttribute v = (MeshAttribute)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case A_Float: + obj.put("tag", "A_Float"); + { + MeshAttribute.A_Float_ tv = (MeshAttribute.A_Float_)v; + obj.put("arg0", toJSON(Type.Array_Float,tv._0)); + } + break; + case A_V2F: + obj.put("tag", "A_V2F"); + { + MeshAttribute.A_V2F_ tv = (MeshAttribute.A_V2F_)v; + obj.put("arg0", toJSON(Type.Array_V2_Float,tv._0)); + } + break; + case A_V3F: + obj.put("tag", "A_V3F"); + { + MeshAttribute.A_V3F_ tv = (MeshAttribute.A_V3F_)v; + obj.put("arg0", toJSON(Type.Array_V3_Float,tv._0)); + } + break; + case A_V4F: + obj.put("tag", "A_V4F"); + { + MeshAttribute.A_V4F_ tv = (MeshAttribute.A_V4F_)v; + obj.put("arg0", toJSON(Type.Array_V4_Float,tv._0)); + } + break; + case A_M22F: + obj.put("tag", "A_M22F"); + { + MeshAttribute.A_M22F_ tv = (MeshAttribute.A_M22F_)v; + obj.put("arg0", toJSON(Type.Array_V2_V2_Float,tv._0)); + } + break; + case A_M33F: + obj.put("tag", "A_M33F"); + { + MeshAttribute.A_M33F_ tv = (MeshAttribute.A_M33F_)v; + obj.put("arg0", toJSON(Type.Array_V3_V3_Float,tv._0)); + } + break; + case A_M44F: + obj.put("tag", "A_M44F"); + { + MeshAttribute.A_M44F_ tv = (MeshAttribute.A_M44F_)v; + obj.put("arg0", toJSON(Type.Array_V4_V4_Float,tv._0)); + } + break; + case A_Int: + obj.put("tag", "A_Int"); + { + MeshAttribute.A_Int_ tv = (MeshAttribute.A_Int_)v; + obj.put("arg0", toJSON(Type.Array_Int32,tv._0)); + } + break; + case A_Word: + obj.put("tag", "A_Word"); + { + MeshAttribute.A_Word_ tv = (MeshAttribute.A_Word_)v; + obj.put("arg0", toJSON(Type.Array_Word32,tv._0)); + } + break; + } + return obj; + } + case MeshPrimitive: { + MeshPrimitive v = (MeshPrimitive)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case P_Points: + obj.put("tag", "P_Points"); + break; + case P_TriangleStrip: + obj.put("tag", "P_TriangleStrip"); + break; + case P_Triangles: + obj.put("tag", "P_Triangles"); + break; + case P_TriangleStripI: + obj.put("tag", "P_TriangleStripI"); + { + MeshPrimitive.P_TriangleStripI_ tv = (MeshPrimitive.P_TriangleStripI_)v; + obj.put("arg0", toJSON(Type.Array_Int32,tv._0)); + } + break; + case P_TrianglesI: + obj.put("tag", "P_TrianglesI"); + { + MeshPrimitive.P_TrianglesI_ tv = (MeshPrimitive.P_TrianglesI_)v; + obj.put("arg0", toJSON(Type.Array_Int32,tv._0)); + } + break; + } + return obj; + } + case Mesh: { + Mesh v = (Mesh)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Mesh: + obj.put("tag", "Mesh"); + { + Mesh.Mesh_ tv = (Mesh.Mesh_)v; + obj.put("mAttributes", toJSON(Type.Map_String_MeshAttribute,tv.mAttributes)); + obj.put("mPrimitive", toJSON(Type.MeshPrimitive,tv.mPrimitive)); + } + break; + } + return obj; + } + + case Word32: { return rawObj; } + case Float: { return rawObj; } + case String: { return rawObj; } + case V2_Float: { + V2 v = (V2)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.Float,v.x)); + obj.put("y", toJSON(Type.Float,v.y)); + return obj; + } + case V2_V2_Float: { + V2> v = (V2>)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.V2_Float,v.x)); + obj.put("y", toJSON(Type.V2_Float,v.y)); + return obj; + } + case V3_Float: { + V3 v = (V3)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.Float,v.x)); + obj.put("y", toJSON(Type.Float,v.y)); + obj.put("z", toJSON(Type.Float,v.z)); + return obj; + } + case V3_V3_Float: { + V3> v = (V3>)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.V3_Float,v.x)); + obj.put("y", toJSON(Type.V3_Float,v.y)); + obj.put("z", toJSON(Type.V3_Float,v.z)); + return obj; + } + case V4_Float: { + V4 v = (V4)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.Float,v.x)); + obj.put("y", toJSON(Type.Float,v.y)); + obj.put("z", toJSON(Type.Float,v.z)); + obj.put("w", toJSON(Type.Float,v.w)); + return obj; + } + case V4_V4_Float: { + V4> v = (V4>)rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.V4_Float,v.x)); + obj.put("y", toJSON(Type.V4_Float,v.y)); + obj.put("z", toJSON(Type.V4_Float,v.z)); + obj.put("w", toJSON(Type.V4_Float,v.w)); + return obj; + } + case Array_Word32: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(Integer i : v) { + obj.put(toJSON(Type.Word32,i)); + } + return obj; + } + case Array_Float: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(Float i : v) { + obj.put(toJSON(Type.Float,i)); + } + return obj; + } + case Array_V2_Float: { + ArrayList> v = (ArrayList>)rawObj; + JSONArray obj = new JSONArray(); + for(V2 i : v) { + obj.put(toJSON(Type.V2_Float,i)); + } + return obj; + } + case Array_V2_V2_Float: { + ArrayList>> v = (ArrayList>>)rawObj; + JSONArray obj = new JSONArray(); + for(V2> i : v) { + obj.put(toJSON(Type.V2_V2_Float,i)); + } + return obj; + } + case Array_V3_Float: { + ArrayList> v = (ArrayList>)rawObj; + JSONArray obj = new JSONArray(); + for(V3 i : v) { + obj.put(toJSON(Type.V3_Float,i)); + } + return obj; + } + case Array_V3_V3_Float: { + ArrayList>> v = (ArrayList>>)rawObj; + JSONArray obj = new JSONArray(); + for(V3> i : v) { + obj.put(toJSON(Type.V3_V3_Float,i)); + } + return obj; + } + case Array_V4_Float: { + ArrayList> v = (ArrayList>)rawObj; + JSONArray obj = new JSONArray(); + for(V4 i : v) { + obj.put(toJSON(Type.V4_Float,i)); + } + return obj; + } + case Array_V4_V4_Float: { + ArrayList>> v = (ArrayList>>)rawObj; + JSONArray obj = new JSONArray(); + for(V4> i : v) { + obj.put(toJSON(Type.V4_V4_Float,i)); + } + return obj; + } + case Map_String_MeshAttribute: { + HashMap v = (HashMap)rawObj; + JSONObject obj = new JSONObject(); + for (Map.Entry i : v.entrySet()) { + obj.put(i.getKey(), toJSON(Type.MeshAttribute,i.getValue())); + } + return obj; + } + } + return null; + } } \ No newline at end of file diff --git a/ddl/out/java/LambdaCube/Mesh/Mesh.java b/ddl/out/java/LambdaCube/Mesh/Mesh.java index 1eb05d2..02b872b 100644 --- a/ddl/out/java/LambdaCube/Mesh/Mesh.java +++ b/ddl/out/java/LambdaCube/Mesh/Mesh.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.404479000000Z +// 2016-03-21T15:32:17.804995000000Z package LambdaCube.Mesh; diff --git a/ddl/out/java/LambdaCube/Mesh/MeshAttribute.java b/ddl/out/java/LambdaCube/Mesh/MeshAttribute.java index dff2e02..61a9c79 100644 --- a/ddl/out/java/LambdaCube/Mesh/MeshAttribute.java +++ b/ddl/out/java/LambdaCube/Mesh/MeshAttribute.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.404479000000Z +// 2016-03-21T15:32:17.804995000000Z package LambdaCube.Mesh; diff --git a/ddl/out/java/LambdaCube/Mesh/MeshPrimitive.java b/ddl/out/java/LambdaCube/Mesh/MeshPrimitive.java index 7c25ae8..43de590 100644 --- a/ddl/out/java/LambdaCube/Mesh/MeshPrimitive.java +++ b/ddl/out/java/LambdaCube/Mesh/MeshPrimitive.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.404479000000Z +// 2016-03-21T15:32:17.804995000000Z package LambdaCube.Mesh; diff --git a/ddl/out/java/LambdaCube/PipelineSchema/JSON.java b/ddl/out/java/LambdaCube/PipelineSchema/JSON.java index 1fec7e8..1667518 100644 --- a/ddl/out/java/LambdaCube/PipelineSchema/JSON.java +++ b/ddl/out/java/LambdaCube/PipelineSchema/JSON.java @@ -1,11 +1,12 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.360355000000Z +// 2016-03-21T15:32:17.702608000000Z package LambdaCube.PipelineSchema; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import java.util.Map; import org.json.*; import RT.*; @@ -120,4 +121,136 @@ public class JSON { } throw new Exception("unknown type"); } + + public static Object toJSON(Type type, Object rawObj) throws JSONException, Exception { + switch (type) { + case StreamType: { + StreamType v = (StreamType)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Attribute_Word: + obj.put("tag", "Attribute_Word"); + break; + case Attribute_V2U: + obj.put("tag", "Attribute_V2U"); + break; + case Attribute_V3U: + obj.put("tag", "Attribute_V3U"); + break; + case Attribute_V4U: + obj.put("tag", "Attribute_V4U"); + break; + case Attribute_Int: + obj.put("tag", "Attribute_Int"); + break; + case Attribute_V2I: + obj.put("tag", "Attribute_V2I"); + break; + case Attribute_V3I: + obj.put("tag", "Attribute_V3I"); + break; + case Attribute_V4I: + obj.put("tag", "Attribute_V4I"); + break; + case Attribute_Float: + obj.put("tag", "Attribute_Float"); + break; + case Attribute_V2F: + obj.put("tag", "Attribute_V2F"); + break; + case Attribute_V3F: + obj.put("tag", "Attribute_V3F"); + break; + case Attribute_V4F: + obj.put("tag", "Attribute_V4F"); + break; + case Attribute_M22F: + obj.put("tag", "Attribute_M22F"); + break; + case Attribute_M23F: + obj.put("tag", "Attribute_M23F"); + break; + case Attribute_M24F: + obj.put("tag", "Attribute_M24F"); + break; + case Attribute_M32F: + obj.put("tag", "Attribute_M32F"); + break; + case Attribute_M33F: + obj.put("tag", "Attribute_M33F"); + break; + case Attribute_M34F: + obj.put("tag", "Attribute_M34F"); + break; + case Attribute_M42F: + obj.put("tag", "Attribute_M42F"); + break; + case Attribute_M43F: + obj.put("tag", "Attribute_M43F"); + break; + case Attribute_M44F: + obj.put("tag", "Attribute_M44F"); + break; + } + return obj; + } + case ObjectArraySchema: { + ObjectArraySchema v = (ObjectArraySchema)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case ObjectArraySchema: + obj.put("tag", "ObjectArraySchema"); + { + ObjectArraySchema.ObjectArraySchema_ tv = (ObjectArraySchema.ObjectArraySchema_)v; + obj.put("primitive", toJSON(Type.FetchPrimitive,tv.primitive)); + obj.put("attributes", toJSON(Type.Map_String_StreamType,tv.attributes)); + } + break; + } + return obj; + } + case PipelineSchema: { + PipelineSchema v = (PipelineSchema)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case PipelineSchema: + obj.put("tag", "PipelineSchema"); + { + PipelineSchema.PipelineSchema_ tv = (PipelineSchema.PipelineSchema_)v; + obj.put("objectArrays", toJSON(Type.Map_String_ObjectArraySchema,tv.objectArrays)); + obj.put("uniforms", toJSON(Type.Map_String_InputType,tv.uniforms)); + } + break; + } + return obj; + } + + case String: { return rawObj; } + case Map_String_InputType: { + HashMap v = (HashMap)rawObj; + JSONObject obj = new JSONObject(); + for (Map.Entry i : v.entrySet()) { + obj.put(i.getKey(), toJSON(Type.InputType,i.getValue())); + } + return obj; + } + case Map_String_ObjectArraySchema: { + HashMap v = (HashMap)rawObj; + JSONObject obj = new JSONObject(); + for (Map.Entry i : v.entrySet()) { + obj.put(i.getKey(), toJSON(Type.ObjectArraySchema,i.getValue())); + } + return obj; + } + case Map_String_StreamType: { + HashMap v = (HashMap)rawObj; + JSONObject obj = new JSONObject(); + for (Map.Entry i : v.entrySet()) { + obj.put(i.getKey(), toJSON(Type.StreamType,i.getValue())); + } + return obj; + } + } + return null; + } } \ No newline at end of file diff --git a/ddl/out/java/LambdaCube/PipelineSchema/ObjectArraySchema.java b/ddl/out/java/LambdaCube/PipelineSchema/ObjectArraySchema.java index cc15385..adb12ff 100644 --- a/ddl/out/java/LambdaCube/PipelineSchema/ObjectArraySchema.java +++ b/ddl/out/java/LambdaCube/PipelineSchema/ObjectArraySchema.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.360355000000Z +// 2016-03-21T15:32:17.702608000000Z package LambdaCube.PipelineSchema; diff --git a/ddl/out/java/LambdaCube/PipelineSchema/PipelineSchema.java b/ddl/out/java/LambdaCube/PipelineSchema/PipelineSchema.java index 3618a3a..cc221a8 100644 --- a/ddl/out/java/LambdaCube/PipelineSchema/PipelineSchema.java +++ b/ddl/out/java/LambdaCube/PipelineSchema/PipelineSchema.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.360355000000Z +// 2016-03-21T15:32:17.702608000000Z package LambdaCube.PipelineSchema; diff --git a/ddl/out/java/LambdaCube/PipelineSchema/StreamType.java b/ddl/out/java/LambdaCube/PipelineSchema/StreamType.java index 1861146..f7007b5 100644 --- a/ddl/out/java/LambdaCube/PipelineSchema/StreamType.java +++ b/ddl/out/java/LambdaCube/PipelineSchema/StreamType.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.360355000000Z +// 2016-03-21T15:32:17.702608000000Z package LambdaCube.PipelineSchema; diff --git a/ddl/out/java/LambdaCube/TypeInfo/CompileResult.java b/ddl/out/java/LambdaCube/TypeInfo/CompileResult.java index 0b21b64..4235172 100644 --- a/ddl/out/java/LambdaCube/TypeInfo/CompileResult.java +++ b/ddl/out/java/LambdaCube/TypeInfo/CompileResult.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.479415000000Z +// 2016-03-21T15:32:17.924228000000Z package LambdaCube.TypeInfo; diff --git a/ddl/out/java/LambdaCube/TypeInfo/JSON.java b/ddl/out/java/LambdaCube/TypeInfo/JSON.java index d4ea991..6679e5d 100644 --- a/ddl/out/java/LambdaCube/TypeInfo/JSON.java +++ b/ddl/out/java/LambdaCube/TypeInfo/JSON.java @@ -1,11 +1,12 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.479415000000Z +// 2016-03-21T15:32:17.924228000000Z package LambdaCube.TypeInfo; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import java.util.Map; import org.json.*; import RT.*; @@ -98,4 +99,87 @@ public class JSON { } throw new Exception("unknown type"); } + + public static Object toJSON(Type type, Object rawObj) throws JSONException, Exception { + switch (type) { + case Range: { + Range v = (Range)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Range: + obj.put("tag", "Range"); + { + Range.Range_ tv = (Range.Range_)v; + obj.put("startLine", toJSON(Type.Int,tv.startLine)); + obj.put("startColumn", toJSON(Type.Int,tv.startColumn)); + obj.put("endLine", toJSON(Type.Int,tv.endLine)); + obj.put("endColumn", toJSON(Type.Int,tv.endColumn)); + } + break; + } + return obj; + } + case TypeInfo: { + TypeInfo v = (TypeInfo)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case TypeInfo: + obj.put("tag", "TypeInfo"); + { + TypeInfo.TypeInfo_ tv = (TypeInfo.TypeInfo_)v; + obj.put("range", toJSON(Type.Range,tv.range)); + obj.put("text", toJSON(Type.String,tv.text)); + } + break; + } + return obj; + } + case CompileResult: { + CompileResult v = (CompileResult)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case CompileError: + obj.put("tag", "CompileError"); + { + CompileResult.CompileError_ tv = (CompileResult.CompileError_)v; + obj.put("arg0", toJSON(Type.Array_Range,tv._0)); + obj.put("arg1", toJSON(Type.String,tv._1)); + obj.put("arg2", toJSON(Type.Array_TypeInfo,tv._2)); + } + break; + case Compiled: + obj.put("tag", "Compiled"); + { + CompileResult.Compiled_ tv = (CompileResult.Compiled_)v; + obj.put("arg0", toJSON(Type.String,tv._0)); + obj.put("arg1", toJSON(Type.String,tv._1)); + obj.put("arg2", toJSON(Type.Pipeline,tv._2)); + obj.put("arg3", toJSON(Type.Array_TypeInfo,tv._3)); + } + break; + } + return obj; + } + + case Int: { return rawObj; } + case String: { return rawObj; } + case Array_Range: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(Range i : v) { + obj.put(toJSON(Type.Range,i)); + } + return obj; + } + case Array_TypeInfo: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(TypeInfo i : v) { + obj.put(toJSON(Type.TypeInfo,i)); + } + return obj; + } + } + return null; + } } \ No newline at end of file diff --git a/ddl/out/java/LambdaCube/TypeInfo/Range.java b/ddl/out/java/LambdaCube/TypeInfo/Range.java index 61e2ddb..36ab145 100644 --- a/ddl/out/java/LambdaCube/TypeInfo/Range.java +++ b/ddl/out/java/LambdaCube/TypeInfo/Range.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.479415000000Z +// 2016-03-21T15:32:17.924228000000Z package LambdaCube.TypeInfo; diff --git a/ddl/out/java/LambdaCube/TypeInfo/TypeInfo.java b/ddl/out/java/LambdaCube/TypeInfo/TypeInfo.java index a34fda6..febda4b 100644 --- a/ddl/out/java/LambdaCube/TypeInfo/TypeInfo.java +++ b/ddl/out/java/LambdaCube/TypeInfo/TypeInfo.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.479415000000Z +// 2016-03-21T15:32:17.924228000000Z package LambdaCube.TypeInfo; diff --git a/ddl/out/java/TestData/ClientInfo.java b/ddl/out/java/TestData/ClientInfo.java index 81f9c9a..2bedf17 100644 --- a/ddl/out/java/TestData/ClientInfo.java +++ b/ddl/out/java/TestData/ClientInfo.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.528630000000Z +// 2016-03-21T15:32:18.087397000000Z package TestData; diff --git a/ddl/out/java/TestData/Frame.java b/ddl/out/java/TestData/Frame.java index 1e4f4a5..a91fab6 100644 --- a/ddl/out/java/TestData/Frame.java +++ b/ddl/out/java/TestData/Frame.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.528630000000Z +// 2016-03-21T15:32:18.087397000000Z package TestData; diff --git a/ddl/out/java/TestData/FrameResult.java b/ddl/out/java/TestData/FrameResult.java index ded69a2..81c96d7 100644 --- a/ddl/out/java/TestData/FrameResult.java +++ b/ddl/out/java/TestData/FrameResult.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.528630000000Z +// 2016-03-21T15:32:18.087397000000Z package TestData; diff --git a/ddl/out/java/TestData/JSON.java b/ddl/out/java/TestData/JSON.java index 7bf7ff0..098105d 100644 --- a/ddl/out/java/TestData/JSON.java +++ b/ddl/out/java/TestData/JSON.java @@ -1,11 +1,12 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.528630000000Z +// 2016-03-21T15:32:18.087397000000Z package TestData; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import java.util.Map; import org.json.*; import RT.*; @@ -240,4 +241,212 @@ public class JSON { } throw new Exception("unknown type"); } + + public static Object toJSON(Type type, Object rawObj) throws JSONException, Exception { + switch (type) { + case ClientInfo: { + ClientInfo v = (ClientInfo)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case ClientInfo: + obj.put("tag", "ClientInfo"); + { + ClientInfo.ClientInfo_ tv = (ClientInfo.ClientInfo_)v; + obj.put("clientName", toJSON(Type.String,tv.clientName)); + obj.put("clientBackend", toJSON(Type.Backend,tv.clientBackend)); + } + break; + } + return obj; + } + case Frame: { + Frame v = (Frame)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Frame: + obj.put("tag", "Frame"); + { + Frame.Frame_ tv = (Frame.Frame_)v; + obj.put("renderCount", toJSON(Type.Int,tv.renderCount)); + obj.put("frameUniforms", toJSON(Type.Map_String_Value,tv.frameUniforms)); + obj.put("frameTextures", toJSON(Type.Map_String_Int,tv.frameTextures)); + } + break; + } + return obj; + } + case Scene: { + Scene v = (Scene)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case Scene: + obj.put("tag", "Scene"); + { + Scene.Scene_ tv = (Scene.Scene_)v; + obj.put("objectArrays", toJSON(Type.Map_String_Array_Int,tv.objectArrays)); + obj.put("renderTargetWidth", toJSON(Type.Int,tv.renderTargetWidth)); + obj.put("renderTargetHeight", toJSON(Type.Int,tv.renderTargetHeight)); + obj.put("frames", toJSON(Type.Array_Frame,tv.frames)); + } + break; + } + return obj; + } + case PipelineInfo: { + PipelineInfo v = (PipelineInfo)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case PipelineInfo: + obj.put("tag", "PipelineInfo"); + { + PipelineInfo.PipelineInfo_ tv = (PipelineInfo.PipelineInfo_)v; + obj.put("pipelineName", toJSON(Type.String,tv.pipelineName)); + obj.put("pipeline", toJSON(Type.Pipeline,tv.pipeline)); + } + break; + } + return obj; + } + case RenderJob: { + RenderJob v = (RenderJob)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case RenderJob: + obj.put("tag", "RenderJob"); + { + RenderJob.RenderJob_ tv = (RenderJob.RenderJob_)v; + obj.put("meshes", toJSON(Type.Array_Mesh,tv.meshes)); + obj.put("textures", toJSON(Type.Array_String,tv.textures)); + obj.put("schema", toJSON(Type.PipelineSchema,tv.schema)); + obj.put("scenes", toJSON(Type.Array_Scene,tv.scenes)); + obj.put("pipelines", toJSON(Type.Array_PipelineInfo,tv.pipelines)); + } + break; + } + return obj; + } + case FrameResult: { + FrameResult v = (FrameResult)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case FrameResult: + obj.put("tag", "FrameResult"); + { + FrameResult.FrameResult_ tv = (FrameResult.FrameResult_)v; + obj.put("frRenderTimes", toJSON(Type.Array_Float,tv.frRenderTimes)); + obj.put("frImageWidth", toJSON(Type.Int,tv.frImageWidth)); + obj.put("frImageHeight", toJSON(Type.Int,tv.frImageHeight)); + } + break; + } + return obj; + } + case RenderJobResult: { + RenderJobResult v = (RenderJobResult)rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { + case RenderJobResult: + obj.put("tag", "RenderJobResult"); + { + RenderJobResult.RenderJobResult_ tv = (RenderJobResult.RenderJobResult_)v; + obj.put("arg0", toJSON(Type.FrameResult,tv._0)); + } + break; + case RenderJobError: + obj.put("tag", "RenderJobError"); + { + RenderJobResult.RenderJobError_ tv = (RenderJobResult.RenderJobError_)v; + obj.put("arg0", toJSON(Type.String,tv._0)); + } + break; + } + return obj; + } + + case Int: { return rawObj; } + case Float: { return rawObj; } + case String: { return rawObj; } + case Array_Int: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(Integer i : v) { + obj.put(toJSON(Type.Int,i)); + } + return obj; + } + case Array_Float: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(Float i : v) { + obj.put(toJSON(Type.Float,i)); + } + return obj; + } + case Array_String: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(String i : v) { + obj.put(toJSON(Type.String,i)); + } + return obj; + } + case Array_Frame: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(Frame i : v) { + obj.put(toJSON(Type.Frame,i)); + } + return obj; + } + case Array_Mesh: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(Mesh i : v) { + obj.put(toJSON(Type.Mesh,i)); + } + return obj; + } + case Array_PipelineInfo: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(PipelineInfo i : v) { + obj.put(toJSON(Type.PipelineInfo,i)); + } + return obj; + } + case Array_Scene: { + ArrayList v = (ArrayList)rawObj; + JSONArray obj = new JSONArray(); + for(Scene i : v) { + obj.put(toJSON(Type.Scene,i)); + } + return obj; + } + case Map_String_Int: { + HashMap v = (HashMap)rawObj; + JSONObject obj = new JSONObject(); + for (Map.Entry i : v.entrySet()) { + obj.put(i.getKey(), toJSON(Type.Int,i.getValue())); + } + return obj; + } + case Map_String_Array_Int: { + HashMap> v = (HashMap>)rawObj; + JSONObject obj = new JSONObject(); + for (Map.Entry> i : v.entrySet()) { + obj.put(i.getKey(), toJSON(Type.Array_Int,i.getValue())); + } + return obj; + } + case Map_String_Value: { + HashMap v = (HashMap)rawObj; + JSONObject obj = new JSONObject(); + for (Map.Entry i : v.entrySet()) { + obj.put(i.getKey(), toJSON(Type.Value,i.getValue())); + } + return obj; + } + } + return null; + } } \ No newline at end of file diff --git a/ddl/out/java/TestData/PipelineInfo.java b/ddl/out/java/TestData/PipelineInfo.java index 89e8ca5..dd0bbab 100644 --- a/ddl/out/java/TestData/PipelineInfo.java +++ b/ddl/out/java/TestData/PipelineInfo.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.528630000000Z +// 2016-03-21T15:32:18.087397000000Z package TestData; diff --git a/ddl/out/java/TestData/RenderJob.java b/ddl/out/java/TestData/RenderJob.java index 279bd6c..9c54448 100644 --- a/ddl/out/java/TestData/RenderJob.java +++ b/ddl/out/java/TestData/RenderJob.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.528630000000Z +// 2016-03-21T15:32:18.087397000000Z package TestData; diff --git a/ddl/out/java/TestData/RenderJobResult.java b/ddl/out/java/TestData/RenderJobResult.java index b6bf2c9..df887d5 100644 --- a/ddl/out/java/TestData/RenderJobResult.java +++ b/ddl/out/java/TestData/RenderJobResult.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.528630000000Z +// 2016-03-21T15:32:18.087397000000Z package TestData; diff --git a/ddl/out/java/TestData/Scene.java b/ddl/out/java/TestData/Scene.java index 45a21ed..9345476 100644 --- a/ddl/out/java/TestData/Scene.java +++ b/ddl/out/java/TestData/Scene.java @@ -1,5 +1,5 @@ // generated file, do not modify! -// 2016-03-21T14:06:55.528630000000Z +// 2016-03-21T15:32:18.087397000000Z package TestData; diff --git a/ddl/templates/json.java.ede b/ddl/templates/json.java.ede index cfb639a..dc4ea25 100644 --- a/ddl/templates/json.java.ede +++ b/ddl/templates/json.java.ede @@ -6,6 +6,7 @@ package {{ moduleName }}; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import java.util.Map; import org.json.*; import RT.*; @@ -127,4 +128,97 @@ public class JSON { } throw new Exception("unknown type"); } + + public static Object toJSON(Type type, Object rawObj) throws JSONException, Exception { + switch (type) { + {% for t in definitions %} + case {{ t.value.dataName }}: { + {{ t.value.dataName }} v = ({{ t.value.dataName }})rawObj; + JSONObject obj = new JSONObject(); + switch (v.tag) { {% for c in t.value.constructors %} + case {{ c.value.name }}: + obj.put("tag", "{{ c.value.name }}");{% if !(c.value.fields | empty) %} + { + {{ t.value.dataName }}.{{ c.value.name }}_ tv = ({{ t.value.dataName }}.{{ c.value.name }}_)v;{% for f in c.value.fields %}{% if c.value.fields | hasFieldNames %} + obj.put("{{ f.value.fieldName }}", toJSON(Type.{{ f.value.fieldType | typeEnum }},tv.{{ f.value.fieldName }}));{% else %} + obj.put("arg{{ f.index0 }}", toJSON(Type.{{ f.value.fieldType | typeEnum }},tv._{{ f.index0 }}));{% endif %}{% endfor %} + }{% endif %} + break;{% endfor %} + } + return obj; + } + {% endfor %} + + {% for t in usedJavaTypes %} + {% case t.value.tag %} + {% when "Data" %} + {% when "V2" %} + case {{ t.value | typeEnum }}: { + {{ t.value | javaType }} v = ({{ t.value | javaType }})rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.{{ t.value.type_ | typeEnum }},v.x)); + obj.put("y", toJSON(Type.{{ t.value.type_ | typeEnum }},v.y)); + return obj; + } + {% when "V3" %} + case {{ t.value | typeEnum }}: { + {{ t.value | javaType }} v = ({{ t.value | javaType }})rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.{{ t.value.type_ | typeEnum }},v.x)); + obj.put("y", toJSON(Type.{{ t.value.type_ | typeEnum }},v.y)); + obj.put("z", toJSON(Type.{{ t.value.type_ | typeEnum }},v.z)); + return obj; + } + {% when "V4" %} + case {{ t.value | typeEnum }}: { + {{ t.value | javaType }} v = ({{ t.value | javaType }})rawObj; + JSONObject obj = new JSONObject(); + obj.put("x", toJSON(Type.{{ t.value.type_ | typeEnum }},v.x)); + obj.put("y", toJSON(Type.{{ t.value.type_ | typeEnum }},v.y)); + obj.put("z", toJSON(Type.{{ t.value.type_ | typeEnum }},v.z)); + obj.put("w", toJSON(Type.{{ t.value.type_ | typeEnum }},v.w)); + return obj; + } + {% when "Maybe" %} + case {{ t.value | typeEnum }}: { + {{ t.value | javaType }} v = ({{ t.value | javaType }})rawObj; + if (v.valid) { + return toJSON(Type.{{ t.value.type_ | typeEnum }},v.data); + } + return JSONObject.NULL; + } + {% when "Map" %} + case {{ t.value | typeEnum }}: { + {{ t.value | javaType }} v = ({{ t.value | javaType }})rawObj; + JSONObject obj = new JSONObject(); + for (Map.Entry<{{ t.value.key_ | javaType }},{{ t.value.value_ | javaType }}> i : v.entrySet()) { + obj.put(i.getKey(), toJSON(Type.{{ t.value.value_ | typeEnum }},i.getValue())); + } + return obj; + } + {% when "Array" %} + case {{ t.value | typeEnum }}: { + {{ t.value | javaType }} v = ({{ t.value | javaType }})rawObj; + JSONArray obj = new JSONArray(); + for({{ t.value.type_ | javaType }} i : v) { + obj.put(toJSON(Type.{{ t.value.type_ | typeEnum }},i)); + } + return obj; + } + {% when "List" %} + case {{ t.value | typeEnum }}: { + {{ t.value | javaType }} v = ({{ t.value | javaType }})rawObj; + JSONArray obj = new JSONArray(); + for({{ t.value.type_ | javaType }} i : v) { + obj.put(toJSON(Type.{{ t.value.type_ | typeEnum }},i)); + } + return obj; + } + {% else %} + case {{ t.value | typeEnum }}: { return rawObj; } + {% endcase %} + {% endfor %} + } + return null; + } } \ No newline at end of file -- cgit v1.2.3