Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 2cca44f12eb8ef579d4d0baff7068f29 > files > 386

ghc-OpenGL-devel-2.2.3.0-7.fc15.i686.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->
<title>Graphics/Rendering/OpenGL/GL/PrimitiveMode.hs</title>
<link type='text/css' rel='stylesheet' href='hscolour.css' />
</head>
<body>
<pre><a name="line-1"></a><span class='hs-comment'>-- #hide</span>
<a name="line-2"></a><span class='hs-comment'>--------------------------------------------------------------------------------</span>
<a name="line-3"></a><span class='hs-comment'>-- |</span>
<a name="line-4"></a><span class='hs-comment'>-- Module      :  Graphics.Rendering.OpenGL.GL.PrimitiveMode</span>
<a name="line-5"></a><span class='hs-comment'>-- Copyright   :  (c) Sven Panne 2002-2009</span>
<a name="line-6"></a><span class='hs-comment'>-- License     :  BSD-style (see the file libraries/OpenGL/LICENSE)</span>
<a name="line-7"></a><span class='hs-comment'>-- </span>
<a name="line-8"></a><span class='hs-comment'>-- Maintainer  :  sven.panne@aedion.de</span>
<a name="line-9"></a><span class='hs-comment'>-- Stability   :  stable</span>
<a name="line-10"></a><span class='hs-comment'>-- Portability :  portable</span>
<a name="line-11"></a><span class='hs-comment'>--</span>
<a name="line-12"></a><span class='hs-comment'>-- This is a purely internal module for (un-)marshaling PrimitiveMode.</span>
<a name="line-13"></a><span class='hs-comment'>--</span>
<a name="line-14"></a><span class='hs-comment'>--------------------------------------------------------------------------------</span>
<a name="line-15"></a>
<a name="line-16"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Graphics</span><span class='hs-varop'>.</span><span class='hs-conid'>Rendering</span><span class='hs-varop'>.</span><span class='hs-conid'>OpenGL</span><span class='hs-varop'>.</span><span class='hs-conid'>GL</span><span class='hs-varop'>.</span><span class='hs-conid'>PrimitiveMode</span> <span class='hs-layout'>(</span>
<a name="line-17"></a>   <span class='hs-conid'>PrimitiveMode</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>marshalPrimitiveMode</span><span class='hs-layout'>,</span> <span class='hs-varid'>unmarshalPrimitiveMode</span>
<a name="line-18"></a><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
<a name="line-19"></a>
<a name="line-20"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Graphics</span><span class='hs-varop'>.</span><span class='hs-conid'>Rendering</span><span class='hs-varop'>.</span><span class='hs-conid'>OpenGL</span><span class='hs-varop'>.</span><span class='hs-conid'>GL</span><span class='hs-varop'>.</span><span class='hs-conid'>BasicTypes</span> <span class='hs-layout'>(</span> <span class='hs-conid'>GLenum</span> <span class='hs-layout'>)</span>
<a name="line-21"></a>
<a name="line-22"></a><span class='hs-comment'>--------------------------------------------------------------------------------</span>
<a name="line-23"></a>
<a name="line-24"></a><span class='hs-comment'>-- | Specification of the way the vertices given during 'renderPrimitive' are</span>
<a name="line-25"></a><span class='hs-comment'>-- interpreted. In the description of the constructors, /n/ is an integer count</span>
<a name="line-26"></a><span class='hs-comment'>-- starting at one, and /N/ is the total number of vertices specified.</span>
<a name="line-27"></a>
<a name="line-28"></a><a name="PrimitiveMode"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>PrimitiveMode</span> <span class='hs-keyglyph'>=</span>
<a name="line-29"></a>     <span class='hs-conid'>Points</span>
<a name="line-30"></a>     <span class='hs-comment'>-- ^ Treats each vertex as a single point. Vertex /n/ defines point /n/.</span>
<a name="line-31"></a>     <span class='hs-comment'>-- /N/ points are drawn.</span>
<a name="line-32"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Lines</span>
<a name="line-33"></a>     <span class='hs-comment'>-- ^ Treats each pair of vertices as an independent line segment. Vertices</span>
<a name="line-34"></a>     <span class='hs-comment'>-- 2/n/-1 and 2/n/ define line /n/. /N/\/2 lines are drawn.</span>
<a name="line-35"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-conid'>LineLoop</span>
<a name="line-36"></a>     <span class='hs-comment'>-- ^ Draws a connected group of line segments from the first vertex to the</span>
<a name="line-37"></a>     <span class='hs-comment'>-- last, then back to the first. Vertices /n/ and /n/+1 define line /n/.</span>
<a name="line-38"></a>     <span class='hs-comment'>-- The last line, however, is defined by vertices /N/ and 1. /N/ lines</span>
<a name="line-39"></a>     <span class='hs-comment'>-- are drawn.</span>
<a name="line-40"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-conid'>LineStrip</span>
<a name="line-41"></a>     <span class='hs-comment'>-- ^ Draws a connected group of line  segments from the first vertex to the</span>
<a name="line-42"></a>     <span class='hs-comment'>-- last. Vertices /n/ and /n/+1 define line /n/. /N/-1 lines are drawn.</span>
<a name="line-43"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Triangles</span>
<a name="line-44"></a>     <span class='hs-comment'>-- ^ Treats each triplet of vertices as an independent triangle. Vertices</span>
<a name="line-45"></a>     <span class='hs-comment'>-- /3n-2/, /3n-1/, and /3n/ define triangle /n/. /N\/3/ triangles are drawn.</span>
<a name="line-46"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-conid'>TriangleStrip</span>
<a name="line-47"></a>     <span class='hs-comment'>-- ^ Draws a connected group of triangles. One triangle is defined for each</span>
<a name="line-48"></a>     <span class='hs-comment'>-- vertex presented after the first two vertices. For odd /n/, vertices</span>
<a name="line-49"></a>     <span class='hs-comment'>-- /n/, /n/+1, and /n/+2 define triangle /n/. For even /n/, vertices /n/+1,</span>
<a name="line-50"></a>     <span class='hs-comment'>-- /n/, and /n/+2 define triangle /n/. /N/-2 triangles are drawn.</span>
<a name="line-51"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-conid'>TriangleFan</span>
<a name="line-52"></a>     <span class='hs-comment'>-- ^ Draws a connected group of triangles. One triangle is defined for each</span>
<a name="line-53"></a>     <span class='hs-comment'>-- vertex presented after the first two vertices. Vertices 1, /n/+1, and</span>
<a name="line-54"></a>     <span class='hs-comment'>-- /n/+2 define triangle /n/. /N/-2 triangles are drawn.</span>
<a name="line-55"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Quads</span>
<a name="line-56"></a>     <span class='hs-comment'>-- ^ Treats each group of four vertices as an independent quadrilateral.</span>
<a name="line-57"></a>     <span class='hs-comment'>-- Vertices 4/n/-3, 4/n/-2, 4/n/-1, and 4/n/ define quadrilateral /n/.</span>
<a name="line-58"></a>     <span class='hs-comment'>-- /N/\/4 quadrilaterals are drawn.</span>
<a name="line-59"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-conid'>QuadStrip</span>
<a name="line-60"></a>     <span class='hs-comment'>-- ^ Draws a connected group of quadrilaterals. One quadrilateral is</span>
<a name="line-61"></a>     <span class='hs-comment'>--defined for each pair of vertices presented after the first pair.</span>
<a name="line-62"></a>     <span class='hs-comment'>-- Vertices 2/n/-1, 2/n/, 2/n/+2, and 2/n/+1 define quadrilateral /n/.</span>
<a name="line-63"></a>     <span class='hs-comment'>-- /N/\/2-1 quadrilaterals are drawn. Note that the order in which vertices</span>
<a name="line-64"></a>     <span class='hs-comment'>-- are used to construct a quadrilateral from strip data is different from</span>
<a name="line-65"></a>     <span class='hs-comment'>-- that used with independent data.</span>
<a name="line-66"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Polygon</span>
<a name="line-67"></a>     <span class='hs-comment'>-- ^ Draws a single, convex polygon. Vertices 1 through /N/ define this</span>
<a name="line-68"></a>     <span class='hs-comment'>-- polygon.</span>
<a name="line-69"></a>   <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>,</span> <span class='hs-conid'>Show</span> <span class='hs-layout'>)</span>
<a name="line-70"></a>
<a name="line-71"></a><a name="marshalPrimitiveMode"></a><span class='hs-definition'>marshalPrimitiveMode</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>PrimitiveMode</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>GLenum</span>
<a name="line-72"></a><span class='hs-definition'>marshalPrimitiveMode</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>case</span> <span class='hs-varid'>x</span> <span class='hs-keyword'>of</span>
<a name="line-73"></a>   <span class='hs-conid'>Points</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-num'>0x0</span>
<a name="line-74"></a>   <span class='hs-conid'>Lines</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-num'>0x1</span>
<a name="line-75"></a>   <span class='hs-conid'>LineLoop</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-num'>0x2</span>
<a name="line-76"></a>   <span class='hs-conid'>LineStrip</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-num'>0x3</span>
<a name="line-77"></a>   <span class='hs-conid'>Triangles</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-num'>0x4</span>
<a name="line-78"></a>   <span class='hs-conid'>TriangleStrip</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-num'>0x5</span>
<a name="line-79"></a>   <span class='hs-conid'>TriangleFan</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-num'>0x6</span>
<a name="line-80"></a>   <span class='hs-conid'>Quads</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-num'>0x7</span>
<a name="line-81"></a>   <span class='hs-conid'>QuadStrip</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-num'>0x8</span>
<a name="line-82"></a>   <span class='hs-conid'>Polygon</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-num'>0x9</span>
<a name="line-83"></a>
<a name="line-84"></a><a name="unmarshalPrimitiveMode"></a><span class='hs-definition'>unmarshalPrimitiveMode</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>GLenum</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>PrimitiveMode</span>
<a name="line-85"></a><span class='hs-definition'>unmarshalPrimitiveMode</span> <span class='hs-varid'>x</span>
<a name="line-86"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-varid'>x</span> <span class='hs-varop'>==</span> <span class='hs-num'>0x0</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Points</span>
<a name="line-87"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-varid'>x</span> <span class='hs-varop'>==</span> <span class='hs-num'>0x1</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Lines</span>
<a name="line-88"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-varid'>x</span> <span class='hs-varop'>==</span> <span class='hs-num'>0x2</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>LineLoop</span>
<a name="line-89"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-varid'>x</span> <span class='hs-varop'>==</span> <span class='hs-num'>0x3</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>LineStrip</span>
<a name="line-90"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-varid'>x</span> <span class='hs-varop'>==</span> <span class='hs-num'>0x4</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Triangles</span>
<a name="line-91"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-varid'>x</span> <span class='hs-varop'>==</span> <span class='hs-num'>0x5</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>TriangleStrip</span>
<a name="line-92"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-varid'>x</span> <span class='hs-varop'>==</span> <span class='hs-num'>0x6</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>TriangleFan</span>
<a name="line-93"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-varid'>x</span> <span class='hs-varop'>==</span> <span class='hs-num'>0x7</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Quads</span>
<a name="line-94"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-varid'>x</span> <span class='hs-varop'>==</span> <span class='hs-num'>0x8</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>QuadStrip</span>
<a name="line-95"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-varid'>x</span> <span class='hs-varop'>==</span> <span class='hs-num'>0x9</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Polygon</span>
<a name="line-96"></a>   <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>error</span> <span class='hs-layout'>(</span><span class='hs-str'>"unmarshalPrimitiveMode: illegal value "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>show</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
</pre></body>
</html>