/usr/share/doc/libghc-opengl-doc/html/src/Graphics-Rendering-OpenGL-GL-Points.html is in libghc-opengl-doc 2.8.0.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 | <?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://code.haskell.org/~malcolm/hscolour/ -->
<title>Graphics/Rendering/OpenGL/GL/Points.hs</title>
<link type='text/css' rel='stylesheet' href='hscolour.css' />
</head>
<body>
<pre><a name="line-1"></a><span class='hs-comment'>--------------------------------------------------------------------------------</span>
<a name="line-2"></a><span class='hs-comment'>-- |</span>
<a name="line-3"></a><span class='hs-comment'>-- Module : Graphics.Rendering.OpenGL.GL.Points</span>
<a name="line-4"></a><span class='hs-comment'>-- Copyright : (c) Sven Panne 2002-2009</span>
<a name="line-5"></a><span class='hs-comment'>-- License : BSD-style (see the file libraries/OpenGL/LICENSE)</span>
<a name="line-6"></a><span class='hs-comment'>-- </span>
<a name="line-7"></a><span class='hs-comment'>-- Maintainer : sven.panne@aedion.de</span>
<a name="line-8"></a><span class='hs-comment'>-- Stability : stable</span>
<a name="line-9"></a><span class='hs-comment'>-- Portability : portable</span>
<a name="line-10"></a><span class='hs-comment'>--</span>
<a name="line-11"></a><span class='hs-comment'>-- This module corresponds to section 3.3 (Points) of the OpenGL 2.1 specs.</span>
<a name="line-12"></a><span class='hs-comment'>--</span>
<a name="line-13"></a><span class='hs-comment'>--------------------------------------------------------------------------------</span>
<a name="line-14"></a>
<a name="line-15"></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'>Points</span> <span class='hs-layout'>(</span>
<a name="line-16"></a> <span class='hs-comment'>-- * Point Rasterization</span>
<a name="line-17"></a> <span class='hs-varid'>pointSize</span><span class='hs-layout'>,</span> <span class='hs-varid'>vertexProgramPointSize</span><span class='hs-layout'>,</span>
<a name="line-18"></a>
<a name="line-19"></a> <span class='hs-comment'>-- * Controlling the Derived Size</span>
<a name="line-20"></a> <span class='hs-varid'>pointSizeRange</span><span class='hs-layout'>,</span> <span class='hs-varid'>pointDistanceAttenuation</span><span class='hs-layout'>,</span>
<a name="line-21"></a>
<a name="line-22"></a> <span class='hs-comment'>-- * Fading Points</span>
<a name="line-23"></a> <span class='hs-varid'>pointFadeThresholdSize</span><span class='hs-layout'>,</span>
<a name="line-24"></a>
<a name="line-25"></a> <span class='hs-comment'>-- * Point Antialiasing</span>
<a name="line-26"></a> <span class='hs-varid'>pointSmooth</span><span class='hs-layout'>,</span>
<a name="line-27"></a>
<a name="line-28"></a> <span class='hs-comment'>-- * Point Sprites</span>
<a name="line-29"></a> <span class='hs-varid'>pointSprite</span><span class='hs-layout'>,</span>
<a name="line-30"></a>
<a name="line-31"></a> <span class='hs-comment'>-- * Implementation-Dependent Limits</span>
<a name="line-32"></a> <span class='hs-varid'>aliasedPointSizeRange</span><span class='hs-layout'>,</span> <span class='hs-varid'>smoothPointSizeRange</span><span class='hs-layout'>,</span> <span class='hs-varid'>smoothPointSizeGranularity</span>
<a name="line-33"></a><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
<a name="line-34"></a>
<a name="line-35"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span>
<a name="line-36"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Foreign</span><span class='hs-varop'>.</span><span class='hs-conid'>Marshal</span><span class='hs-varop'>.</span><span class='hs-conid'>Array</span>
<a name="line-37"></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'>StateVar</span>
<a name="line-38"></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'>Capability</span>
<a name="line-39"></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'>PointParameter</span>
<a name="line-40"></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'>QueryUtils</span>
<a name="line-41"></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'>Raw</span><span class='hs-varop'>.</span><span class='hs-conid'>Core31</span>
<a name="line-42"></a>
<a name="line-43"></a><span class='hs-comment'>--------------------------------------------------------------------------------</span>
<a name="line-44"></a>
<a name="line-45"></a><span class='hs-comment'>-- | 'pointSize' contains the rasterized diameter of both aliased and</span>
<a name="line-46"></a><span class='hs-comment'>-- antialiased points. The initial value is 1. Using a point size other than 1</span>
<a name="line-47"></a><span class='hs-comment'>-- has different effects, depending on whether point antialiasing is enabled</span>
<a name="line-48"></a><span class='hs-comment'>-- (see 'pointSmooth') or point sprites are enabled (see 'pointSprite'). Both</span>
<a name="line-49"></a><span class='hs-comment'>-- are initially disabled.</span>
<a name="line-50"></a><span class='hs-comment'>--</span>
<a name="line-51"></a><span class='hs-comment'>-- The specified point size is multiplied with a distance attenuation factor</span>
<a name="line-52"></a><span class='hs-comment'>-- and clamped to the specified 'pointSizeRange', and further clamped to the</span>
<a name="line-53"></a><span class='hs-comment'>-- implementation-dependent point size range to produce the derived point size</span>
<a name="line-54"></a><span class='hs-comment'>-- using</span>
<a name="line-55"></a><span class='hs-comment'>--</span>
<a name="line-56"></a><span class='hs-comment'>-- @ /derivedSize/ = /clamp/ (/size/ * /sqrt/ (1 \/ (/a/ + /b/ * /d/ + /c/ * /d/^2)))@</span>
<a name="line-57"></a><span class='hs-comment'>--</span>
<a name="line-58"></a><span class='hs-comment'>-- where /d/ is the eye-coordinate distance from the eye to the vertex, and /a/,</span>
<a name="line-59"></a><span class='hs-comment'>-- /b/, and /c/ are the distance attenuation coefficients (see</span>
<a name="line-60"></a><span class='hs-comment'>-- 'pointDistanceAttenuation').</span>
<a name="line-61"></a><span class='hs-comment'>--</span>
<a name="line-62"></a><span class='hs-comment'>-- If multisampling is disabled, the computed point size is used as the point\'s</span>
<a name="line-63"></a><span class='hs-comment'>-- width.</span>
<a name="line-64"></a><span class='hs-comment'>--</span>
<a name="line-65"></a><span class='hs-comment'>-- If multisampling is enabled, the point may be faded by modifying the point</span>
<a name="line-66"></a><span class='hs-comment'>-- alpha value (see 'Graphics.Rendering.OpenGL.GL.PerFragment.sampleCoverage')</span>
<a name="line-67"></a><span class='hs-comment'>-- instead of allowing the point width to go below a given</span>
<a name="line-68"></a><span class='hs-comment'>-- 'pointFadeThresholdSize'. In this case, the width is further modified in</span>
<a name="line-69"></a><span class='hs-comment'>-- the following manner:</span>
<a name="line-70"></a><span class='hs-comment'>--</span>
<a name="line-71"></a><span class='hs-comment'>-- @ /width/ = if /derivedSize/ >= /threshold/ then /derivedSize/ else /threshold/@</span>
<a name="line-72"></a><span class='hs-comment'>--</span>
<a name="line-73"></a><span class='hs-comment'>-- The point alpha value is modified by computing:</span>
<a name="line-74"></a><span class='hs-comment'>--</span>
<a name="line-75"></a><span class='hs-comment'>-- @ /alpha/ = if /derivedSize/ >= /threshold/ then 1 else (/derivedSize/ \/ /threshold/)^2@</span>
<a name="line-76"></a><span class='hs-comment'>--</span>
<a name="line-77"></a><span class='hs-comment'>-- If point antialiasing is disabled, the actual size is determined by rounding</span>
<a name="line-78"></a><span class='hs-comment'>-- the supplied size to the nearest integer. (If the rounding results in the</span>
<a name="line-79"></a><span class='hs-comment'>-- value 0, it is as if the point size were 1.) If the rounded size is odd,</span>
<a name="line-80"></a><span class='hs-comment'>-- then the center point (/x/, /y/) of the pixel fragment that represents</span>
<a name="line-81"></a><span class='hs-comment'>-- the point is computed as</span>
<a name="line-82"></a><span class='hs-comment'>--</span>
<a name="line-83"></a><span class='hs-comment'>-- @ (/x/, /y/) = (/floor/ /xw/ + 0.5, /floor/ /yw/ + 0.5)@</span>
<a name="line-84"></a><span class='hs-comment'>--</span>
<a name="line-85"></a><span class='hs-comment'>-- where /xw/ and /yw/ indicate window coordinates. All pixels that lie within</span>
<a name="line-86"></a><span class='hs-comment'>-- the square grid of the rounded size centered at (/x/, /y/) make up the</span>
<a name="line-87"></a><span class='hs-comment'>-- fragment. If the size is even, the center point is</span>
<a name="line-88"></a><span class='hs-comment'>--</span>
<a name="line-89"></a><span class='hs-comment'>-- @ (/x/, /y/) = (/floor/ (/xw/ + 0.5), /floor/ (/yw/ + 0.5))@</span>
<a name="line-90"></a><span class='hs-comment'>--</span>
<a name="line-91"></a><span class='hs-comment'>-- and the rasterized fragment\'s centers are the half-integer window</span>
<a name="line-92"></a><span class='hs-comment'>-- coordinates within the square of the rounded size centered at (/x/, /y/). All</span>
<a name="line-93"></a><span class='hs-comment'>-- pixel fragments produced in rasterizing a nonantialiased point are assigned</span>
<a name="line-94"></a><span class='hs-comment'>-- the same associated data, that of the vertex corresponding to the point.</span>
<a name="line-95"></a><span class='hs-comment'>--</span>
<a name="line-96"></a><span class='hs-comment'>-- If antialiasing is enabled, then point rasterization produces a fragment for</span>
<a name="line-97"></a><span class='hs-comment'>-- each pixel square that intersects the region lying within the circle having</span>
<a name="line-98"></a><span class='hs-comment'>-- diameter equal to the current point size and centered at the point\'s</span>
<a name="line-99"></a><span class='hs-comment'>-- (/xw/, /yw/). The coverage value for each fragment is the window coordinate</span>
<a name="line-100"></a><span class='hs-comment'>-- area of the intersection of the circular region with the corresponding pixel</span>
<a name="line-101"></a><span class='hs-comment'>-- square. This value is saved and used in the final rasterization step. The</span>
<a name="line-102"></a><span class='hs-comment'>-- data associated with each fragment is the data associated with the point</span>
<a name="line-103"></a><span class='hs-comment'>-- being rasterized.</span>
<a name="line-104"></a><span class='hs-comment'>--</span>
<a name="line-105"></a><span class='hs-comment'>-- Not all sizes are supported when point antialiasing is enabled. If an</span>
<a name="line-106"></a><span class='hs-comment'>-- unsupported size is requested, the nearest supported size is used. Only size</span>
<a name="line-107"></a><span class='hs-comment'>-- 1 is guaranteed to be supported; others depend on the implementation. To</span>
<a name="line-108"></a><span class='hs-comment'>-- query the range of supported sizes for antialiased points and the size</span>
<a name="line-109"></a><span class='hs-comment'>-- difference between supported sizes within the range, query</span>
<a name="line-110"></a><span class='hs-comment'>-- 'smoothPointSizeRange' and 'smoothPointSizeGranularity', respectively. For</span>
<a name="line-111"></a><span class='hs-comment'>-- aliased points, query the supported range with 'aliasedPointSizeRange'.</span>
<a name="line-112"></a><span class='hs-comment'>--</span>
<a name="line-113"></a><span class='hs-comment'>-- The point size specified when 'pointSize' is set is always returned when it</span>
<a name="line-114"></a><span class='hs-comment'>-- is queried. Clamping and rounding for aliased and antialiased points have no</span>
<a name="line-115"></a><span class='hs-comment'>-- effect on the specified value.</span>
<a name="line-116"></a><span class='hs-comment'>--</span>
<a name="line-117"></a><span class='hs-comment'>-- A non-antialiased point size may be clamped to an implementation-dependent</span>
<a name="line-118"></a><span class='hs-comment'>-- maximum. Although this maximum cannot be queried, it must be no less than the</span>
<a name="line-119"></a><span class='hs-comment'>-- maximum value for antialiased points, rounded to the nearest integer value.</span>
<a name="line-120"></a><span class='hs-comment'>--</span>
<a name="line-121"></a><span class='hs-comment'>-- An 'Graphics.Rendering.OpenGL.GLU.Errors.InvalidValue' is generated if</span>
<a name="line-122"></a><span class='hs-comment'>-- 'pointSize' is set to a value less than or equal to zero.</span>
<a name="line-123"></a><span class='hs-comment'>--</span>
<a name="line-124"></a><span class='hs-comment'>-- An 'Graphics.Rendering.OpenGL.GLU.Errors.InvalidOperation' is generated if</span>
<a name="line-125"></a><span class='hs-comment'>-- 'pointSize' is set during</span>
<a name="line-126"></a><span class='hs-comment'>-- 'Graphics.Rendering.OpenGL.GL.BeginEnd.renderPrimitive'.</span>
<a name="line-127"></a>
<a name="line-128"></a><a name="pointSize"></a><span class='hs-definition'>pointSize</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>StateVar</span> <span class='hs-conid'>GLfloat</span>
<a name="line-129"></a><span class='hs-definition'>pointSize</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>makeStateVar</span> <span class='hs-layout'>(</span><span class='hs-varid'>getFloat1</span> <span class='hs-varid'>id</span> <span class='hs-conid'>GetPointSize</span><span class='hs-layout'>)</span> <span class='hs-varid'>glPointSize</span>
<a name="line-130"></a>
<a name="line-131"></a><span class='hs-comment'>--------------------------------------------------------------------------------</span>
<a name="line-132"></a>
<a name="line-133"></a><a name="vertexProgramPointSize"></a><span class='hs-definition'>vertexProgramPointSize</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>StateVar</span> <span class='hs-conid'>Capability</span>
<a name="line-134"></a><span class='hs-definition'>vertexProgramPointSize</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>makeCapability</span> <span class='hs-conid'>CapVertexProgramPointSize</span>
<a name="line-135"></a>
<a name="line-136"></a><span class='hs-comment'>--------------------------------------------------------------------------------</span>
<a name="line-137"></a>
<a name="line-138"></a><span class='hs-comment'>-- | The range to which the derived point size is clamped, see 'pointSize'. Note</span>
<a name="line-139"></a><span class='hs-comment'>-- that the size is further clamped to the implementation-dependent limits, see</span>
<a name="line-140"></a><span class='hs-comment'>-- 'aliasedPointSizeRange' and 'smoothPointSizeRange'. The initial range is</span>
<a name="line-141"></a><span class='hs-comment'>-- (0, 1).</span>
<a name="line-142"></a><span class='hs-comment'>--</span>
<a name="line-143"></a><span class='hs-comment'>-- An 'Graphics.Rendering.OpenGL.GLU.Errors.InvalidValue' is generated if the</span>
<a name="line-144"></a><span class='hs-comment'>-- lower or upper bound of the range is set to a value less than zero. If the</span>
<a name="line-145"></a><span class='hs-comment'>-- lower bound is greater than the upper bound, the point size after clamping is</span>
<a name="line-146"></a><span class='hs-comment'>-- undefined, but no error is generated.</span>
<a name="line-147"></a>
<a name="line-148"></a><a name="pointSizeRange"></a><span class='hs-definition'>pointSizeRange</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>StateVar</span> <span class='hs-layout'>(</span><span class='hs-conid'>GLfloat</span><span class='hs-layout'>,</span> <span class='hs-conid'>GLfloat</span><span class='hs-layout'>)</span>
<a name="line-149"></a><span class='hs-definition'>pointSizeRange</span> <span class='hs-keyglyph'>=</span>
<a name="line-150"></a> <span class='hs-varid'>makeStateVar</span>
<a name="line-151"></a> <span class='hs-layout'>(</span><span class='hs-varid'>liftM2</span> <span class='hs-conid'>(,)</span> <span class='hs-layout'>(</span><span class='hs-varid'>getFloat1</span> <span class='hs-varid'>id</span> <span class='hs-conid'>GetPointSizeMin</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>getFloat1</span> <span class='hs-varid'>id</span> <span class='hs-conid'>GetPointSizeMax</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-152"></a> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-varid'>sizeMin</span><span class='hs-layout'>,</span> <span class='hs-varid'>sizeMax</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>do</span> <span class='hs-varid'>pointParameterf</span> <span class='hs-conid'>PointSizeMin</span> <span class='hs-varid'>sizeMin</span>
<a name="line-153"></a> <span class='hs-varid'>pointParameterf</span> <span class='hs-conid'>PointSizeMax</span> <span class='hs-varid'>sizeMax</span><span class='hs-layout'>)</span>
<a name="line-154"></a>
<a name="line-155"></a><span class='hs-comment'>--------------------------------------------------------------------------------</span>
<a name="line-156"></a>
<a name="line-157"></a><span class='hs-comment'>-- | The constant, linear, and quadratic distance attenuation coefficients, see</span>
<a name="line-158"></a><span class='hs-comment'>-- 'pointSize'. The initial coefficients are (1, 0, 0).</span>
<a name="line-159"></a>
<a name="line-160"></a><a name="pointDistanceAttenuation"></a><span class='hs-definition'>pointDistanceAttenuation</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>StateVar</span> <span class='hs-layout'>(</span><span class='hs-conid'>GLfloat</span><span class='hs-layout'>,</span> <span class='hs-conid'>GLfloat</span><span class='hs-layout'>,</span> <span class='hs-conid'>GLfloat</span><span class='hs-layout'>)</span>
<a name="line-161"></a><span class='hs-definition'>pointDistanceAttenuation</span> <span class='hs-keyglyph'>=</span>
<a name="line-162"></a> <span class='hs-varid'>makeStateVar</span>
<a name="line-163"></a> <span class='hs-layout'>(</span><span class='hs-varid'>getFloat3</span> <span class='hs-conid'>(,,)</span> <span class='hs-conid'>GetPointDistanceAttenuation</span><span class='hs-layout'>)</span>
<a name="line-164"></a> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-varid'>a</span><span class='hs-layout'>,</span> <span class='hs-varid'>b</span><span class='hs-layout'>,</span> <span class='hs-varid'>c</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>withArray</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-layout'>,</span> <span class='hs-varid'>b</span><span class='hs-layout'>,</span> <span class='hs-varid'>c</span><span class='hs-keyglyph'>]</span> <span class='hs-varop'>$</span>
<a name="line-165"></a> <span class='hs-varid'>pointParameterfv</span> <span class='hs-conid'>PointDistanceAttenuation</span><span class='hs-layout'>)</span>
<a name="line-166"></a>
<a name="line-167"></a><span class='hs-comment'>--------------------------------------------------------------------------------</span>
<a name="line-168"></a>
<a name="line-169"></a><span class='hs-comment'>-- | The threshold for alpha attenuation of points when multisampling is used,</span>
<a name="line-170"></a><span class='hs-comment'>-- see 'pointSize'. The initial threshold is 1.</span>
<a name="line-171"></a><span class='hs-comment'>--</span>
<a name="line-172"></a><span class='hs-comment'>-- An 'Graphics.Rendering.OpenGL.GLU.Errors.InvalidValue' is generated if the</span>
<a name="line-173"></a><span class='hs-comment'>-- threshold is set to a value less than zero.</span>
<a name="line-174"></a>
<a name="line-175"></a><a name="pointFadeThresholdSize"></a><span class='hs-definition'>pointFadeThresholdSize</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>StateVar</span> <span class='hs-conid'>GLfloat</span>
<a name="line-176"></a><span class='hs-definition'>pointFadeThresholdSize</span> <span class='hs-keyglyph'>=</span>
<a name="line-177"></a> <span class='hs-varid'>makeStateVar</span>
<a name="line-178"></a> <span class='hs-layout'>(</span><span class='hs-varid'>getFloat1</span> <span class='hs-varid'>id</span> <span class='hs-conid'>GetPointFadeThresholdSize</span><span class='hs-layout'>)</span>
<a name="line-179"></a> <span class='hs-layout'>(</span><span class='hs-varid'>pointParameterf</span> <span class='hs-conid'>PointFadeThresholdSize</span><span class='hs-layout'>)</span>
<a name="line-180"></a>
<a name="line-181"></a><span class='hs-comment'>--------------------------------------------------------------------------------</span>
<a name="line-182"></a>
<a name="line-183"></a><span class='hs-comment'>-- | Controls whether point antialiasing is enabled. The initial state is</span>
<a name="line-184"></a><span class='hs-comment'>-- 'Graphics.Rendering.OpenGL.GL.Capability.Disabled'.</span>
<a name="line-185"></a>
<a name="line-186"></a><a name="pointSmooth"></a><span class='hs-definition'>pointSmooth</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>StateVar</span> <span class='hs-conid'>Capability</span>
<a name="line-187"></a><span class='hs-definition'>pointSmooth</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>makeCapability</span> <span class='hs-conid'>CapPointSmooth</span>
<a name="line-188"></a>
<a name="line-189"></a><span class='hs-comment'>--------------------------------------------------------------------------------</span>
<a name="line-190"></a>
<a name="line-191"></a><span class='hs-comment'>-- | Controls whether point sprites are enabled. The initial state is</span>
<a name="line-192"></a><span class='hs-comment'>-- 'Graphics.Rendering.OpenGL.GL.Capability.Disabled'. When point sprites are</span>
<a name="line-193"></a><span class='hs-comment'>-- enabled, the state of point antialiasing (i.e. 'pointSmooth') is ignored.</span>
<a name="line-194"></a>
<a name="line-195"></a><a name="pointSprite"></a><span class='hs-definition'>pointSprite</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>StateVar</span> <span class='hs-conid'>Capability</span>
<a name="line-196"></a><span class='hs-definition'>pointSprite</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>makeCapability</span> <span class='hs-conid'>CapPointSprite</span>
<a name="line-197"></a>
<a name="line-198"></a><span class='hs-comment'>--------------------------------------------------------------------------------</span>
<a name="line-199"></a>
<a name="line-200"></a><span class='hs-comment'>-- | The smallest and largest supported size of aliased points.</span>
<a name="line-201"></a>
<a name="line-202"></a><a name="aliasedPointSizeRange"></a><span class='hs-definition'>aliasedPointSizeRange</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>GettableStateVar</span> <span class='hs-layout'>(</span><span class='hs-conid'>GLfloat</span><span class='hs-layout'>,</span> <span class='hs-conid'>GLfloat</span><span class='hs-layout'>)</span>
<a name="line-203"></a><span class='hs-definition'>aliasedPointSizeRange</span> <span class='hs-keyglyph'>=</span>
<a name="line-204"></a> <span class='hs-varid'>makeGettableStateVar</span> <span class='hs-varop'>$</span> <span class='hs-varid'>getFloat2</span> <span class='hs-conid'>(,)</span> <span class='hs-conid'>GetAliasedPointSizeRange</span>
<a name="line-205"></a>
<a name="line-206"></a><span class='hs-comment'>-- | The smallest and largest supported size of antialiased points.</span>
<a name="line-207"></a>
<a name="line-208"></a><a name="smoothPointSizeRange"></a><span class='hs-definition'>smoothPointSizeRange</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>GettableStateVar</span> <span class='hs-layout'>(</span><span class='hs-conid'>GLfloat</span><span class='hs-layout'>,</span> <span class='hs-conid'>GLfloat</span><span class='hs-layout'>)</span>
<a name="line-209"></a><span class='hs-definition'>smoothPointSizeRange</span> <span class='hs-keyglyph'>=</span>
<a name="line-210"></a> <span class='hs-varid'>makeGettableStateVar</span> <span class='hs-varop'>$</span> <span class='hs-varid'>getFloat2</span> <span class='hs-conid'>(,)</span> <span class='hs-conid'>GetSmoothPointSizeRange</span>
<a name="line-211"></a>
<a name="line-212"></a><span class='hs-comment'>-- | The antialiased point size granularity, i.e. the size difference between</span>
<a name="line-213"></a><span class='hs-comment'>-- supported sizes.</span>
<a name="line-214"></a>
<a name="line-215"></a><a name="smoothPointSizeGranularity"></a><span class='hs-definition'>smoothPointSizeGranularity</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>GettableStateVar</span> <span class='hs-conid'>GLfloat</span>
<a name="line-216"></a><span class='hs-definition'>smoothPointSizeGranularity</span> <span class='hs-keyglyph'>=</span>
<a name="line-217"></a> <span class='hs-varid'>makeGettableStateVar</span> <span class='hs-varop'>$</span> <span class='hs-varid'>getFloat1</span> <span class='hs-varid'>id</span> <span class='hs-conid'>GetSmoothPointSizeGranularity</span>
</pre></body>
</html>
|