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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.