diff options
-rw-r--r-- | Spear/Render/AnimatedModel.hs | 30 | ||||
-rw-r--r-- | Spear/Render/StaticModel.hs | 28 |
2 files changed, 33 insertions, 25 deletions
diff --git a/Spear/Render/AnimatedModel.hs b/Spear/Render/AnimatedModel.hs index 2673db8..1703141 100644 --- a/Spear/Render/AnimatedModel.hs +++ b/Spear/Render/AnimatedModel.hs | |||
@@ -1,20 +1,24 @@ | |||
1 | module Spear.Render.AnimatedModel | 1 | module Spear.Render.AnimatedModel |
2 | ( | 2 | ( |
3 | -- * Data types | ||
3 | AnimatedModelResource | 4 | AnimatedModelResource |
4 | , AnimatedModelRenderer | 5 | , AnimatedModelRenderer |
5 | , AnimationSpeed | 6 | , AnimationSpeed |
7 | -- * Construction and destruction | ||
6 | , animatedModelResource | 8 | , animatedModelResource |
7 | , animatedModelRenderer | 9 | , animatedModelRenderer |
8 | , Spear.Render.AnimatedModel.release | 10 | , Spear.Render.AnimatedModel.release |
11 | -- * Manipulation | ||
12 | , update | ||
9 | , setAnimation | 13 | , setAnimation |
10 | , currentAnimation | 14 | , currentAnimation |
11 | , animationSpeed | 15 | , animationSpeed |
12 | , setAnimationSpeed | 16 | , setAnimationSpeed |
13 | , bind | ||
14 | , render | ||
15 | , update | ||
16 | , box | 17 | , box |
17 | , modelRes | 18 | , modelRes |
19 | -- * Rendering | ||
20 | , bind | ||
21 | , render | ||
18 | ) | 22 | ) |
19 | where | 23 | where |
20 | 24 | ||
@@ -179,6 +183,16 @@ setAnimationSpeed :: AnimationSpeed -> AnimatedModelRenderer -> AnimatedModelRen | |||
179 | setAnimationSpeed s r = r { animationSpeed = s } | 183 | setAnimationSpeed s r = r { animationSpeed = s } |
180 | 184 | ||
181 | 185 | ||
186 | -- | Get the model's ith bounding box. | ||
187 | box :: Int -> AnimatedModelResource -> Box | ||
188 | box i model = boxes model V.! i | ||
189 | |||
190 | |||
191 | -- | Get the renderer's model resource. | ||
192 | modelRes :: AnimatedModelRenderer -> AnimatedModelResource | ||
193 | modelRes = modelResource | ||
194 | |||
195 | |||
182 | -- | Bind the given 'AnimatedModelRenderer' to prepare it for rendering. | 196 | -- | Bind the given 'AnimatedModelRenderer' to prepare it for rendering. |
183 | bind :: AnimatedProgramUniforms -> AnimatedModelRenderer -> IO () | 197 | bind :: AnimatedProgramUniforms -> AnimatedModelRenderer -> IO () |
184 | bind (AnimatedProgramUniforms kaLoc kdLoc ksLoc shiLoc texLoc _ _ _ _) modelRend = | 198 | bind (AnimatedProgramUniforms kaLoc kdLoc ksLoc shiLoc texLoc _ _ _ _) modelRend = |
@@ -202,13 +216,3 @@ render uniforms (AnimatedModelRenderer model _ _ _ curFrame fp _) = | |||
202 | glUniform1f (shiLoc uniforms) $ unsafeCoerce shi | 216 | glUniform1f (shiLoc uniforms) $ unsafeCoerce shi |
203 | glUniform1f (fpLoc uniforms) (unsafeCoerce fp) | 217 | glUniform1f (fpLoc uniforms) (unsafeCoerce fp) |
204 | drawArrays gl_TRIANGLES (n*curFrame) n | 218 | drawArrays gl_TRIANGLES (n*curFrame) n |
205 | |||
206 | |||
207 | -- | Get the model's ith bounding box. | ||
208 | box :: Int -> AnimatedModelResource -> Box | ||
209 | box i model = boxes model V.! i | ||
210 | |||
211 | |||
212 | -- | Get the renderer's model resource. | ||
213 | modelRes :: AnimatedModelRenderer -> AnimatedModelResource | ||
214 | modelRes = modelResource | ||
diff --git a/Spear/Render/StaticModel.hs b/Spear/Render/StaticModel.hs index 473df1b..31acaa2 100644 --- a/Spear/Render/StaticModel.hs +++ b/Spear/Render/StaticModel.hs | |||
@@ -1,14 +1,18 @@ | |||
1 | module Spear.Render.StaticModel | 1 | module Spear.Render.StaticModel |
2 | ( | 2 | ( |
3 | -- * Data types | ||
3 | StaticModelResource | 4 | StaticModelResource |
4 | , StaticModelRenderer | 5 | , StaticModelRenderer |
6 | -- * Construction and destruction | ||
5 | , staticModelResource | 7 | , staticModelResource |
6 | , staticModelRenderer | 8 | , staticModelRenderer |
7 | , Spear.Render.StaticModel.release | 9 | , Spear.Render.StaticModel.release |
8 | , bind | 10 | -- * Manipulation |
9 | , render | ||
10 | , box | 11 | , box |
11 | , modelRes | 12 | , modelRes |
13 | -- * Rendering | ||
14 | , bind | ||
15 | , render | ||
12 | ) | 16 | ) |
13 | where | 17 | where |
14 | 18 | ||
@@ -107,6 +111,16 @@ staticModelRenderer :: StaticModelResource -> StaticModelRenderer | |||
107 | staticModelRenderer = StaticModelRenderer | 111 | staticModelRenderer = StaticModelRenderer |
108 | 112 | ||
109 | 113 | ||
114 | -- | Get the model's ith bounding box. | ||
115 | box :: Int -> StaticModelResource -> Box | ||
116 | box i model = boxes model V.! i | ||
117 | |||
118 | |||
119 | -- | Get the renderer's model resource. | ||
120 | modelRes :: StaticModelRenderer -> StaticModelResource | ||
121 | modelRes = model | ||
122 | |||
123 | |||
110 | -- | Bind the given 'StaticModelRenderer' to prepare it for rendering. | 124 | -- | Bind the given 'StaticModelRenderer' to prepare it for rendering. |
111 | bind :: StaticProgramUniforms -> StaticModelRenderer -> IO () | 125 | bind :: StaticProgramUniforms -> StaticModelRenderer -> IO () |
112 | bind (StaticProgramUniforms kaLoc kdLoc ksLoc shiLoc texLoc _ _ _) (StaticModelRenderer model) = | 126 | bind (StaticProgramUniforms kaLoc kdLoc ksLoc shiLoc texLoc _ _ _) (StaticModelRenderer model) = |
@@ -128,13 +142,3 @@ render uniforms (StaticModelRenderer model) = | |||
128 | uniformVec4 (ksLoc uniforms) ks | 142 | uniformVec4 (ksLoc uniforms) ks |
129 | glUniform1f (shiLoc uniforms) $ unsafeCoerce shi | 143 | glUniform1f (shiLoc uniforms) $ unsafeCoerce shi |
130 | drawArrays gl_TRIANGLES 0 $ nVertices model | 144 | drawArrays gl_TRIANGLES 0 $ nVertices model |
131 | |||
132 | |||
133 | -- | Get the model's ith bounding box. | ||
134 | box :: Int -> StaticModelResource -> Box | ||
135 | box i model = boxes model V.! i | ||
136 | |||
137 | |||
138 | -- | Get the renderer's model resource. | ||
139 | modelRes :: StaticModelRenderer -> StaticModelResource | ||
140 | modelRes = model | ||