summaryrefslogtreecommitdiff
path: root/ddl/out/TestData.purs
diff options
context:
space:
mode:
Diffstat (limited to 'ddl/out/TestData.purs')
-rw-r--r--ddl/out/TestData.purs209
1 files changed, 209 insertions, 0 deletions
diff --git a/ddl/out/TestData.purs b/ddl/out/TestData.purs
new file mode 100644
index 0000000..4a0575b
--- /dev/null
+++ b/ddl/out/TestData.purs
@@ -0,0 +1,209 @@
1-- generated file, do not modify!
2-- 2016-01-28T13:15:31.27456Z
3
4module TestData where
5import Prelude
6import Data.Generic
7import Data.Maybe (Maybe(..))
8import Data.StrMap (StrMap(..))
9import Data.Map (Map(..))
10import Data.List (List(..))
11import Linear
12
13import Data.Argonaut.Combinators ((~>), (:=), (.?))
14import Data.Argonaut.Core (jsonEmptyObject)
15import Data.Argonaut.Printer (printJson)
16import Data.Argonaut.Encode (EncodeJson, encodeJson)
17import Data.Argonaut.Decode (DecodeJson, decodeJson)
18
19import LambdaCube.IR
20import LambdaCube.Mesh
21import LambdaCube.PipelineSchema
22
23data ClientInfo
24 = ClientInfo
25 { clientName :: String
26 , clientBackend :: Backend
27 }
28
29
30data Frame
31 = Frame
32 { renderCount :: Int
33 , frameUniforms :: StrMap Value
34 , frameTextures :: StrMap Int
35 }
36
37
38data Scene
39 = Scene
40 { objectArrays :: StrMap (Array Int)
41 , renderTargetWidth :: Int
42 , renderTargetHeight :: Int
43 , frames :: Array Frame
44 }
45
46
47data RenderJob
48 = RenderJob
49 { meshes :: Array Mesh
50 , textures :: Array String
51 , schema :: PipelineSchema
52 , scenes :: Array Scene
53 , pipelines :: Array Pipeline
54 }
55
56
57data FrameResult
58 = FrameResult
59 { frRenderTimes :: Array Float
60 , frImageWidth :: Int
61 , frImageHeight :: Int
62 }
63
64
65data RenderJobResult
66 = RenderJobResult FrameResult
67 | RenderJobError String
68
69
70
71instance encodeJsonClientInfo :: EncodeJson ClientInfo where
72 encodeJson v = case v of
73 ClientInfo r ->
74 "tag" := "ClientInfo" ~>
75 "clientName" := r.clientName ~>
76 "clientBackend" := r.clientBackend ~>
77 jsonEmptyObject
78
79instance decodeJsonClientInfo :: DecodeJson ClientInfo where
80 decodeJson json = do
81 obj <- decodeJson json
82 tag <- obj .? "tag"
83 case tag of
84 "ClientInfo" -> do
85 clientName <- obj .? "clientName"
86 clientBackend <- obj .? "clientBackend"
87 pure $ ClientInfo
88 { clientName:clientName
89 , clientBackend:clientBackend
90 }
91
92instance encodeJsonFrame :: EncodeJson Frame where
93 encodeJson v = case v of
94 Frame r ->
95 "tag" := "Frame" ~>
96 "renderCount" := r.renderCount ~>
97 "frameUniforms" := r.frameUniforms ~>
98 "frameTextures" := r.frameTextures ~>
99 jsonEmptyObject
100
101instance decodeJsonFrame :: DecodeJson Frame where
102 decodeJson json = do
103 obj <- decodeJson json
104 tag <- obj .? "tag"
105 case tag of
106 "Frame" -> do
107 renderCount <- obj .? "renderCount"
108 frameUniforms <- obj .? "frameUniforms"
109 frameTextures <- obj .? "frameTextures"
110 pure $ Frame
111 { renderCount:renderCount
112 , frameUniforms:frameUniforms
113 , frameTextures:frameTextures
114 }
115
116instance encodeJsonScene :: EncodeJson Scene where
117 encodeJson v = case v of
118 Scene r ->
119 "tag" := "Scene" ~>
120 "objectArrays" := r.objectArrays ~>
121 "renderTargetWidth" := r.renderTargetWidth ~>
122 "renderTargetHeight" := r.renderTargetHeight ~>
123 "frames" := r.frames ~>
124 jsonEmptyObject
125
126instance decodeJsonScene :: DecodeJson Scene where
127 decodeJson json = do
128 obj <- decodeJson json
129 tag <- obj .? "tag"
130 case tag of
131 "Scene" -> do
132 objectArrays <- obj .? "objectArrays"
133 renderTargetWidth <- obj .? "renderTargetWidth"
134 renderTargetHeight <- obj .? "renderTargetHeight"
135 frames <- obj .? "frames"
136 pure $ Scene
137 { objectArrays:objectArrays
138 , renderTargetWidth:renderTargetWidth
139 , renderTargetHeight:renderTargetHeight
140 , frames:frames
141 }
142
143instance encodeJsonRenderJob :: EncodeJson RenderJob where
144 encodeJson v = case v of
145 RenderJob r ->
146 "tag" := "RenderJob" ~>
147 "meshes" := r.meshes ~>
148 "textures" := r.textures ~>
149 "schema" := r.schema ~>
150 "scenes" := r.scenes ~>
151 "pipelines" := r.pipelines ~>
152 jsonEmptyObject
153
154instance decodeJsonRenderJob :: DecodeJson RenderJob where
155 decodeJson json = do
156 obj <- decodeJson json
157 tag <- obj .? "tag"
158 case tag of
159 "RenderJob" -> do
160 meshes <- obj .? "meshes"
161 textures <- obj .? "textures"
162 schema <- obj .? "schema"
163 scenes <- obj .? "scenes"
164 pipelines <- obj .? "pipelines"
165 pure $ RenderJob
166 { meshes:meshes
167 , textures:textures
168 , schema:schema
169 , scenes:scenes
170 , pipelines:pipelines
171 }
172
173instance encodeJsonFrameResult :: EncodeJson FrameResult where
174 encodeJson v = case v of
175 FrameResult r ->
176 "tag" := "FrameResult" ~>
177 "frRenderTimes" := r.frRenderTimes ~>
178 "frImageWidth" := r.frImageWidth ~>
179 "frImageHeight" := r.frImageHeight ~>
180 jsonEmptyObject
181
182instance decodeJsonFrameResult :: DecodeJson FrameResult where
183 decodeJson json = do
184 obj <- decodeJson json
185 tag <- obj .? "tag"
186 case tag of
187 "FrameResult" -> do
188 frRenderTimes <- obj .? "frRenderTimes"
189 frImageWidth <- obj .? "frImageWidth"
190 frImageHeight <- obj .? "frImageHeight"
191 pure $ FrameResult
192 { frRenderTimes:frRenderTimes
193 , frImageWidth:frImageWidth
194 , frImageHeight:frImageHeight
195 }
196
197instance encodeJsonRenderJobResult :: EncodeJson RenderJobResult where
198 encodeJson v = case v of
199 RenderJobResult arg0 -> "tag" := "RenderJobResult" ~> "arg0" := arg0 ~> jsonEmptyObject
200 RenderJobError arg0 -> "tag" := "RenderJobError" ~> "arg0" := arg0 ~> jsonEmptyObject
201
202instance decodeJsonRenderJobResult :: DecodeJson RenderJobResult where
203 decodeJson json = do
204 obj <- decodeJson json
205 tag <- obj .? "tag"
206 case tag of
207 "RenderJobResult" -> RenderJobResult <$> obj .? "arg0"
208 "RenderJobError" -> RenderJobError <$> obj .? "arg0"
209