Re: Specialized versions of renderPrimitives?
Bas van Dijk <[email protected]>
| Newsgroups | gmane.comp.lang.haskell.hopengl |
|---|---|
| Message-ID | <[email protected]> |
On Thursday 26 October 2006 18:39, Henning Thielemann wrote:
> It would be more concise and safer to write
> lineLoop [v1, v2, v3, v4]
> lines [(v1, v2), (v3, v4)]
If I understand the following correctly:
http://www.haskell.org/ghc/dist/current/docs/libraries/OpenGL/Graphics-Rendering-OpenGL-GL-BeginEnd.html#v%3ArenderPrimitive
With renderPrimitive you can also add additional properties per vertex. Like:
renderPrimitive LineLoop $ do
color c1
texCoord t1
vertex v1
color c2
texCoord t2
vertex v2
color c3
texCoord t3
vertex v3
color c4
texCoord t4
vertex v4
It would be possible to do it in a type safe manner by having a data type
Vertex that has a list of VertexProperties:
type Vertex = [VertexProperty]
data VertexProperty = Coordinate ...
| Color ...
| TextureCoordinate ...
...
then you can have something like:
v1, v2, v3, v4 :: Vertex
lineLoop [v1, v2, v3, v4]
Regards,
Bas van Dijk