summaryrefslogtreecommitdiff
path: root/ddl/out/haskell/TestData.hs
diff options
context:
space:
mode:
Diffstat (limited to 'ddl/out/haskell/TestData.hs')
-rw-r--r--ddl/out/haskell/TestData.hs242
1 files changed, 242 insertions, 0 deletions
diff --git a/ddl/out/haskell/TestData.hs b/ddl/out/haskell/TestData.hs
new file mode 100644
index 0000000..3904a3e
--- /dev/null
+++ b/ddl/out/haskell/TestData.hs
@@ -0,0 +1,242 @@
1-- generated file, do not modify!
2-- 2016-11-11T11:17:03.685172000000Z
3
4{-# LANGUAGE OverloadedStrings, RecordWildCards #-}
5module TestData where
6
7import Data.Int
8import Data.Word
9import Data.Map
10import Data.Vector (Vector(..))
11import LambdaCube.Linear
12
13import Data.Text
14import Data.Aeson hiding (Value,Bool)
15import Data.Aeson.Types hiding (Value,Bool)
16import Control.Monad
17
18import LambdaCube.IR
19import LambdaCube.Mesh
20import LambdaCube.PipelineSchema
21
22data ClientInfo
23 = ClientInfo
24 { clientName :: String
25 , clientBackend :: Backend
26 }
27
28 deriving (Show, Eq, Ord)
29
30data Frame
31 = Frame
32 { renderCount :: Int
33 , frameUniforms :: Map String Value
34 , frameTextures :: Map String Int
35 }
36
37 deriving (Show, Eq, Ord)
38
39data Scene
40 = Scene
41 { objectArrays :: Map String (Vector Int)
42 , renderTargetWidth :: Int
43 , renderTargetHeight :: Int
44 , frames :: Vector Frame
45 }
46
47 deriving (Show, Eq, Ord)
48
49data PipelineInfo
50 = PipelineInfo
51 { pipelineName :: String
52 , pipeline :: Pipeline
53 }
54
55 deriving (Show, Eq, Ord)
56
57data RenderJob
58 = RenderJob
59 { meshes :: Vector Mesh
60 , textures :: Vector String
61 , schema :: PipelineSchema
62 , scenes :: Vector Scene
63 , pipelines :: Vector PipelineInfo
64 }
65
66 deriving (Show, Eq, Ord)
67
68data FrameResult
69 = FrameResult
70 { frRenderTimes :: Vector Float
71 , frImageWidth :: Int
72 , frImageHeight :: Int
73 }
74
75 deriving (Show, Eq, Ord)
76
77data RenderJobResult
78 = RenderJobResult FrameResult
79 | RenderJobError String
80 deriving (Show, Eq, Ord)
81
82
83instance ToJSON ClientInfo where
84 toJSON v = case v of
85 ClientInfo{..} -> object
86 [ "tag" .= ("ClientInfo" :: Text)
87 , "clientName" .= clientName
88 , "clientBackend" .= clientBackend
89 ]
90
91instance FromJSON ClientInfo where
92 parseJSON (Object obj) = do
93 tag <- obj .: "tag"
94 case tag :: Text of
95 "ClientInfo" -> do
96 clientName <- obj .: "clientName"
97 clientBackend <- obj .: "clientBackend"
98 pure $ ClientInfo
99 { clientName = clientName
100 , clientBackend = clientBackend
101 }
102 parseJSON _ = mzero
103
104instance ToJSON Frame where
105 toJSON v = case v of
106 Frame{..} -> object
107 [ "tag" .= ("Frame" :: Text)
108 , "renderCount" .= renderCount
109 , "frameUniforms" .= frameUniforms
110 , "frameTextures" .= frameTextures
111 ]
112
113instance FromJSON Frame where
114 parseJSON (Object obj) = do
115 tag <- obj .: "tag"
116 case tag :: Text of
117 "Frame" -> do
118 renderCount <- obj .: "renderCount"
119 frameUniforms <- obj .: "frameUniforms"
120 frameTextures <- obj .: "frameTextures"
121 pure $ Frame
122 { renderCount = renderCount
123 , frameUniforms = frameUniforms
124 , frameTextures = frameTextures
125 }
126 parseJSON _ = mzero
127
128instance ToJSON Scene where
129 toJSON v = case v of
130 Scene{..} -> object
131 [ "tag" .= ("Scene" :: Text)
132 , "objectArrays" .= objectArrays
133 , "renderTargetWidth" .= renderTargetWidth
134 , "renderTargetHeight" .= renderTargetHeight
135 , "frames" .= frames
136 ]
137
138instance FromJSON Scene where
139 parseJSON (Object obj) = do
140 tag <- obj .: "tag"
141 case tag :: Text of
142 "Scene" -> do
143 objectArrays <- obj .: "objectArrays"
144 renderTargetWidth <- obj .: "renderTargetWidth"
145 renderTargetHeight <- obj .: "renderTargetHeight"
146 frames <- obj .: "frames"
147 pure $ Scene
148 { objectArrays = objectArrays
149 , renderTargetWidth = renderTargetWidth
150 , renderTargetHeight = renderTargetHeight
151 , frames = frames
152 }
153 parseJSON _ = mzero
154
155instance ToJSON PipelineInfo where
156 toJSON v = case v of
157 PipelineInfo{..} -> object
158 [ "tag" .= ("PipelineInfo" :: Text)
159 , "pipelineName" .= pipelineName
160 , "pipeline" .= pipeline
161 ]
162
163instance FromJSON PipelineInfo where
164 parseJSON (Object obj) = do
165 tag <- obj .: "tag"
166 case tag :: Text of
167 "PipelineInfo" -> do
168 pipelineName <- obj .: "pipelineName"
169 pipeline <- obj .: "pipeline"
170 pure $ PipelineInfo
171 { pipelineName = pipelineName
172 , pipeline = pipeline
173 }
174 parseJSON _ = mzero
175
176instance ToJSON RenderJob where
177 toJSON v = case v of
178 RenderJob{..} -> object
179 [ "tag" .= ("RenderJob" :: Text)
180 , "meshes" .= meshes
181 , "textures" .= textures
182 , "schema" .= schema
183 , "scenes" .= scenes
184 , "pipelines" .= pipelines
185 ]
186
187instance FromJSON RenderJob where
188 parseJSON (Object obj) = do
189 tag <- obj .: "tag"
190 case tag :: Text of
191 "RenderJob" -> do
192 meshes <- obj .: "meshes"
193 textures <- obj .: "textures"
194 schema <- obj .: "schema"
195 scenes <- obj .: "scenes"
196 pipelines <- obj .: "pipelines"
197 pure $ RenderJob
198 { meshes = meshes
199 , textures = textures
200 , schema = schema
201 , scenes = scenes
202 , pipelines = pipelines
203 }
204 parseJSON _ = mzero
205
206instance ToJSON FrameResult where
207 toJSON v = case v of
208 FrameResult{..} -> object
209 [ "tag" .= ("FrameResult" :: Text)
210 , "frRenderTimes" .= frRenderTimes
211 , "frImageWidth" .= frImageWidth
212 , "frImageHeight" .= frImageHeight
213 ]
214
215instance FromJSON FrameResult where
216 parseJSON (Object obj) = do
217 tag <- obj .: "tag"
218 case tag :: Text of
219 "FrameResult" -> do
220 frRenderTimes <- obj .: "frRenderTimes"
221 frImageWidth <- obj .: "frImageWidth"
222 frImageHeight <- obj .: "frImageHeight"
223 pure $ FrameResult
224 { frRenderTimes = frRenderTimes
225 , frImageWidth = frImageWidth
226 , frImageHeight = frImageHeight
227 }
228 parseJSON _ = mzero
229
230instance ToJSON RenderJobResult where
231 toJSON v = case v of
232 RenderJobResult arg0 -> object [ "tag" .= ("RenderJobResult" :: Text), "arg0" .= arg0]
233 RenderJobError arg0 -> object [ "tag" .= ("RenderJobError" :: Text), "arg0" .= arg0]
234
235instance FromJSON RenderJobResult where
236 parseJSON (Object obj) = do
237 tag <- obj .: "tag"
238 case tag :: Text of
239 "RenderJobResult" -> RenderJobResult <$> obj .: "arg0"
240 "RenderJobError" -> RenderJobError <$> obj .: "arg0"
241 parseJSON _ = mzero
242