/usr/share/doc/libghc-cairo-doc/html/Graphics-Rendering-Cairo.html is in libghc-cairo-doc 0.13.1.0-4build1.
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 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Graphics.Rendering.Cairo</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Graphics-Rendering-Cairo.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Graphics-Rendering-Cairo.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">cairo-0.13.1.0: Binding to the Cairo library.</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Copyright</th><td>(c) Paolo Martini 2005, (c) Abraham Egnor 2004, (c) Aetion Technologies LLC 2004</td></tr><tr><th>License</th><td>BSD-style (see cairo/COPYRIGHT)</td></tr><tr><th>Maintainer</th><td>p.martini@neuralnoise.com</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">Graphics.Rendering.Cairo</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Drawing</a><ul><li><a href="#g:2">Paths</a></li><li><a href="#g:3">Patterns</a></li><li><a href="#g:4">Transformations</a></li><li><a href="#g:5">Text</a></li></ul></li><li><a href="#g:6">Fonts</a><ul><li><a href="#g:7">Font options</a></li></ul></li><li><a href="#g:8">Surfaces</a><ul><li><a href="#g:9">Image surfaces</a></li><li><a href="#g:10">PNG support</a></li><li><a href="#g:11">PDF surfaces</a></li><li><a href="#g:12">PS surfaces</a></li><li><a href="#g:13">SVG surfaces</a></li></ul></li><li><a href="#g:14">Regions</a></li><li><a href="#g:15">Utilities</a></li><li><a href="#g:16">Types</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>The Cairo 2D graphics library.</p><p>Cairo is a 2D graphics library with support for multiple output devices.
Currently supported output targets include the X Window System, win32, and
image buffers. Experimental backends include OpenGL (through glitz), Quartz,
XCB, PostScript and PDF file output.</p><p>Cairo is designed to produce consistent output on all output media while
taking advantage of display hardware acceleration when available (eg.
through the X Render Extension).</p><p>The cairo API provides operations similar to the drawing operators of
PostScript and PDF. Operations in cairo including stroking and filling cubic
Bezier splines, transforming and compositing translucent images, and
antialiased text rendering. All drawing operations can be transformed by any
affine transformation (scale, rotation, shear, etc.)</p><p>Cairo is free software and is available to be redistributed and/or modified
under the terms of either the GNU Lesser General Public License (LGPL)
version 2.1 or the Mozilla Public License (MPL) version 1.1.</p><p>For more information see <a href="http://cairographics.org">http://cairographics.org</a></p><ul><li>Note the Haskell bindings do not support all the possible cairo backends
because it would require bindings for the associated technology (eg X11,
glitz, etc) however bindings to other backends may be implemented
externally. For example, Gtk2Hs provides a binding to the backend for X11
(and win32 on Windows).</li></ul></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:renderWith">renderWith</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a -> m a</li><li class="src short"><a href="#v:save">save</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:restore">restore</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:status">status</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:Status">Status</a></li><li class="src short"><a href="#v:withTargetSurface">withTargetSurface</a> :: (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a) -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</li><li class="src short"><a href="#v:pushGroup">pushGroup</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:pushGroupWithContent">pushGroupWithContent</a> :: <a href="Graphics-Rendering-Cairo.html#t:Content">Content</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:popGroupToSource">popGroupToSource</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:setSourceRGB">setSourceRGB</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:setSourceRGBA">setSourceRGBA</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:setSource">setSource</a> :: <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:setSourceSurface">setSourceSurface</a> :: <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:getSource">getSource</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></li><li class="src short"><a href="#v:setAntialias">setAntialias</a> :: <a href="Graphics-Rendering-Cairo.html#t:Antialias">Antialias</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:setDash">setDash</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>] -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:setFillRule">setFillRule</a> :: <a href="Graphics-Rendering-Cairo.html#t:FillRule">FillRule</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:getFillRule">getFillRule</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:FillRule">FillRule</a></li><li class="src short"><a href="#v:setLineCap">setLineCap</a> :: <a href="Graphics-Rendering-Cairo.html#t:LineCap">LineCap</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:getLineCap">getLineCap</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:LineCap">LineCap</a></li><li class="src short"><a href="#v:setLineJoin">setLineJoin</a> :: <a href="Graphics-Rendering-Cairo.html#t:LineJoin">LineJoin</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:getLineJoin">getLineJoin</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:LineJoin">LineJoin</a></li><li class="src short"><a href="#v:setLineWidth">setLineWidth</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:getLineWidth">getLineWidth</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></li><li class="src short"><a href="#v:setMiterLimit">setMiterLimit</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:getMiterLimit">getMiterLimit</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></li><li class="src short"><a href="#v:setOperator">setOperator</a> :: <a href="Graphics-Rendering-Cairo.html#t:Operator">Operator</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:getOperator">getOperator</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:Operator">Operator</a></li><li class="src short"><a href="#v:setTolerance">setTolerance</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:getTolerance">getTolerance</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></li><li class="src short"><a href="#v:clip">clip</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:clipPreserve">clipPreserve</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:clipExtents">clipExtents</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>)</li><li class="src short"><a href="#v:resetClip">resetClip</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:fill">fill</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:fillPreserve">fillPreserve</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:fillExtents">fillExtents</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>)</li><li class="src short"><a href="#v:inFill">inFill</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:mask">mask</a> :: <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:maskSurface">maskSurface</a> :: <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:paint">paint</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:paintWithAlpha">paintWithAlpha</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:stroke">stroke</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:strokePreserve">strokePreserve</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:strokeExtents">strokeExtents</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>)</li><li class="src short"><a href="#v:inStroke">inStroke</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:copyPage">copyPage</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:showPage">showPage</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:getCurrentPoint">getCurrentPoint</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>)</li><li class="src short"><a href="#v:newPath">newPath</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:closePath">closePath</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:arc">arc</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:arcNegative">arcNegative</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:curveTo">curveTo</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:lineTo">lineTo</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:moveTo">moveTo</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:rectangle">rectangle</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:textPath">textPath</a> :: <a href="Graphics-Rendering-Cairo.html#t:CairoString">CairoString</a> string => string -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:relCurveTo">relCurveTo</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:relLineTo">relLineTo</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:relMoveTo">relMoveTo</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:withRGBPattern">withRGBPattern</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a) -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</li><li class="src short"><a href="#v:withRGBAPattern">withRGBAPattern</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a) -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</li><li class="src short"><a href="#v:withPatternForSurface">withPatternForSurface</a> :: <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a) -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</li><li class="src short"><a href="#v:withGroupPattern">withGroupPattern</a> :: (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a) -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</li><li class="src short"><a href="#v:withLinearPattern">withLinearPattern</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a) -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</li><li class="src short"><a href="#v:withRadialPattern">withRadialPattern</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a) -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</li><li class="src short"><a href="#v:patternAddColorStopRGB">patternAddColorStopRGB</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> m ()</li><li class="src short"><a href="#v:patternAddColorStopRGBA">patternAddColorStopRGBA</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> m ()</li><li class="src short"><a href="#v:patternSetMatrix">patternSetMatrix</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a> -> m ()</li><li class="src short"><a href="#v:patternGetMatrix">patternGetMatrix</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> m <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a></li><li class="src short"><a href="#v:patternSetExtend">patternSetExtend</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="Graphics-Rendering-Cairo.html#t:Extend">Extend</a> -> m ()</li><li class="src short"><a href="#v:patternGetExtend">patternGetExtend</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> m <a href="Graphics-Rendering-Cairo.html#t:Extend">Extend</a></li><li class="src short"><a href="#v:patternSetFilter">patternSetFilter</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="Graphics-Rendering-Cairo.html#t:Filter">Filter</a> -> m ()</li><li class="src short"><a href="#v:patternGetFilter">patternGetFilter</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> m <a href="Graphics-Rendering-Cairo.html#t:Filter">Filter</a></li><li class="src short"><a href="#v:translate">translate</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:scale">scale</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:rotate">rotate</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:transform">transform</a> :: <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:setMatrix">setMatrix</a> :: <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:getMatrix">getMatrix</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a></li><li class="src short"><a href="#v:identityMatrix">identityMatrix</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:userToDevice">userToDevice</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>)</li><li class="src short"><a href="#v:userToDeviceDistance">userToDeviceDistance</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>)</li><li class="src short"><a href="#v:deviceToUser">deviceToUser</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>)</li><li class="src short"><a href="#v:deviceToUserDistance">deviceToUserDistance</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>)</li><li class="src short"><a href="#v:selectFontFace">selectFontFace</a> :: <a href="Graphics-Rendering-Cairo.html#t:CairoString">CairoString</a> string => string -> <a href="Graphics-Rendering-Cairo.html#t:FontSlant">FontSlant</a> -> <a href="Graphics-Rendering-Cairo.html#t:FontWeight">FontWeight</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:setFontSize">setFontSize</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:setFontMatrix">setFontMatrix</a> :: <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:getFontMatrix">getFontMatrix</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a></li><li class="src short"><a href="#v:setFontOptions">setFontOptions</a> :: <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:showText">showText</a> :: <a href="Graphics-Rendering-Cairo.html#t:CairoString">CairoString</a> string => string -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</li><li class="src short"><a href="#v:fontExtents">fontExtents</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:FontExtents">FontExtents</a></li><li class="src short"><a href="#v:textExtents">textExtents</a> :: <a href="Graphics-Rendering-Cairo.html#t:CairoString">CairoString</a> string => string -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:TextExtents">TextExtents</a></li><li class="src short"><a href="#v:fontOptionsCreate">fontOptionsCreate</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => m <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a></li><li class="src short"><a href="#v:fontOptionsCopy">fontOptionsCopy</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> m <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a></li><li class="src short"><a href="#v:fontOptionsMerge">fontOptionsMerge</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> m ()</li><li class="src short"><a href="#v:fontOptionsHash">fontOptionsHash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> m <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:fontOptionsEqual">fontOptionsEqual</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> m <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:fontOptionsSetAntialias">fontOptionsSetAntialias</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> <a href="Graphics-Rendering-Cairo.html#t:Antialias">Antialias</a> -> m ()</li><li class="src short"><a href="#v:fontOptionsGetAntialias">fontOptionsGetAntialias</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> m <a href="Graphics-Rendering-Cairo.html#t:Antialias">Antialias</a></li><li class="src short"><a href="#v:fontOptionsSetSubpixelOrder">fontOptionsSetSubpixelOrder</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> <a href="Graphics-Rendering-Cairo.html#t:SubpixelOrder">SubpixelOrder</a> -> m ()</li><li class="src short"><a href="#v:fontOptionsGetSubpixelOrder">fontOptionsGetSubpixelOrder</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> m <a href="Graphics-Rendering-Cairo.html#t:SubpixelOrder">SubpixelOrder</a></li><li class="src short"><a href="#v:fontOptionsSetHintStyle">fontOptionsSetHintStyle</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> <a href="Graphics-Rendering-Cairo.html#t:HintStyle">HintStyle</a> -> m ()</li><li class="src short"><a href="#v:fontOptionsGetHintStyle">fontOptionsGetHintStyle</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> m <a href="Graphics-Rendering-Cairo.html#t:HintStyle">HintStyle</a></li><li class="src short"><a href="#v:fontOptionsSetHintMetrics">fontOptionsSetHintMetrics</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> <a href="Graphics-Rendering-Cairo.html#t:HintMetrics">HintMetrics</a> -> m ()</li><li class="src short"><a href="#v:fontOptionsGetHintMetrics">fontOptionsGetHintMetrics</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> m <a href="Graphics-Rendering-Cairo.html#t:HintMetrics">HintMetrics</a></li><li class="src short"><a href="#v:withSimilarSurface">withSimilarSurface</a> :: <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="Graphics-Rendering-Cairo.html#t:Content">Content</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:createSimilarSurface">createSimilarSurface</a> :: <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="Graphics-Rendering-Cairo.html#t:Content">Content</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></li><li class="src short"><a href="#v:renderWithSimilarSurface">renderWithSimilarSurface</a> :: <a href="Graphics-Rendering-Cairo.html#t:Content">Content</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a) -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</li><li class="src short"><a href="#v:surfaceGetFontOptions">surfaceGetFontOptions</a> :: <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a></li><li class="src short"><a href="#v:surfaceFinish">surfaceFinish</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> m ()</li><li class="src short"><a href="#v:surfaceFlush">surfaceFlush</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> m ()</li><li class="src short"><a href="#v:surfaceMarkDirty">surfaceMarkDirty</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> m ()</li><li class="src short"><a href="#v:surfaceMarkDirtyRectangle">surfaceMarkDirtyRectangle</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> m ()</li><li class="src short"><a href="#v:surfaceSetDeviceOffset">surfaceSetDeviceOffset</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> m ()</li><li class="src short"><a href="#v:withImageSurface">withImageSurface</a> :: <a href="Graphics-Rendering-Cairo.html#t:Format">Format</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:withImageSurfaceForData">withImageSurfaceForData</a> :: PixelData -> <a href="Graphics-Rendering-Cairo.html#t:Format">Format</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:formatStrideForWidth">formatStrideForWidth</a> :: <a href="Graphics-Rendering-Cairo.html#t:Format">Format</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:createImageSurfaceForData">createImageSurfaceForData</a> :: PixelData -> <a href="Graphics-Rendering-Cairo.html#t:Format">Format</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></li><li class="src short"><a href="#v:createImageSurface">createImageSurface</a> :: <a href="Graphics-Rendering-Cairo.html#t:Format">Format</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></li><li class="src short"><a href="#v:imageSurfaceGetWidth">imageSurfaceGetWidth</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> m <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:imageSurfaceGetHeight">imageSurfaceGetHeight</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> m <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:imageSurfaceGetFormat">imageSurfaceGetFormat</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> m <a href="Graphics-Rendering-Cairo.html#t:Format">Format</a></li><li class="src short"><a href="#v:imageSurfaceGetStride">imageSurfaceGetStride</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> m <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:imageSurfaceGetData">imageSurfaceGetData</a> :: <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:SurfaceData">SurfaceData</a> i e</li><li class="src short"><a href="#v:imageSurfaceGetPixels">imageSurfaceGetPixels</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> e => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> (<a href="Graphics-Rendering-Cairo.html#t:SurfaceData">SurfaceData</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> e)</li><li class="src short"><a href="#v:withImageSurfaceFromPNG">withImageSurfaceFromPNG</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:FilePath">FilePath</a> -> (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:imageSurfaceCreateFromPNG">imageSurfaceCreateFromPNG</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></li><li class="src short"><a href="#v:surfaceWriteToPNG">surfaceWriteToPNG</a> :: <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:withPDFSurface">withPDFSurface</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:pdfSurfaceSetSize">pdfSurfaceSetSize</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> m ()</li><li class="src short"><a href="#v:withPSSurface">withPSSurface</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:psSurfaceSetSize">psSurfaceSetSize</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> m ()</li><li class="src short"><a href="#v:withSVGSurface">withSVGSurface</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:regionCreate">regionCreate</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => m <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></li><li class="src short"><a href="#v:regionCreateRectangle">regionCreateRectangle</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a> -> m <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></li><li class="src short"><a href="#v:regionCreateRectangles">regionCreateRectangles</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => [<a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a>] -> m <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></li><li class="src short"><a href="#v:regionCopy">regionCopy</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> m <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></li><li class="src short"><a href="#v:regionGetExtents">regionGetExtents</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> m <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></li><li class="src short"><a href="#v:regionNumRectangles">regionNumRectangles</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> m <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:regionGetRectangle">regionGetRectangle</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> m <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></li><li class="src short"><a href="#v:regionIsEmpty">regionIsEmpty</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> m <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:regionContainsPoint">regionContainsPoint</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> m <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:regionContainsRectangle">regionContainsRectangle</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a> -> m <a href="Graphics-Rendering-Cairo.html#t:RegionOverlap">RegionOverlap</a></li><li class="src short"><a href="#v:regionEqual">regionEqual</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> m <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:regionTranslate">regionTranslate</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> m ()</li><li class="src short"><a href="#v:regionIntersect">regionIntersect</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> m ()</li><li class="src short"><a href="#v:regionIntersectRectangle">regionIntersectRectangle</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a> -> m ()</li><li class="src short"><a href="#v:regionSubtract">regionSubtract</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> m ()</li><li class="src short"><a href="#v:regionSubtractRectangle">regionSubtractRectangle</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a> -> m ()</li><li class="src short"><a href="#v:regionUnion">regionUnion</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> m ()</li><li class="src short"><a href="#v:regionUnionRectangle">regionUnionRectangle</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a> -> m ()</li><li class="src short"><a href="#v:regionXor">regionXor</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> m ()</li><li class="src short"><a href="#v:regionXorRectangle">regionXorRectangle</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -> <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a> -> m ()</li><li class="src short"><a href="#v:liftIO">liftIO</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <span class="keyword">forall</span> a. <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a -> m a</li><li class="src short"><a href="#v:version">version</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:versionString">versionString</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-String.html#t:String">String</a></li><li class="src short"><span class="keyword">class</span> <a href="#t:CairoString">CairoString</a> s</li><li class="src short"><span class="keyword">data</span> <a href="#t:Render">Render</a> m</li><li class="src short"><span class="keyword">data</span> <a href="#t:Matrix">Matrix</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Surface">Surface</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Pattern">Pattern</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Status">Status</a><ul class="subs"><li>= <a href="#v:StatusSuccess">StatusSuccess</a></li><li>| <a href="#v:StatusNoMemory">StatusNoMemory</a></li><li>| <a href="#v:StatusInvalidRestore">StatusInvalidRestore</a></li><li>| <a href="#v:StatusInvalidPopGroup">StatusInvalidPopGroup</a></li><li>| <a href="#v:StatusNoCurrentPoint">StatusNoCurrentPoint</a></li><li>| <a href="#v:StatusInvalidMatrix">StatusInvalidMatrix</a></li><li>| <a href="#v:StatusInvalidStatus">StatusInvalidStatus</a></li><li>| <a href="#v:StatusNullPointer">StatusNullPointer</a></li><li>| <a href="#v:StatusInvalidString">StatusInvalidString</a></li><li>| <a href="#v:StatusInvalidPathData">StatusInvalidPathData</a></li><li>| <a href="#v:StatusReadError">StatusReadError</a></li><li>| <a href="#v:StatusWriteError">StatusWriteError</a></li><li>| <a href="#v:StatusSurfaceFinished">StatusSurfaceFinished</a></li><li>| <a href="#v:StatusSurfaceTypeMismatch">StatusSurfaceTypeMismatch</a></li><li>| <a href="#v:StatusPatternTypeMismatch">StatusPatternTypeMismatch</a></li><li>| <a href="#v:StatusInvalidContent">StatusInvalidContent</a></li><li>| <a href="#v:StatusInvalidFormat">StatusInvalidFormat</a></li><li>| <a href="#v:StatusInvalidVisual">StatusInvalidVisual</a></li><li>| <a href="#v:StatusFileNotFound">StatusFileNotFound</a></li><li>| <a href="#v:StatusInvalidDash">StatusInvalidDash</a></li><li>| <a href="#v:StatusInvalidDscComment">StatusInvalidDscComment</a></li><li>| <a href="#v:StatusInvalidIndex">StatusInvalidIndex</a></li><li>| <a href="#v:StatusClipNotRepresentable">StatusClipNotRepresentable</a></li><li>| <a href="#v:StatusTempFileError">StatusTempFileError</a></li><li>| <a href="#v:StatusInvalidStride">StatusInvalidStride</a></li><li>| <a href="#v:StatusFontTypeMismatch">StatusFontTypeMismatch</a></li><li>| <a href="#v:StatusUserFontImmutable">StatusUserFontImmutable</a></li><li>| <a href="#v:StatusUserFontError">StatusUserFontError</a></li><li>| <a href="#v:StatusNegativeCount">StatusNegativeCount</a></li><li>| <a href="#v:StatusInvalidClusters">StatusInvalidClusters</a></li><li>| <a href="#v:StatusInvalidSlant">StatusInvalidSlant</a></li><li>| <a href="#v:StatusInvalidWeight">StatusInvalidWeight</a></li><li>| <a href="#v:StatusInvalidSize">StatusInvalidSize</a></li><li>| <a href="#v:StatusUserFontNotImplemented">StatusUserFontNotImplemented</a></li><li>| <a href="#v:StatusDeviceTypeMismatch">StatusDeviceTypeMismatch</a></li><li>| <a href="#v:StatusDeviceError">StatusDeviceError</a></li><li>| <a href="#v:StatusInvalidMeshConstruction">StatusInvalidMeshConstruction</a></li><li>| <a href="#v:StatusDeviceFinished">StatusDeviceFinished</a></li><li>| <a href="#v:StatusJbig2GlobalMissing">StatusJbig2GlobalMissing</a></li><li>| <a href="#v:StatusLastStatus">StatusLastStatus</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Operator">Operator</a><ul class="subs"><li>= <a href="#v:OperatorClear">OperatorClear</a></li><li>| <a href="#v:OperatorSource">OperatorSource</a></li><li>| <a href="#v:OperatorOver">OperatorOver</a></li><li>| <a href="#v:OperatorIn">OperatorIn</a></li><li>| <a href="#v:OperatorOut">OperatorOut</a></li><li>| <a href="#v:OperatorAtop">OperatorAtop</a></li><li>| <a href="#v:OperatorDest">OperatorDest</a></li><li>| <a href="#v:OperatorDestOver">OperatorDestOver</a></li><li>| <a href="#v:OperatorDestIn">OperatorDestIn</a></li><li>| <a href="#v:OperatorDestOut">OperatorDestOut</a></li><li>| <a href="#v:OperatorDestAtop">OperatorDestAtop</a></li><li>| <a href="#v:OperatorXor">OperatorXor</a></li><li>| <a href="#v:OperatorAdd">OperatorAdd</a></li><li>| <a href="#v:OperatorSaturate">OperatorSaturate</a></li><li>| <a href="#v:OperatorMultiply">OperatorMultiply</a></li><li>| <a href="#v:OperatorScreen">OperatorScreen</a></li><li>| <a href="#v:OperatorOverlay">OperatorOverlay</a></li><li>| <a href="#v:OperatorDarken">OperatorDarken</a></li><li>| <a href="#v:OperatorLighten">OperatorLighten</a></li><li>| <a href="#v:OperatorColorDodge">OperatorColorDodge</a></li><li>| <a href="#v:OperatorColorBurn">OperatorColorBurn</a></li><li>| <a href="#v:OperatorHardLight">OperatorHardLight</a></li><li>| <a href="#v:OperatorSoftLight">OperatorSoftLight</a></li><li>| <a href="#v:OperatorDifference">OperatorDifference</a></li><li>| <a href="#v:OperatorExclusion">OperatorExclusion</a></li><li>| <a href="#v:OperatorHslHue">OperatorHslHue</a></li><li>| <a href="#v:OperatorHslSaturation">OperatorHslSaturation</a></li><li>| <a href="#v:OperatorHslColor">OperatorHslColor</a></li><li>| <a href="#v:OperatorHslLuminosity">OperatorHslLuminosity</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Antialias">Antialias</a><ul class="subs"><li>= <a href="#v:AntialiasDefault">AntialiasDefault</a></li><li>| <a href="#v:AntialiasNone">AntialiasNone</a></li><li>| <a href="#v:AntialiasGray">AntialiasGray</a></li><li>| <a href="#v:AntialiasSubpixel">AntialiasSubpixel</a></li><li>| <a href="#v:AntialiasFast">AntialiasFast</a></li><li>| <a href="#v:AntialiasGood">AntialiasGood</a></li><li>| <a href="#v:AntialiasBest">AntialiasBest</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:FillRule">FillRule</a><ul class="subs"><li>= <a href="#v:FillRuleWinding">FillRuleWinding</a></li><li>| <a href="#v:FillRuleEvenOdd">FillRuleEvenOdd</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:LineCap">LineCap</a><ul class="subs"><li>= <a href="#v:LineCapButt">LineCapButt</a></li><li>| <a href="#v:LineCapRound">LineCapRound</a></li><li>| <a href="#v:LineCapSquare">LineCapSquare</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:LineJoin">LineJoin</a><ul class="subs"><li>= <a href="#v:LineJoinMiter">LineJoinMiter</a></li><li>| <a href="#v:LineJoinRound">LineJoinRound</a></li><li>| <a href="#v:LineJoinBevel">LineJoinBevel</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:ScaledFont">ScaledFont</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:FontFace">FontFace</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Glyph">Glyph</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:TextExtents">TextExtents</a> = <a href="#v:TextExtents">TextExtents</a> {<ul class="subs"><li><a href="#v:textExtentsXbearing">textExtentsXbearing</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></li><li><a href="#v:textExtentsYbearing">textExtentsYbearing</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></li><li><a href="#v:textExtentsWidth">textExtentsWidth</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></li><li><a href="#v:textExtentsHeight">textExtentsHeight</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></li><li><a href="#v:textExtentsXadvance">textExtentsXadvance</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></li><li><a href="#v:textExtentsYadvance">textExtentsYadvance</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:FontExtents">FontExtents</a> = <a href="#v:FontExtents">FontExtents</a> {<ul class="subs"><li><a href="#v:fontExtentsAscent">fontExtentsAscent</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></li><li><a href="#v:fontExtentsDescent">fontExtentsDescent</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></li><li><a href="#v:fontExtentsHeight">fontExtentsHeight</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></li><li><a href="#v:fontExtentsMaxXadvance">fontExtentsMaxXadvance</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></li><li><a href="#v:fontExtentsMaxYadvance">fontExtentsMaxYadvance</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:FontSlant">FontSlant</a><ul class="subs"><li>= <a href="#v:FontSlantNormal">FontSlantNormal</a></li><li>| <a href="#v:FontSlantItalic">FontSlantItalic</a></li><li>| <a href="#v:FontSlantOblique">FontSlantOblique</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:FontWeight">FontWeight</a><ul class="subs"><li>= <a href="#v:FontWeightNormal">FontWeightNormal</a></li><li>| <a href="#v:FontWeightBold">FontWeightBold</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:SubpixelOrder">SubpixelOrder</a><ul class="subs"><li>= <a href="#v:SubpixelOrderDefault">SubpixelOrderDefault</a></li><li>| <a href="#v:SubpixelOrderRgb">SubpixelOrderRgb</a></li><li>| <a href="#v:SubpixelOrderBgr">SubpixelOrderBgr</a></li><li>| <a href="#v:SubpixelOrderVrgb">SubpixelOrderVrgb</a></li><li>| <a href="#v:SubpixelOrderVbgr">SubpixelOrderVbgr</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:HintStyle">HintStyle</a><ul class="subs"><li>= <a href="#v:HintStyleDefault">HintStyleDefault</a></li><li>| <a href="#v:HintStyleNone">HintStyleNone</a></li><li>| <a href="#v:HintStyleSlight">HintStyleSlight</a></li><li>| <a href="#v:HintStyleMedium">HintStyleMedium</a></li><li>| <a href="#v:HintStyleFull">HintStyleFull</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:HintMetrics">HintMetrics</a><ul class="subs"><li>= <a href="#v:HintMetricsDefault">HintMetricsDefault</a></li><li>| <a href="#v:HintMetricsOff">HintMetricsOff</a></li><li>| <a href="#v:HintMetricsOn">HintMetricsOn</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:FontOptions">FontOptions</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Path">Path</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:RectangleInt">RectangleInt</a> = <a href="#v:RectangleInt">RectangleInt</a> {<ul class="subs"><li><a href="#v:x">x</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></li><li><a href="#v:y">y</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></li><li><a href="#v:width">width</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></li><li><a href="#v:height">height</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:RegionOverlap">RegionOverlap</a><ul class="subs"><li>= <a href="#v:RegionOverlapIn">RegionOverlapIn</a></li><li>| <a href="#v:RegionOverlapOut">RegionOverlapOut</a></li><li>| <a href="#v:RegionOverlapPart">RegionOverlapPart</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Region">Region</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Content">Content</a><ul class="subs"><li>= <a href="#v:ContentColor">ContentColor</a></li><li>| <a href="#v:ContentAlpha">ContentAlpha</a></li><li>| <a href="#v:ContentColorAlpha">ContentColorAlpha</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Format">Format</a><ul class="subs"><li>= <a href="#v:FormatARGB32">FormatARGB32</a></li><li>| <a href="#v:FormatRGB24">FormatRGB24</a></li><li>| <a href="#v:FormatA8">FormatA8</a></li><li>| <a href="#v:FormatA1">FormatA1</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Extend">Extend</a><ul class="subs"><li>= <a href="#v:ExtendNone">ExtendNone</a></li><li>| <a href="#v:ExtendRepeat">ExtendRepeat</a></li><li>| <a href="#v:ExtendReflect">ExtendReflect</a></li><li>| <a href="#v:ExtendPad">ExtendPad</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Filter">Filter</a><ul class="subs"><li>= <a href="#v:FilterFast">FilterFast</a></li><li>| <a href="#v:FilterGood">FilterGood</a></li><li>| <a href="#v:FilterBest">FilterBest</a></li><li>| <a href="#v:FilterNearest">FilterNearest</a></li><li>| <a href="#v:FilterBilinear">FilterBilinear</a></li><li>| <a href="#v:FilterGaussian">FilterGaussian</a></li></ul></li></ul></div><div id="interface"><h1 id="g:1">Drawing</h1><div class="top"><p class="src"><a name="v:renderWith" class="def">renderWith</a> <a href="src/Graphics-Rendering-Cairo.html#renderWith" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></td><td class="doc"><p>the target surface for the Render context</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</td><td class="doc empty"> </td></tr><tr><td class="src">-> m a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Creates a new Render context with all graphics state parameters set to
default values and with the given surface as a target surface. The target
surface should be constructed with a backend-specific function such as
<code><a href="Graphics-Rendering-Cairo.html#v:withImageSurface">withImageSurface</a></code> (or any other with<backend>Surface variant).</p></div></div><div class="top"><p class="src"><a name="v:save" class="def">save</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#save" class="link">Source</a></p><div class="doc"><p>Makes a copy of the current state and saves it on an internal stack of
saved states. When <code><a href="Graphics-Rendering-Cairo.html#v:restore">restore</a></code> is called, the saved state is restored.
Multiple calls to <code><a href="Graphics-Rendering-Cairo.html#v:save">save</a></code> and <code><a href="Graphics-Rendering-Cairo.html#v:restore">restore</a></code> can be nested; each call to <code><a href="Graphics-Rendering-Cairo.html#v:restore">restore</a></code>
restores the state from the matching paired <code><a href="Graphics-Rendering-Cairo.html#v:save">save</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:restore" class="def">restore</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#restore" class="link">Source</a></p><div class="doc"><p>Restores to the state saved by a preceding call to <code><a href="Graphics-Rendering-Cairo.html#v:save">save</a></code> and removes that
state from the stack of saved states.</p></div></div><div class="top"><p class="src"><a name="v:status" class="def">status</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:Status">Status</a> <a href="src/Graphics-Rendering-Cairo.html#status" class="link">Source</a></p><div class="doc"><p>Ask for the status of the current <code><a href="Graphics-Rendering-Cairo.html#t:Render">Render</a></code> monad.</p></div></div><div class="top"><p class="src"><a name="v:withTargetSurface" class="def">withTargetSurface</a> :: (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a) -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a <a href="src/Graphics-Rendering-Cairo.html#withTargetSurface" class="link">Source</a></p><div class="doc"><p>Gets the target surface for the Render context as passed to <code><a href="Graphics-Rendering-Cairo.html#v:renderWith">renderWith</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:pushGroup" class="def">pushGroup</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#pushGroup" class="link">Source</a></p><div class="doc"><p>Like <code>pushGroupWithContent ContentColorAlpha</code>, but more convenient.</p></div></div><div class="top"><p class="src"><a name="v:pushGroupWithContent" class="def">pushGroupWithContent</a> :: <a href="Graphics-Rendering-Cairo.html#t:Content">Content</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#pushGroupWithContent" class="link">Source</a></p><div class="doc"><p>Temporarily redirects drawing to an intermediate surface known as a group.
The redirection lasts until the group is completed by a call to
<code><a href="Graphics-Rendering-Cairo.html#v:withGroupPattern">withGroupPattern</a></code> or <code><a href="Graphics-Rendering-Cairo.html#v:popGroupToSource">popGroupToSource</a></code>. These calls provide the result of
any drawing to the group as a pattern (either as an explicit object, or set
as the source pattern). This group functionality can be convenient for
performing intermediate compositing. One common use of a group is to render
objects as opaque within the group (so that they occlude each other), and
then blend the result with translucence onto the destination.</p><p>Groups can be nested arbitrarily deeply by making balanced calls to
<code><a href="Graphics-Rendering-Cairo.html#v:pushGroupWithContent">pushGroupWithContent</a></code> and <code><a href="Graphics-Rendering-Cairo.html#v:withGroupPattern">withGroupPattern</a></code>. As a side effect,
<code><a href="Graphics-Rendering-Cairo.html#v:pushGroupWithContent">pushGroupWithContent</a></code> calls <code><a href="Graphics-Rendering-Cairo.html#v:save">save</a></code> and <code><a href="Graphics-Rendering-Cairo.html#v:withGroupPattern">withGroupPattern</a></code> calls <code><a href="Graphics-Rendering-Cairo.html#v:restore">restore</a></code>,
so that any changes to the graphics state will not be visible outside the
group.</p><p>As an example, here is how one might fill and stroke a path with
translucence, but without any portion of the fill being visible under the
stroke:</p><pre>pushGroup
setSource fillPattern
fillPreserve
setSource strokePattern
stroke
popGroupToSource
paintWithAlpha alpha</pre></div></div><div class="top"><p class="src"><a name="v:popGroupToSource" class="def">popGroupToSource</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#popGroupToSource" class="link">Source</a></p><div class="doc"><p>Like <code>withGroupPattern setSource</code>, but more convenient.</p></div></div><div class="top"><p class="src"><a name="v:setSourceRGB" class="def">setSourceRGB</a> <a href="src/Graphics-Rendering-Cairo.html#setSourceRGB" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>red component of colour</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>green component of colour</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>blue compoment of colour</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Sets the source pattern within the context to an opaque color. This opaque
color will then be used for any subsequent drawing operation until a new source
pattern is set.</p><p>The color components are floating point numbers in the range 0 to 1. If the
values passed in are outside that range, they will be clamped.</p></div></div><div class="top"><p class="src"><a name="v:setSourceRGBA" class="def">setSourceRGBA</a> <a href="src/Graphics-Rendering-Cairo.html#setSourceRGBA" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>red component of color</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>green component of color</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>blue component of color</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>alpha component of color</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Sets the source pattern within the context to a translucent color. This
color will then be used for any subsequent drawing operation until a new
source pattern is set.</p><p>The color and alpha components are floating point numbers in the range 0 to
1. If the values passed in are outside that range, they will be clamped.</p></div></div><div class="top"><p class="src"><a name="v:setSource" class="def">setSource</a> <a href="src/Graphics-Rendering-Cairo.html#setSource" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></td><td class="doc"><p>a <code><a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></code> to be used as the source for subsequent drawing
operations.</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Sets the source pattern within the context to source. This pattern will
then be used for any subsequent drawing operation until a new source pattern
is set.</p><p>Note: The pattern's transformation matrix will be locked to the user space
in effect at the time of <code><a href="Graphics-Rendering-Cairo.html#v:setSource">setSource</a></code>. This means that further
modifications of the current transformation matrix will not affect the source
pattern. See <code><a href="Graphics-Rendering-Cairo.html#v:setMatrix">setMatrix</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:setSourceSurface" class="def">setSourceSurface</a> <a href="src/Graphics-Rendering-Cairo.html#setSourceSurface" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></td><td class="doc"><p>a surface to be used to set the source pattern</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>user-space X coordinate for surface origin</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>user-space Y coordinate for surface origin</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>This is a convenience function for creating a pattern from surface and
setting it as the source in the context with <code><a href="Graphics-Rendering-Cairo.html#v:setSource">setSource</a></code>.</p><p>The x and y parameters give the user-space coordinate at which the surface
origin should appear. (The surface origin is its upper-left corner before any
transformation has been applied.) The x and y patterns are negated and then
set as translation values in the pattern matrix.</p><p>Other than the initial translation pattern matrix, as described above, all
other pattern attributes, (such as its extend mode), are set to the default
values as in <code>patternCreateForSurface</code>. The resulting pattern can be queried
with <code><a href="Graphics-Rendering-Cairo.html#v:getSource">getSource</a></code> so that these attributes can be modified if desired, (eg. to
create a repeating pattern with <code>patternSetExtent</code>.</p></div></div><div class="top"><p class="src"><a name="v:getSource" class="def">getSource</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> <a href="src/Graphics-Rendering-Cairo.html#getSource" class="link">Source</a></p><div class="doc"><p>Gets the current source pattern.</p></div></div><div class="top"><p class="src"><a name="v:setAntialias" class="def">setAntialias</a> <a href="src/Graphics-Rendering-Cairo.html#setAntialias" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:Antialias">Antialias</a></td><td class="doc"><p>the new antialiasing mode</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Set the antialiasing mode of the rasterizer used for drawing shapes. This
value is a hint, and a particular backend may or may not support a particular
value. At the current time, no backend supports <code><a href="Graphics-Rendering-Cairo.html#v:AntialiasSubpixel">AntialiasSubpixel</a></code> when
drawing shapes.</p><p>Note that this option does not affect text rendering, instead see
<code>fontOptionsSetAntilias</code>.</p></div></div><div class="top"><p class="src"><a name="v:setDash" class="def">setDash</a> <a href="src/Graphics-Rendering-Cairo.html#setDash" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>]</td><td class="doc"><p><code>dashes</code> a list specifying alternate lengths of on and off
portions of the stroke</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>an offset into the dash pattern at which the stroke should
start</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Sets the dash pattern to be used by <code><a href="Graphics-Rendering-Cairo.html#v:stroke">stroke</a></code>. A dash pattern is specified
by dashes, a list of positive values. Each value provides the user-space
length of altenate "on" and "off" portions of the stroke. The offset
specifies an offset into the pattern at which the stroke begins.</p><p>If <code>dashes</code> is <code>[]</code> then dashing is disabled.</p></div></div><div class="top"><p class="src"><a name="v:setFillRule" class="def">setFillRule</a> <a href="src/Graphics-Rendering-Cairo.html#setFillRule" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:FillRule">FillRule</a></td><td class="doc"><p>a fill rule</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Set the current fill rule within the cairo context. The fill rule is used
to determine which regions are inside or outside a complex (potentially
self-intersecting) path. The current fill rule affects both <code><a href="Graphics-Rendering-Cairo.html#v:fill">fill</a></code> and
<code><a href="Graphics-Rendering-Cairo.html#v:clip">clip</a></code>. See <code><a href="Graphics-Rendering-Cairo.html#t:FillRule">FillRule</a></code> for details on the semantics of each available fill
rule.</p></div></div><div class="top"><p class="src"><a name="v:getFillRule" class="def">getFillRule</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:FillRule">FillRule</a> <a href="src/Graphics-Rendering-Cairo.html#getFillRule" class="link">Source</a></p><div class="doc"><p>Gets the current fill rule, as set by <code>setFillrule</code>.</p></div></div><div class="top"><p class="src"><a name="v:setLineCap" class="def">setLineCap</a> <a href="src/Graphics-Rendering-Cairo.html#setLineCap" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:LineCap">LineCap</a></td><td class="doc"><p>a line cap style</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Sets the current line cap style within the cairo context. See <code><a href="Graphics-Rendering-Cairo.html#t:LineCap">LineCap</a></code>
for details about how the available line cap styles are drawn.</p><p>As with the other stroke parameters, the current line cap style is examined
by <code><a href="Graphics-Rendering-Cairo.html#v:stroke">stroke</a></code>, <code><a href="Graphics-Rendering-Cairo.html#v:strokeExtents">strokeExtents</a></code>, and <code>strokeToPath</code>, but does not have any
effect during path construction.</p></div></div><div class="top"><p class="src"><a name="v:getLineCap" class="def">getLineCap</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:LineCap">LineCap</a> <a href="src/Graphics-Rendering-Cairo.html#getLineCap" class="link">Source</a></p><div class="doc"><p>Gets the current line cap style, as set by <code><a href="Graphics-Rendering-Cairo.html#v:setLineCap">setLineCap</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:setLineJoin" class="def">setLineJoin</a> <a href="src/Graphics-Rendering-Cairo.html#setLineJoin" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:LineJoin">LineJoin</a></td><td class="doc"><p>a line joint style</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Sets the current line join style within the cairo context. See <code><a href="Graphics-Rendering-Cairo.html#t:LineJoin">LineJoin</a></code>
for details about how the available line join styles are drawn.</p><p>As with the other stroke parameters, the current line join style is examined
by <code><a href="Graphics-Rendering-Cairo.html#v:stroke">stroke</a></code>, <code><a href="Graphics-Rendering-Cairo.html#v:strokeExtents">strokeExtents</a></code>, and <code>strokeToPath</code>, but does not have any
effect during path construction.</p></div></div><div class="top"><p class="src"><a name="v:getLineJoin" class="def">getLineJoin</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:LineJoin">LineJoin</a> <a href="src/Graphics-Rendering-Cairo.html#getLineJoin" class="link">Source</a></p><div class="doc"><p>Gets the current line join style, as set by <code><a href="Graphics-Rendering-Cairo.html#v:setLineJoin">setLineJoin</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:setLineWidth" class="def">setLineWidth</a> <a href="src/Graphics-Rendering-Cairo.html#setLineWidth" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>a line width</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Sets the current line width within the cairo context. The line width
specifies the diameter of a pen that is circular in user-space.</p><p>As with the other stroke parameters, the current line cap style is examined
by <code><a href="Graphics-Rendering-Cairo.html#v:stroke">stroke</a></code>, <code><a href="Graphics-Rendering-Cairo.html#v:strokeExtents">strokeExtents</a></code>, and <code>strokeToPath</code>, but does not have any
effect during path construction.</p></div></div><div class="top"><p class="src"><a name="v:getLineWidth" class="def">getLineWidth</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> <a href="src/Graphics-Rendering-Cairo.html#getLineWidth" class="link">Source</a></p><div class="doc"><p>Gets the current line width, as set by <code><a href="Graphics-Rendering-Cairo.html#v:setLineWidth">setLineWidth</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:setMiterLimit" class="def">setMiterLimit</a> <a href="src/Graphics-Rendering-Cairo.html#setMiterLimit" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><ul><li></li></ul></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a name="v:getMiterLimit" class="def">getMiterLimit</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> <a href="src/Graphics-Rendering-Cairo.html#getMiterLimit" class="link">Source</a></p><div class="doc"><p>Gets the current miter limit, as set by <code><a href="Graphics-Rendering-Cairo.html#v:setMiterLimit">setMiterLimit</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:setOperator" class="def">setOperator</a> <a href="src/Graphics-Rendering-Cairo.html#setOperator" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:Operator">Operator</a></td><td class="doc"><p>a compositing operator</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Sets the compositing operator to be used for all drawing operations.
See <code><a href="Graphics-Rendering-Cairo.html#t:Operator">Operator</a></code> for details on the semantics of each available compositing
operator.</p></div></div><div class="top"><p class="src"><a name="v:getOperator" class="def">getOperator</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:Operator">Operator</a> <a href="src/Graphics-Rendering-Cairo.html#getOperator" class="link">Source</a></p><div class="doc"><p>Gets the current compositing operator for a cairo context.</p></div></div><div class="top"><p class="src"><a name="v:setTolerance" class="def">setTolerance</a> <a href="src/Graphics-Rendering-Cairo.html#setTolerance" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>the tolerance, in device units (typically pixels)</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Sets the tolerance used when converting paths into trapezoids. Curved
segments of the path will be subdivided until the maximum deviation between
the original path and the polygonal approximation is less than tolerance.
The default value is 0.1. A larger value will give better performance,
a smaller value, better appearance. (Reducing the value from the default
value of 0.1 is unlikely to improve appearance significantly.)</p></div></div><div class="top"><p class="src"><a name="v:getTolerance" class="def">getTolerance</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> <a href="src/Graphics-Rendering-Cairo.html#getTolerance" class="link">Source</a></p><div class="doc"><p>Gets the current tolerance value, as set by <code><a href="Graphics-Rendering-Cairo.html#v:setTolerance">setTolerance</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:clip" class="def">clip</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#clip" class="link">Source</a></p><div class="doc"><p>Establishes a new clip region by intersecting the current clip region with
the current path as it would be filled by <code><a href="Graphics-Rendering-Cairo.html#v:fill">fill</a></code> and according to the current
fill rule (see <code><a href="Graphics-Rendering-Cairo.html#v:setFillRule">setFillRule</a></code>).</p><p>After <code><a href="Graphics-Rendering-Cairo.html#v:clip">clip</a></code>, the current path will be cleared from the cairo context.</p><p>The current clip region affects all drawing operations by effectively masking
out any changes to the surface that are outside the current clip region.</p><p>Calling <code><a href="Graphics-Rendering-Cairo.html#v:clip">clip</a></code> can only make the clip region smaller, never larger. But the
current clip is part of the graphics state, so a temporary restriction of the
clip region can be achieved by calling <code><a href="Graphics-Rendering-Cairo.html#v:clip">clip</a></code> within a 'save'/'restore' pair.
The only other means of increasing the size of the clip region is <code><a href="Graphics-Rendering-Cairo.html#v:resetClip">resetClip</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:clipPreserve" class="def">clipPreserve</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#clipPreserve" class="link">Source</a></p><div class="doc"><p>Establishes a new clip region by intersecting the current clip region with
the current path as it would be filled by <code><a href="Graphics-Rendering-Cairo.html#v:fill">fill</a></code> and according to the current
fill rule (see <code><a href="Graphics-Rendering-Cairo.html#v:setFillRule">setFillRule</a></code>).</p><p>Unlike <code><a href="Graphics-Rendering-Cairo.html#v:clip">clip</a></code>, cairoClipPreserve preserves the path within the cairo context.</p><p>The current clip region affects all drawing operations by effectively masking
out any changes to the surface that are outside the current clip region.</p><p>Calling <code><a href="Graphics-Rendering-Cairo.html#v:clip">clip</a></code> can only make the clip region smaller, never larger. But the
current clip is part of the graphics state, so a temporary restriction of the
clip region can be achieved by calling <code><a href="Graphics-Rendering-Cairo.html#v:clip">clip</a></code> within a 'save'/'restore' pair.
The only other means of increasing the size of the clip region is <code><a href="Graphics-Rendering-Cairo.html#v:resetClip">resetClip</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:clipExtents" class="def">clipExtents</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>) <a href="src/Graphics-Rendering-Cairo.html#clipExtents" class="link">Source</a></p><div class="doc"><p>Computes a bounding box in user coordinates covering the area
inside the current clip.</p></div></div><div class="top"><p class="src"><a name="v:resetClip" class="def">resetClip</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#resetClip" class="link">Source</a></p><div class="doc"><p>Reset the current clip region to its original, unrestricted state. That is,
set the clip region to an infinitely large shape containing the target
surface. Equivalently, if infinity is too hard to grasp, one can imagine the
clip region being reset to the exact bounds of the target surface.</p><p>Note that code meant to be reusable should not call <code><a href="Graphics-Rendering-Cairo.html#v:resetClip">resetClip</a></code> as it will
cause results unexpected by higher-level code which calls <code><a href="Graphics-Rendering-Cairo.html#v:clip">clip</a></code>. Consider
using <code><a href="Graphics-Rendering-Cairo.html#v:save">save</a></code> and <code><a href="Graphics-Rendering-Cairo.html#v:restore">restore</a></code> around <code><a href="Graphics-Rendering-Cairo.html#v:clip">clip</a></code> as a more robust means of
temporarily restricting the clip region.</p></div></div><div class="top"><p class="src"><a name="v:fill" class="def">fill</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#fill" class="link">Source</a></p><div class="doc"><p>A drawing operator that fills the current path according to the current
fill rule, (each sub-path is implicitly closed before being filled).
After <code><a href="Graphics-Rendering-Cairo.html#v:fill">fill</a></code>, the current path will be cleared from the cairo context.</p><p>See <code><a href="Graphics-Rendering-Cairo.html#v:setFillRule">setFillRule</a></code> and <code><a href="Graphics-Rendering-Cairo.html#v:fillPreserve">fillPreserve</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:fillPreserve" class="def">fillPreserve</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#fillPreserve" class="link">Source</a></p><div class="doc"><p>A drawing operator that fills the current path according to the current
fill rule, (each sub-path is implicitly closed before being filled).
Unlike <code><a href="Graphics-Rendering-Cairo.html#v:fill">fill</a></code>, <code><a href="Graphics-Rendering-Cairo.html#v:fillPreserve">fillPreserve</a></code> preserves the path within the cairo context.</p><p>See <code><a href="Graphics-Rendering-Cairo.html#v:setFillRule">setFillRule</a></code> and <code><a href="Graphics-Rendering-Cairo.html#v:fill">fill</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:fillExtents" class="def">fillExtents</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>) <a href="src/Graphics-Rendering-Cairo.html#fillExtents" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:inFill" class="def">inFill</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/Graphics-Rendering-Cairo.html#inFill" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:mask" class="def">mask</a> <a href="src/Graphics-Rendering-Cairo.html#mask" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></td><td class="doc"><p>a <code><a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></code></p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>A drawing operator that paints the current source using the alpha channel
of pattern as a mask. (Opaque areas of mask are painted with the source,
transparent areas are not painted.)</p></div></div><div class="top"><p class="src"><a name="v:maskSurface" class="def">maskSurface</a> <a href="src/Graphics-Rendering-Cairo.html#maskSurface" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></td><td class="doc"><p>a <code><a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></code></p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>X coordinate at which to place the origin of surface</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>Y coordinate at which to place the origin of surface</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>A drawing operator that paints the current source using the alpha channel
of surface as a mask. (Opaque areas of surface are painted with the source,
transparent areas are not painted.)</p></div></div><div class="top"><p class="src"><a name="v:paint" class="def">paint</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#paint" class="link">Source</a></p><div class="doc"><p>A drawing operator that paints the current source everywhere within the
current clip region.</p></div></div><div class="top"><p class="src"><a name="v:paintWithAlpha" class="def">paintWithAlpha</a> <a href="src/Graphics-Rendering-Cairo.html#paintWithAlpha" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>alpha value, between 0 (transparent) and 1 (opaque)</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>A drawing operator that paints the current source everywhere within the
current clip region using a mask of constant alpha value alpha. The effect
is similar to <code><a href="Graphics-Rendering-Cairo.html#v:paint">paint</a></code>, but the drawing is faded out using the alpha value.</p></div></div><div class="top"><p class="src"><a name="v:stroke" class="def">stroke</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#stroke" class="link">Source</a></p><div class="doc"><p>A drawing operator that strokes the current path according to the current
line width, line join, line cap, and dash settings. After issuing <code><a href="Graphics-Rendering-Cairo.html#v:stroke">stroke</a></code>,
the current path will be cleared from the <code><a href="Graphics-Rendering-Cairo.html#t:Render">Render</a></code> monad.</p><p>See <code><a href="Graphics-Rendering-Cairo.html#v:setLineWidth">setLineWidth</a></code>, <code><a href="Graphics-Rendering-Cairo.html#v:setLineJoin">setLineJoin</a></code>, <code><a href="Graphics-Rendering-Cairo.html#v:setLineCap">setLineCap</a></code>, <code><a href="Graphics-Rendering-Cairo.html#v:setDash">setDash</a></code>, and <code><a href="Graphics-Rendering-Cairo.html#v:strokePreserve">strokePreserve</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:strokePreserve" class="def">strokePreserve</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#strokePreserve" class="link">Source</a></p><div class="doc"><p>A drawing operator that strokes the current path according to the current
line width, line join, line cap, and dash settings. Unlike <code><a href="Graphics-Rendering-Cairo.html#v:stroke">stroke</a></code>,
<code><a href="Graphics-Rendering-Cairo.html#v:strokePreserve">strokePreserve</a></code> preserves the path within the <code><a href="Graphics-Rendering-Cairo.html#t:Render">Render</a></code> monad.</p><p>See <code><a href="Graphics-Rendering-Cairo.html#v:setLineWidth">setLineWidth</a></code>, <code><a href="Graphics-Rendering-Cairo.html#v:setLineJoin">setLineJoin</a></code>, <code><a href="Graphics-Rendering-Cairo.html#v:setLineCap">setLineCap</a></code>, <code><a href="Graphics-Rendering-Cairo.html#v:setDash">setDash</a></code>, and <code><a href="Graphics-Rendering-Cairo.html#v:strokePreserve">strokePreserve</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:strokeExtents" class="def">strokeExtents</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>) <a href="src/Graphics-Rendering-Cairo.html#strokeExtents" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:inStroke" class="def">inStroke</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/Graphics-Rendering-Cairo.html#inStroke" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:copyPage" class="def">copyPage</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#copyPage" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:showPage" class="def">showPage</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#showPage" class="link">Source</a></p></div><h2 id="g:2">Paths</h2><div class="top"><p class="src"><a name="v:getCurrentPoint" class="def">getCurrentPoint</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>) <a href="src/Graphics-Rendering-Cairo.html#getCurrentPoint" class="link">Source</a></p><div class="doc"><p>Gets the current point of the current path, which is conceptually the final
point reached by the path so far.</p><p>The current point is returned in the user-space coordinate system. If there
is no defined current point then x and y will both be set to 0.0.</p><p>Most path construction functions alter the current point. See the following
for details on how they affect the current point: <code><a href="Graphics-Rendering-Cairo.html#v:newPath">newPath</a></code>, <code><a href="Graphics-Rendering-Cairo.html#v:moveTo">moveTo</a></code>,
<code><a href="Graphics-Rendering-Cairo.html#v:lineTo">lineTo</a></code>, <code><a href="Graphics-Rendering-Cairo.html#v:curveTo">curveTo</a></code>, <code><a href="Graphics-Rendering-Cairo.html#v:arc">arc</a></code>, <code><a href="Graphics-Rendering-Cairo.html#v:relMoveTo">relMoveTo</a></code>, <code><a href="Graphics-Rendering-Cairo.html#v:relLineTo">relLineTo</a></code>, <code><a href="Graphics-Rendering-Cairo.html#v:relCurveTo">relCurveTo</a></code>,
<code><a href="Graphics-Rendering-Cairo.html#v:arcNegative">arcNegative</a></code>, <code><a href="Graphics-Rendering-Cairo.html#v:textPath">textPath</a></code>, <code>strokeToPath</code>.</p></div></div><div class="top"><p class="src"><a name="v:newPath" class="def">newPath</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#newPath" class="link">Source</a></p><div class="doc"><p>Clears the current path. After this call there will be no current point.</p></div></div><div class="top"><p class="src"><a name="v:closePath" class="def">closePath</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#closePath" class="link">Source</a></p><div class="doc"><p>Adds a line segment to the path from the current point to the beginning of
the current subpath, (the most recent point passed to <code><a href="Graphics-Rendering-Cairo.html#v:moveTo">moveTo</a></code>), and closes
this subpath.</p><p>The behavior of <code><a href="Graphics-Rendering-Cairo.html#v:closePath">closePath</a></code> is distinct from simply calling <code><a href="Graphics-Rendering-Cairo.html#v:lineTo">lineTo</a></code> with the
equivalent coordinate in the case of stroking. When a closed subpath is
stroked, there are no caps on the ends of the subpath. Instead, their is a
line join connecting the final and initial segments of the subpath.</p></div></div><div class="top"><p class="src"><a name="v:arc" class="def">arc</a> <a href="src/Graphics-Rendering-Cairo.html#arc" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>xc</code> - X position of the center of the arc</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>yc</code> - Y position of the center of the arc</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>radius</code> - the radius of the arc</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>angle1</code> - the start angle, in radians</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>angle2</code> - the end angle, in radians</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Adds a circular arc of the given radius to the current path. The arc is
centered at (<code>xc</code>, <code>yc</code>), begins at <code>angle1</code> and proceeds in the direction of
increasing angles to end at <code>angle2</code>. If <code>angle2</code> is less than <code>angle1</code> it
will be progressively increased by <code>2*pi</code> until it is greater than <code>angle1</code>.</p><p>If there is a current point, an initial line segment will be added to the
path to connect the current point to the beginning of the arc.</p><p>Angles are measured in radians. An angle of 0 is in the direction of the
positive X axis (in user-space). An angle of <code>pi/2</code> radians (90 degrees) is in
the direction of the positive Y axis (in user-space). Angles increase in the
direction from the positive X axis toward the positive Y axis. So with the
default transformation matrix, angles increase in a clockwise direction.</p><p>(To convert from degrees to radians, use <code>degrees * (pi / 180)</code>.)</p><p>This function gives the arc in the direction of increasing angles; see
<code><a href="Graphics-Rendering-Cairo.html#v:arcNegative">arcNegative</a></code> to get the arc in the direction of decreasing angles.</p><p>The arc is circular in user-space. To achieve an elliptical arc, you can
scale the current transformation matrix by different amounts in the X and Y
directions. For example, to draw an ellipse in the box given by x, y, width,
height:</p><pre>save
translate (x + width / 2) (y + height / 2)
scale (1 / (height / 2.)) (1 / (width / 2))
arc 0 0 1 0 (2 * pi)
restore</pre></div></div><div class="top"><p class="src"><a name="v:arcNegative" class="def">arcNegative</a> <a href="src/Graphics-Rendering-Cairo.html#arcNegative" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>xc</code> - X position of the center of the arc</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>yc</code> - Y position of the center of the arc</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>radius</code> - the radius of the arc</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>angle1</code> - the start angle, in radians</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>angle2</code> - the end angle, in radians</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Adds a circular arc of the given radius to the current path. The arc is
centered at (<code>xc</code>, <code>yc</code>), begins at <code>angle1</code> and proceeds in the direction of
decreasing angles to end at <code>angle2</code>. If <code>angle2</code> is greater than <code>angle1</code> it
will be progressively decreased by 2*<code>pi</code> until it is greater than <code>angle1</code>.</p><p>See <code><a href="Graphics-Rendering-Cairo.html#v:arc">arc</a></code> for more details. This function differs only in the direction of
the arc between the two angles.</p></div></div><div class="top"><p class="src"><a name="v:curveTo" class="def">curveTo</a> <a href="src/Graphics-Rendering-Cairo.html#curveTo" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>x1</code> - the X coordinate of the first control point</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>y1</code> - the Y coordinate of the first control point</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>x2</code> - the X coordinate of the second control point</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>y2</code> - the Y coordinate of the second control point</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>x3</code> - the X coordinate of the end of the curve</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>y3</code> - the Y coordinate of the end of the curve</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Adds a cubic Bezier spline to the path from the current point to position
(<code>x3</code>, <code>y3</code>) in user-space coordinates, using (<code>x1</code>, <code>y1</code>) and (<code>x2</code>, <code>y2</code>)
as the control points. After this call the current point will be (<code>x3</code>, <code>y3</code>).</p></div></div><div class="top"><p class="src"><a name="v:lineTo" class="def">lineTo</a> <a href="src/Graphics-Rendering-Cairo.html#lineTo" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>x</code> - the X coordinate of the end of the new line</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>y</code> - the Y coordinate of the end of the new line</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Adds a line to the path from the current point to position (<code>x</code>, <code>y</code>) in
user-space coordinates. After this call the current point will be (<code>x</code>, <code>y</code>).</p></div></div><div class="top"><p class="src"><a name="v:moveTo" class="def">moveTo</a> <a href="src/Graphics-Rendering-Cairo.html#moveTo" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>x</code> - the X coordinate of the new position</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>y</code> - the Y coordinate of the new position</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>If the current subpath is not empty, begin a new subpath. After this call
the current point will be (<code>x</code>, <code>y</code>).</p></div></div><div class="top"><p class="src"><a name="v:rectangle" class="def">rectangle</a> <a href="src/Graphics-Rendering-Cairo.html#rectangle" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>x</code> - the X coordinate of the top left corner of the rectangle</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>y</code> - the Y coordinate of the top left corner of the rectangle</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>width</code> - the width of the rectangle</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>height</code> - the height of the rectangle</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Adds a closed-subpath rectangle of the given size to the current path at
position (<code>x</code>, <code>y</code>) in user-space coordinates.</p></div></div><div class="top"><p class="src"><a name="v:textPath" class="def">textPath</a> <a href="src/Graphics-Rendering-Cairo.html#textPath" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:CairoString">CairoString</a> string</td><td class="doc empty"> </td></tr><tr><td class="src">=> string</td><td class="doc"><ul><li></li></ul></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Render text at the current path.</p><ul><li>See <code><a href="Graphics-Rendering-Cairo.html#v:showText">showText</a></code> for why you should use Gtk functions.</li></ul></div></div><div class="top"><p class="src"><a name="v:relCurveTo" class="def">relCurveTo</a> <a href="src/Graphics-Rendering-Cairo.html#relCurveTo" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>dx1</code> - the X offset to the first control point</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>dy1</code> - the Y offset to the first control point</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>dx2</code> - the X offset to the second control point</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>dy2</code> - the Y offset to the second control point</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>dx3</code> - the X offset to the end of the curve</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>dy3</code> - the Y offset to the end of the curve</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Relative-coordinate version of <code><a href="Graphics-Rendering-Cairo.html#v:curveTo">curveTo</a></code>. All offsets are relative to the
current point. Adds a cubic Bezier spline to the path from the current point
to a point offset from the current point by (<code>dx3</code>, <code>dy3</code>), using points
offset by (<code>dx1</code>, <code>dy1</code>) and (<code>dx2</code>, <code>dy2</code>) as the control points. After this
call the current point will be offset by (<code>dx3</code>, <code>dy3</code>).</p><p>Given a current point of (x, y), relCurveTo <code>dx1</code> <code>dy1</code> <code>dx2</code> <code>dy2</code> <code>dx3</code> <code>dy3</code>
is logically equivalent to curveTo (x + <code>dx1</code>) (y + <code>dy1</code>) (x + <code>dx2</code>) (y + <code>dy2</code>) (x + <code>dx3</code>) (y + <code>dy3</code>).</p></div></div><div class="top"><p class="src"><a name="v:relLineTo" class="def">relLineTo</a> <a href="src/Graphics-Rendering-Cairo.html#relLineTo" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>dx</code> - the X offset to the end of the new line</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>dy</code> - the Y offset to the end of the new line</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Relative-coordinate version of <code><a href="Graphics-Rendering-Cairo.html#v:lineTo">lineTo</a></code>. Adds a line to the path from the
current point to a point that is offset from the current point by (<code>dx</code>, <code>dy</code>)
in user space. After this call the current point will be offset by (<code>dx</code>, <code>dy</code>).</p><p>Given a current point of (x, y), relLineTo <code>dx</code> <code>dy</code> is logically equivalent
to lineTo (x + <code>dx</code>) (y + <code>dy</code>).</p></div></div><div class="top"><p class="src"><a name="v:relMoveTo" class="def">relMoveTo</a> <a href="src/Graphics-Rendering-Cairo.html#relMoveTo" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>dx</code> - the X offset</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>dy</code> - the Y offset</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>If the current subpath is not empty, begin a new subpath. After this call
the current point will offset by (x, y).</p><p>Given a current point of (x, y), relMoveTo <code>dx</code> <code>dy</code> is logically equivalent
to moveTo (x + <code>dx</code>) (y + <code>dy</code>)</p></div></div><h2 id="g:3">Patterns</h2><div class="top"><p class="src"><a name="v:withRGBPattern" class="def">withRGBPattern</a> <a href="src/Graphics-Rendering-Cairo.html#withRGBPattern" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>red component of the color</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>green component of the color</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>blue component of the color</p></td></tr><tr><td class="src">-> (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a)</td><td class="doc"><p>a nested render action using the pattern</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Creates a new <code><a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></code> corresponding to an opaque color. The color
components are floating point numbers in the range 0 to 1. If the values
passed in are outside that range, they will be clamped.</p><p>For example to create a solid red pattern:</p><pre>withRBGPattern 1 0 0 $ do
...
...</pre></div></div><div class="top"><p class="src"><a name="v:withRGBAPattern" class="def">withRGBAPattern</a> <a href="src/Graphics-Rendering-Cairo.html#withRGBAPattern" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>red component of color</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>green component of color</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>blue component of color</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>alpha component of color</p></td></tr><tr><td class="src">-> (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a)</td><td class="doc"><p>a nested render action using the pattern</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Creates a new <code><a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></code> corresponding to a translucent color. The color
components are floating point numbers in the range 0 to 1. If the values
passed in are outside that range, they will be clamped.</p><p>For example to create a solid red pattern at 50% transparency:</p><pre>withRBGPattern 1 0 0 0.5 $ do
...
...</pre></div></div><div class="top"><p class="src"><a name="v:withPatternForSurface" class="def">withPatternForSurface</a> <a href="src/Graphics-Rendering-Cairo.html#withPatternForSurface" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a)</td><td class="doc"><p>a nested render action using the pattern</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Create a new <code><a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></code> for the given surface.</p></div></div><div class="top"><p class="src"><a name="v:withGroupPattern" class="def">withGroupPattern</a> <a href="src/Graphics-Rendering-Cairo.html#withGroupPattern" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a)</td><td class="doc"><p>a nested render action using the pattern</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Pop the current group from the group stack and use it as a pattern. The
group should be populated first by calling <code><a href="Graphics-Rendering-Cairo.html#v:pushGroup">pushGroup</a></code> or
<code><a href="Graphics-Rendering-Cairo.html#v:pushGroupWithContent">pushGroupWithContent</a></code> and doing some drawing operations. This also calls
<code><a href="Graphics-Rendering-Cairo.html#v:restore">restore</a></code> to balance the <code><a href="Graphics-Rendering-Cairo.html#v:save">save</a></code> called in <code><a href="Graphics-Rendering-Cairo.html#v:pushGroup">pushGroup</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:withLinearPattern" class="def">withLinearPattern</a> <a href="src/Graphics-Rendering-Cairo.html#withLinearPattern" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>x0</code> - x coordinate of the start point</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>y0</code> - y coordinate of the start point</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>x1</code> - x coordinate of the end point</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>y1</code> - y coordinate of the end point</p></td></tr><tr><td class="src">-> (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a)</td><td class="doc"><p>a nested render action using the pattern</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Create a new linear gradient <code><a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></code> along the line defined by <code>(x0, y0)</code>
and <code>(x1, y1)</code>. Before using the gradient pattern, a number of color stops
should be defined using <code><a href="Graphics-Rendering-Cairo.html#v:patternAddColorStopRGB">patternAddColorStopRGB</a></code> and <code><a href="Graphics-Rendering-Cairo.html#v:patternAddColorStopRGBA">patternAddColorStopRGBA</a></code>.</p><ul><li>Note: The coordinates here are in pattern space. For a new pattern,
pattern space is identical to user space, but the relationship between the
spaces can be changed with <code><a href="Graphics-Rendering-Cairo.html#v:patternSetMatrix">patternSetMatrix</a></code>.</li></ul></div></div><div class="top"><p class="src"><a name="v:withRadialPattern" class="def">withRadialPattern</a> <a href="src/Graphics-Rendering-Cairo.html#withRadialPattern" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>cx0</code> - x coordinate for the center of the start circle</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>cy0</code> - y coordinate for the center of the start circle</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>radius0</code> - radius of the start cirle</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>cx1</code> - x coordinate for the center of the end circle</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>cy1</code> - y coordinate for the center of the end circle</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>radius1</code> - radius of the end circle</p></td></tr><tr><td class="src">-> (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a)</td><td class="doc"><p>a nested render action using the pattern</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Creates a new radial gradient <code><a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></code> between the two circles defined by
<code>(x0, y0, c0)</code> and <code>(x1, y1, c0)</code>. Before using the gradient pattern, a
number of color stops should be defined using <code><a href="Graphics-Rendering-Cairo.html#v:patternAddColorStopRGB">patternAddColorStopRGB</a></code>
or <code><a href="Graphics-Rendering-Cairo.html#v:patternAddColorStopRGBA">patternAddColorStopRGBA</a></code>.</p><ul><li>Note: The coordinates here are in pattern space. For a new pattern,
pattern space is identical to user space, but the relationship between the
spaces can be changed with <code><a href="Graphics-Rendering-Cairo.html#v:patternSetMatrix">patternSetMatrix</a></code>.</li></ul></div></div><div class="top"><p class="src"><a name="v:patternAddColorStopRGB" class="def">patternAddColorStopRGB</a> <a href="src/Graphics-Rendering-Cairo.html#patternAddColorStopRGB" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></td><td class="doc"><p>a <code><a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></code></p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>an offset in the range [0.0 .. 1.0]</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>red component of color</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>green component of color</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>blue component of color</p></td></tr><tr><td class="src">-> m ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Adds an opaque color stop to a gradient pattern. The offset specifies the
location along the gradient's control vector. For example, a linear gradient's
control vector is from (x0,y0) to (x1,y1) while a radial gradient's control
vector is from any point on the start circle to the corresponding point on
the end circle.</p><p>The color is specified in the same way as in <code><a href="Graphics-Rendering-Cairo.html#v:setSourceRGB">setSourceRGB</a></code>.</p><p>Note: If the pattern is not a gradient pattern, (eg. a linear or radial
pattern), then the pattern will be put into an error status with a status of
<code><a href="Graphics-Rendering-Cairo.html#v:StatusPatternTypeMismatch">StatusPatternTypeMismatch</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:patternAddColorStopRGBA" class="def">patternAddColorStopRGBA</a> <a href="src/Graphics-Rendering-Cairo.html#patternAddColorStopRGBA" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></td><td class="doc"><p>a <code><a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></code></p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>an offset in the range [0.0 .. 1.0]</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>red component of color</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>green component of color</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>blue component of color</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>alpha component of color</p></td></tr><tr><td class="src">-> m ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Adds a translucent color stop to a gradient pattern. The offset specifies
the location along the gradient's control vector. For example, a linear
gradient's control vector is from (x0,y0) to (x1,y1) while a radial gradient's
control vector is from any point on the start circle to the corresponding
point on the end circle.</p><p>The color is specified in the same way as in setSourceRGBA.</p><p>Note: If the pattern is not a gradient pattern, (eg. a linear or radial
pattern), then the pattern will be put into an error status with a status of
<code><a href="Graphics-Rendering-Cairo.html#v:StatusPatternTypeMismatch">StatusPatternTypeMismatch</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:patternSetMatrix" class="def">patternSetMatrix</a> <a href="src/Graphics-Rendering-Cairo.html#patternSetMatrix" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></td><td class="doc"><p>a <code><a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></code></p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a></td><td class="doc"><p>a <code><a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a></code></p></td></tr><tr><td class="src">-> m ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Sets the pattern's transformation matrix to matrix. This matrix is a
transformation from user space to pattern space.</p><p>When a pattern is first created it always has the identity matrix for its
transformation matrix, which means that pattern space is initially identical
to user space.</p><p>Important: Please note that the direction of this transformation matrix is
from user space to pattern space. This means that if you imagine the flow
from a pattern to user space (and on to device space), then coordinates in
that flow will be transformed by the inverse of the pattern matrix.</p><p>Also, please note the discussion of the user-space locking semantics of <code><a href="Graphics-Rendering-Cairo.html#v:setSource">setSource</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:patternGetMatrix" class="def">patternGetMatrix</a> <a href="src/Graphics-Rendering-Cairo.html#patternGetMatrix" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></td><td class="doc"><p>a <code><a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></code></p></td></tr><tr><td class="src">-> m <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Get the pattern's transformation matrix.</p></div></div><div class="top"><p class="src"><a name="v:patternSetExtend" class="def">patternSetExtend</a> <a href="src/Graphics-Rendering-Cairo.html#patternSetExtend" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></td><td class="doc"><p>a <code><a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></code></p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Extend">Extend</a></td><td class="doc"><p>an <code>Extent</code></p></td></tr><tr><td class="src">-> m ()</td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a name="v:patternGetExtend" class="def">patternGetExtend</a> <a href="src/Graphics-Rendering-Cairo.html#patternGetExtend" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></td><td class="doc"><p>a <code><a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></code></p></td></tr><tr><td class="src">-> m <a href="Graphics-Rendering-Cairo.html#t:Extend">Extend</a></td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a name="v:patternSetFilter" class="def">patternSetFilter</a> <a href="src/Graphics-Rendering-Cairo.html#patternSetFilter" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></td><td class="doc"><p>a <code><a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></code></p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Filter">Filter</a></td><td class="doc"><p>a <code><a href="Graphics-Rendering-Cairo.html#t:Filter">Filter</a></code></p></td></tr><tr><td class="src">-> m ()</td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a name="v:patternGetFilter" class="def">patternGetFilter</a> <a href="src/Graphics-Rendering-Cairo.html#patternGetFilter" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></td><td class="doc"><p>a <code><a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a></code></p></td></tr><tr><td class="src">-> m <a href="Graphics-Rendering-Cairo.html#t:Filter">Filter</a></td><td class="doc empty"> </td></tr></table></div></div><h2 id="g:4">Transformations</h2><div class="top"><p class="src"><a name="v:translate" class="def">translate</a> <a href="src/Graphics-Rendering-Cairo.html#translate" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>tx</code> - amount to translate in the X direction</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>ty</code> - amount to translate in the Y direction</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Modifies the current transformation matrix (CTM) by translating the
user-space origin by <code>(tx, ty)</code>. This offset is interpreted as a user-space
coordinate according to the CTM in place before the new call to <code><a href="Graphics-Rendering-Cairo.html#v:translate">translate</a></code>.
In other words, the translation of the user-space origin takes place after
any existing transformation.</p></div></div><div class="top"><p class="src"><a name="v:scale" class="def">scale</a> <a href="src/Graphics-Rendering-Cairo.html#scale" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>sx</code> - scale factor for the X dimension</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>sy</code> - scale factor for the Y dimension</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Modifies the current transformation matrix (CTM) by scaling the X and Y
user-space axes by sx and sy respectively. The scaling of the axes takes
place after any existing transformation of user space.</p></div></div><div class="top"><p class="src"><a name="v:rotate" class="def">rotate</a> <a href="src/Graphics-Rendering-Cairo.html#rotate" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>angle</code> - angle (in radians) by which the user-space axes will
be rotated</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Modifies the current transformation matrix (CTM) by rotating the user-space
axes by <code>angle</code> radians. The rotation of the axes takes places after any
existing transformation of user space. The rotation direction for positive
angles is from the positive X axis toward the positive Y axis.</p></div></div><div class="top"><p class="src"><a name="v:transform" class="def">transform</a> <a href="src/Graphics-Rendering-Cairo.html#transform" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a></td><td class="doc"><p><code>matrix</code> - a transformation to be applied to the user-space axes</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Modifies the current transformation matrix (CTM) by applying matrix as an
additional transformation. The new transformation of user space takes place
after any existing transformation.</p></div></div><div class="top"><p class="src"><a name="v:setMatrix" class="def">setMatrix</a> <a href="src/Graphics-Rendering-Cairo.html#setMatrix" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a></td><td class="doc"><p><code>matrix</code> - a transformation matrix from user space to device space</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Modifies the current transformation matrix (CTM) by setting it equal to
<code>matrix</code>.</p></div></div><div class="top"><p class="src"><a name="v:getMatrix" class="def">getMatrix</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a> <a href="src/Graphics-Rendering-Cairo.html#getMatrix" class="link">Source</a></p><div class="doc"><p>Gets the current transformation matrix, as set by <code><a href="Graphics-Rendering-Cairo.html#v:setMatrix">setMatrix</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:identityMatrix" class="def">identityMatrix</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#identityMatrix" class="link">Source</a></p><div class="doc"><p>Resets the current transformation matrix (CTM) by setting it equal to the
identity matrix. That is, the user-space and device-space axes will be
aligned and one user-space unit will transform to one device-space unit.</p></div></div><div class="top"><p class="src"><a name="v:userToDevice" class="def">userToDevice</a> <a href="src/Graphics-Rendering-Cairo.html#userToDevice" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>X value of coordinate</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>Y value of coordinate</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>)</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Transform a coordinate from user space to device space by multiplying the
given point by the current transformation matrix (CTM).</p></div></div><div class="top"><p class="src"><a name="v:userToDeviceDistance" class="def">userToDeviceDistance</a> <a href="src/Graphics-Rendering-Cairo.html#userToDeviceDistance" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>dx</code> - X component of a distance vector</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>dy</code> - Y component of a distance vector</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>)</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Transform a distance vector from user space to device space. This function
is similar to <code><a href="Graphics-Rendering-Cairo.html#v:userToDevice">userToDevice</a></code> except that the translation components of the
CTM will be ignored when transforming <code>(dx,dy)</code>.</p></div></div><div class="top"><p class="src"><a name="v:deviceToUser" class="def">deviceToUser</a> <a href="src/Graphics-Rendering-Cairo.html#deviceToUser" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>X value of coordinate</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>Y value of coordinate</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>)</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Transform a coordinate from device space to user space by multiplying the
given point by the inverse of the current transformation matrix (CTM).</p></div></div><div class="top"><p class="src"><a name="v:deviceToUserDistance" class="def">deviceToUserDistance</a> <a href="src/Graphics-Rendering-Cairo.html#deviceToUserDistance" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>dx</code> - X component of a distance vector</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>dy</code> - Y component of a distance vector</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a>)</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Transform a distance vector from device space to user space. This function
is similar to <code><a href="Graphics-Rendering-Cairo.html#v:deviceToUser">deviceToUser</a></code> except that the translation components of the
inverse CTM will be ignored when transforming <code>(dx,dy)</code>.</p></div></div><h2 id="g:5">Text</h2><div class="top"><p class="src"><a name="v:selectFontFace" class="def">selectFontFace</a> <a href="src/Graphics-Rendering-Cairo.html#selectFontFace" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:CairoString">CairoString</a> string</td><td class="doc empty"> </td></tr><tr><td class="src">=> string</td><td class="doc"><p><code>family</code> - a font family name</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:FontSlant">FontSlant</a></td><td class="doc"><p><code>slant</code> - the slant for the font</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:FontWeight">FontWeight</a></td><td class="doc"><p><code>weight</code> - the weight of the font</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Selects a family and style of font from a simplified description as a
<code>family</code> name, <code>slant</code> and <code>weight</code>. This function is meant to be used only
for applications with simple font needs: Cairo doesn't provide for operations
such as listing all available fonts on the system, and it is expected that
most applications will need to use a more comprehensive font handling and
text layout library in addition to cairo.</p></div></div><div class="top"><p class="src"><a name="v:setFontSize" class="def">setFontSize</a> <a href="src/Graphics-Rendering-Cairo.html#setFontSize" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p><code>size</code> - the new font size, in user space units</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Sets the current font matrix to a scale by a factor of <code>size</code>, replacing
any font matrix previously set with <code><a href="Graphics-Rendering-Cairo.html#v:setFontSize">setFontSize</a></code> or <code><a href="Graphics-Rendering-Cairo.html#v:setFontMatrix">setFontMatrix</a></code>. This
results in a font size of size user space units. (More precisely, this matrix
will result in the font's em-square being a size by size square in user space.)</p></div></div><div class="top"><p class="src"><a name="v:setFontMatrix" class="def">setFontMatrix</a> <a href="src/Graphics-Rendering-Cairo.html#setFontMatrix" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a></td><td class="doc"><p><code>matrix</code> - a <code><a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a></code> describing a transform to be applied to
the current font.</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Sets the current font matrix to <code>matrix</code>. The font matrix gives a
transformation from the design space of the font (in this space, the
em-square is 1 unit by 1 unit) to user space. Normally, a simple scale is
used (see <code><a href="Graphics-Rendering-Cairo.html#v:setFontSize">setFontSize</a></code>), but a more complex font matrix can be used to shear
the font or stretch it unequally along the two axes.</p></div></div><div class="top"><p class="src"><a name="v:getFontMatrix" class="def">getFontMatrix</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a> <a href="src/Graphics-Rendering-Cairo.html#getFontMatrix" class="link">Source</a></p><div class="doc"><p>Gets the current font matrix, as set by <code><a href="Graphics-Rendering-Cairo.html#v:setFontMatrix">setFontMatrix</a></code></p></div></div><div class="top"><p class="src"><a name="v:setFontOptions" class="def">setFontOptions</a> :: <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> () <a href="src/Graphics-Rendering-Cairo.html#setFontOptions" class="link">Source</a></p><div class="doc"><p>Sets a set of custom font rendering options. Rendering options are
derived by merging these options with the options derived from underlying
surface; if the value in <code>options</code> has a default value (like
<code><a href="Graphics-Rendering-Cairo.html#v:AntialiasDefault">AntialiasDefault</a></code>), then the value from the surface is used.</p></div></div><div class="top"><p class="src"><a name="v:showText" class="def">showText</a> <a href="src/Graphics-Rendering-Cairo.html#showText" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:CairoString">CairoString</a> string</td><td class="doc empty"> </td></tr><tr><td class="src">=> string</td><td class="doc"><p>a string of text</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>A drawing operator that generates the shape from a string of Unicode
characters, rendered according to the current font face, font size (font
matrix), and font options.</p><p>This function first computes a set of glyphs for the string of text. The
first glyph is placed so that its origin is at the current point. The origin
of each subsequent glyph is offset from that of the previous glyph by the
advance values of the previous glyph.</p><p>After this call the current point is moved to the origin of where the next
glyph would be placed in this same progression. That is, the current point
will be at the origin of the final glyph offset by its advance values. This
allows for easy display of a single logical string with multiple calls to
<code><a href="Graphics-Rendering-Cairo.html#v:showText">showText</a></code>.</p><p>NOTE: The <code><a href="Graphics-Rendering-Cairo.html#v:showText">showText</a></code> function call is part of what the cairo designers call
the "toy" text API. It is convenient for short demos and simple programs,
but it is not expected to be adequate for the most serious of text-using
applications.</p></div></div><div class="top"><p class="src"><a name="v:fontExtents" class="def">fontExtents</a> :: <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:FontExtents">FontExtents</a> <a href="src/Graphics-Rendering-Cairo.html#fontExtents" class="link">Source</a></p><div class="doc"><p>Gets the font extents for the currently selected font.</p></div></div><div class="top"><p class="src"><a name="v:textExtents" class="def">textExtents</a> <a href="src/Graphics-Rendering-Cairo.html#textExtents" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:CairoString">CairoString</a> string</td><td class="doc empty"> </td></tr><tr><td class="src">=> string</td><td class="doc"><p>a string of text</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:TextExtents">TextExtents</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Gets the extents for a string of text. The extents describe a user-space
rectangle that encloses the "inked" portion of the text, (as it would be
drawn by <code><a href="Graphics-Rendering-Cairo.html#v:showText">showText</a></code>). Additionally, the <code><a href="Graphics-Rendering-Cairo.html#v:textExtentsXadvance">textExtentsXadvance</a></code> and
<code><a href="Graphics-Rendering-Cairo.html#v:textExtentsYadvance">textExtentsYadvance</a></code> values indicate the amount by which the current point
would be advanced by <code><a href="Graphics-Rendering-Cairo.html#v:showText">showText</a></code>.</p><p>Note that whitespace characters do not directly contribute to the size of
the rectangle (<code><a href="Graphics-Rendering-Cairo.html#v:textExtentsWidth">textExtentsWidth</a></code> and <code><a href="Graphics-Rendering-Cairo.html#v:textExtentsHeight">textExtentsHeight</a></code>). They do contribute
indirectly by changing the position of non-whitespace characters.
In particular, trailing whitespace characters are likely to not affect the
size of the rectangle, though they will affect the <code><a href="Graphics-Rendering-Cairo.html#v:textExtentsXadvance">textExtentsXadvance</a></code> and
<code><a href="Graphics-Rendering-Cairo.html#v:textExtentsYadvance">textExtentsYadvance</a></code> values.</p></div></div><h1 id="g:6">Fonts</h1><h2 id="g:7">Font options</h2><div class="top"><p class="src"><a name="v:fontOptionsCreate" class="def">fontOptionsCreate</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => m <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> <a href="src/Graphics-Rendering-Cairo.html#fontOptionsCreate" class="link">Source</a></p><div class="doc"><p>Allocates a new font options object with all options initialized to default
values.</p></div></div><div class="top"><p class="src"><a name="v:fontOptionsCopy" class="def">fontOptionsCopy</a> <a href="src/Graphics-Rendering-Cairo.html#fontOptionsCopy" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a></td><td class="doc"><pre>original</pre></td></tr><tr><td class="src">-> m <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Allocates a new font options object copying the option values from <code>original</code>.</p></div></div><div class="top"><p class="src"><a name="v:fontOptionsMerge" class="def">fontOptionsMerge</a> <a href="src/Graphics-Rendering-Cairo.html#fontOptionsMerge" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a></td><td class="doc"><pre>options</pre></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a></td><td class="doc"><pre>other</pre></td></tr><tr><td class="src">-> m ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Merges non-default options from <code>other</code> into <code>options</code>, replacing existing
values. This operation can be thought of as somewhat similar to compositing
<code>other</code> onto <code>options</code> with the operation of <code>OperationOver</code>.</p></div></div><div class="top"><p class="src"><a name="v:fontOptionsHash" class="def">fontOptionsHash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> m <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> <a href="src/Graphics-Rendering-Cairo.html#fontOptionsHash" class="link">Source</a></p><div class="doc"><p>Compute a hash for the font options object; this value will be useful when
storing an object containing a <code><a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a></code> in a hash table.</p></div></div><div class="top"><p class="src"><a name="v:fontOptionsEqual" class="def">fontOptionsEqual</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> m <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/Graphics-Rendering-Cairo.html#fontOptionsEqual" class="link">Source</a></p><div class="doc"><p>Compares two font options objects for equality.</p></div></div><div class="top"><p class="src"><a name="v:fontOptionsSetAntialias" class="def">fontOptionsSetAntialias</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> <a href="Graphics-Rendering-Cairo.html#t:Antialias">Antialias</a> -> m () <a href="src/Graphics-Rendering-Cairo.html#fontOptionsSetAntialias" class="link">Source</a></p><div class="doc"><p>Sets the antiliasing mode for the font options object. This specifies the
type of antialiasing to do when rendering text.</p></div></div><div class="top"><p class="src"><a name="v:fontOptionsGetAntialias" class="def">fontOptionsGetAntialias</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> m <a href="Graphics-Rendering-Cairo.html#t:Antialias">Antialias</a> <a href="src/Graphics-Rendering-Cairo.html#fontOptionsGetAntialias" class="link">Source</a></p><div class="doc"><p>Gets the antialising mode for the font options object.</p></div></div><div class="top"><p class="src"><a name="v:fontOptionsSetSubpixelOrder" class="def">fontOptionsSetSubpixelOrder</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> <a href="Graphics-Rendering-Cairo.html#t:SubpixelOrder">SubpixelOrder</a> -> m () <a href="src/Graphics-Rendering-Cairo.html#fontOptionsSetSubpixelOrder" class="link">Source</a></p><div class="doc"><p>Sets the subpixel order for the font options object. The subpixel order
specifies the order of color elements within each pixel on the display device
when rendering with an antialiasing mode of <code><a href="Graphics-Rendering-Cairo.html#v:AntialiasSubpixel">AntialiasSubpixel</a></code>.
See the documentation for <code><a href="Graphics-Rendering-Cairo.html#t:SubpixelOrder">SubpixelOrder</a></code> for full details.</p></div></div><div class="top"><p class="src"><a name="v:fontOptionsGetSubpixelOrder" class="def">fontOptionsGetSubpixelOrder</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> m <a href="Graphics-Rendering-Cairo.html#t:SubpixelOrder">SubpixelOrder</a> <a href="src/Graphics-Rendering-Cairo.html#fontOptionsGetSubpixelOrder" class="link">Source</a></p><div class="doc"><p>Gets the subpixel order for the font options object.
See the documentation for <code><a href="Graphics-Rendering-Cairo.html#t:SubpixelOrder">SubpixelOrder</a></code> for full details.</p></div></div><div class="top"><p class="src"><a name="v:fontOptionsSetHintStyle" class="def">fontOptionsSetHintStyle</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> <a href="Graphics-Rendering-Cairo.html#t:HintStyle">HintStyle</a> -> m () <a href="src/Graphics-Rendering-Cairo.html#fontOptionsSetHintStyle" class="link">Source</a></p><div class="doc"><p>Sets the hint style for font outlines for the font options object.
This controls whether to fit font outlines to the pixel grid, and if so,
whether to optimize for fidelity or contrast. See the documentation for
<code><a href="Graphics-Rendering-Cairo.html#t:HintStyle">HintStyle</a></code> for full details.</p></div></div><div class="top"><p class="src"><a name="v:fontOptionsGetHintStyle" class="def">fontOptionsGetHintStyle</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> m <a href="Graphics-Rendering-Cairo.html#t:HintStyle">HintStyle</a> <a href="src/Graphics-Rendering-Cairo.html#fontOptionsGetHintStyle" class="link">Source</a></p><div class="doc"><p>Gets the hint style for font outlines for the font options object.
See the documentation for <code><a href="Graphics-Rendering-Cairo.html#t:HintStyle">HintStyle</a></code> for full details.</p></div></div><div class="top"><p class="src"><a name="v:fontOptionsSetHintMetrics" class="def">fontOptionsSetHintMetrics</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> <a href="Graphics-Rendering-Cairo.html#t:HintMetrics">HintMetrics</a> -> m () <a href="src/Graphics-Rendering-Cairo.html#fontOptionsSetHintMetrics" class="link">Source</a></p><div class="doc"><p>Sets the metrics hinting mode for the font options object. This controls
whether metrics are quantized to integer values in device units. See the
documentation for <code><a href="Graphics-Rendering-Cairo.html#t:HintMetrics">HintMetrics</a></code> for full details.</p></div></div><div class="top"><p class="src"><a name="v:fontOptionsGetHintMetrics" class="def">fontOptionsGetHintMetrics</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -> m <a href="Graphics-Rendering-Cairo.html#t:HintMetrics">HintMetrics</a> <a href="src/Graphics-Rendering-Cairo.html#fontOptionsGetHintMetrics" class="link">Source</a></p><div class="doc"><p>Gets the metrics hinting mode for the font options object. See the
documentation for <code><a href="Graphics-Rendering-Cairo.html#t:HintMetrics">HintMetrics</a></code> for full details.</p></div></div><h1 id="g:8">Surfaces</h1><div class="top"><p class="src"><a name="v:withSimilarSurface" class="def">withSimilarSurface</a> <a href="src/Graphics-Rendering-Cairo.html#withSimilarSurface" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></td><td class="doc"><p>an existing surface used to select the backend of the new surface</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Content">Content</a></td><td class="doc"><p>the content type for the new surface (color, color+alpha or alpha only)</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>width of the new surface, (in device-space units)</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>height of the new surface (in device-space units)</p></td></tr><tr><td class="src">-> (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Create a temporary surface that is as compatible as possible with an
existing surface. The new surface will use the same backend as other unless
that is not possible for some reason.</p></div></div><div class="top"><p class="src"><a name="v:createSimilarSurface" class="def">createSimilarSurface</a> <a href="src/Graphics-Rendering-Cairo.html#createSimilarSurface" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></td><td class="doc"><p>an existing surface used to select the backend of the new surface</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Content">Content</a></td><td class="doc"><p>the content type for the new surface (color, color+alpha or alpha only)</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>width of the surface, in pixels</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>height of the surface, in pixels</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Like <code><a href="Graphics-Rendering-Cairo.html#v:withSimilarSurface">withSimilarSurface</a></code> but creates a Surface that is managed by the
Haskell memory manager rather than only being temporaily allocated. This
is more flexible and allows you to create surfaces that persist, which
can be very useful, for example to cache static elements in an animation.</p><p>However you should be careful because surfaces can be expensive resources
and the Haskell memory manager cannot guarantee when it will release them.
You can manually release the resources used by a surface with
<code><a href="Graphics-Rendering-Cairo.html#v:surfaceFinish">surfaceFinish</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:renderWithSimilarSurface" class="def">renderWithSimilarSurface</a> <a href="src/Graphics-Rendering-Cairo.html#renderWithSimilarSurface" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:Content">Content</a></td><td class="doc"><p>the content type for the new surface
(color, colour+alpha or alpha only)</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>width of the new surface, (in device-space units)</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>height of the new surface, (in device-space units)</p></td></tr><tr><td class="src">-> (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a)</td><td class="doc"><p>this action draws on the main surface,
possibly making use of the temporary surface
(which gets destroyed afterwards).</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Create a temporary surface that is compatible with the current target
surface (like a combination of <code><a href="Graphics-Rendering-Cairo.html#v:withTargetSurface">withTargetSurface</a></code> and <code><a href="Graphics-Rendering-Cairo.html#v:withSimilarSurface">withSimilarSurface</a></code>).</p><p>This is useful for drawing to a temporary surface and then compositing it
into the main suface. For example, the following code draws to a temporary
surface and then uses that as a mask:</p><pre>renderWithSimilarSurface ContentAlpha 200 200 $ \tmpSurface -> do
renderWith tmpSurface $ do
... -- draw onto the temporary surface
-- use the temporary surface as a mask, filling it with the
-- current source which in this example is transparent red.
setSourceRGBA 1 0 0 0.5
setOperator Operator{something} -- think of something clever to do
maskSurface tmpSurface 0 0)</pre></div></div><div class="top"><p class="src"><a name="v:surfaceGetFontOptions" class="def">surfaceGetFontOptions</a> :: <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> <a href="src/Graphics-Rendering-Cairo.html#surfaceGetFontOptions" class="link">Source</a></p><div class="doc"><p>Retrieves the default font rendering options for the surface. This allows
display surfaces to report the correct subpixel order for rendering on them,
print surfaces to disable hinting of metrics and so forth. The result can
then be used with <code>scaledFontCreate</code>.</p></div></div><div class="top"><p class="src"><a name="v:surfaceFinish" class="def">surfaceFinish</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> m () <a href="src/Graphics-Rendering-Cairo.html#surfaceFinish" class="link">Source</a></p><div class="doc"><p>This function finishes the surface and drops all references to external
resources. For example, for the Xlib backend it means that cairo will no
longer access the drawable, which can be freed. After calling <code><a href="Graphics-Rendering-Cairo.html#v:surfaceFinish">surfaceFinish</a></code>
the only valid operations on a surface are getting and setting user data and
referencing and destroying it. Further drawing to the surface will not affect
the surface but will instead trigger a <code><a href="Graphics-Rendering-Cairo.html#v:StatusSurfaceFinished">StatusSurfaceFinished</a></code> error.</p><p>When the last call to <code>surfaceDestroy</code> decreases the reference count to zero,
cairo will call <code><a href="Graphics-Rendering-Cairo.html#v:surfaceFinish">surfaceFinish</a></code> if it hasn't been called already, before
freeing the resources associated with the surface.</p></div></div><div class="top"><p class="src"><a name="v:surfaceFlush" class="def">surfaceFlush</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> m () <a href="src/Graphics-Rendering-Cairo.html#surfaceFlush" class="link">Source</a></p><div class="doc"><p>Do any pending drawing for the surface and also restore any temporary
modification's cairo has made to the surface's state. This function must be
called before switching from drawing on the surface with cairo to drawing on
it directly with native APIs. If the surface doesn't support direct access,
then this function does nothing.</p></div></div><div class="top"><p class="src"><a name="v:surfaceMarkDirty" class="def">surfaceMarkDirty</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> m () <a href="src/Graphics-Rendering-Cairo.html#surfaceMarkDirty" class="link">Source</a></p><div class="doc"><p>Tells cairo that drawing has been done to surface using means other than
cairo, and that cairo should reread any cached areas. Note that you must call
<code><a href="Graphics-Rendering-Cairo.html#v:surfaceFlush">surfaceFlush</a></code> before doing such drawing.</p></div></div><div class="top"><p class="src"><a name="v:surfaceMarkDirtyRectangle" class="def">surfaceMarkDirtyRectangle</a> <a href="src/Graphics-Rendering-Cairo.html#surfaceMarkDirtyRectangle" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></td><td class="doc"><p>a <code><a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></code></p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>X coordinate of dirty rectangle</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>Y coordinate of dirty rectangle</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>width of dirty rectangle</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>height of dirty rectangle</p></td></tr><tr><td class="src">-> m ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Like <code><a href="Graphics-Rendering-Cairo.html#v:surfaceMarkDirty">surfaceMarkDirty</a></code>, but drawing has been done only to the specified
rectangle, so that cairo can retain cached contents for other parts of the
surface.</p></div></div><div class="top"><p class="src"><a name="v:surfaceSetDeviceOffset" class="def">surfaceSetDeviceOffset</a> <a href="src/Graphics-Rendering-Cairo.html#surfaceSetDeviceOffset" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></td><td class="doc"><p>a <code><a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></code></p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>the offset in the X direction, in device units</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>the offset in the Y direction, in device units</p></td></tr><tr><td class="src">-> m ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Sets an offset that is added to the device coordinates determined by the
CTM when drawing to surface. One use case for this function is when we want
to create a <code><a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></code> that redirects drawing for a portion of an
onscreen surface to an offscreen surface in a way that is completely
invisible to the user of the cairo API. Setting a transformation via
<code><a href="Graphics-Rendering-Cairo.html#v:translate">translate</a></code> isn't sufficient to do this, since functions like <code><a href="Graphics-Rendering-Cairo.html#v:deviceToUser">deviceToUser</a></code>
will expose the hidden offset.</p><p>Note that the offset only affects drawing to the surface, not using the
surface in a surface pattern.</p></div></div><h2 id="g:9">Image surfaces</h2><div class="top"><p class="src"><a name="v:withImageSurface" class="def">withImageSurface</a> <a href="src/Graphics-Rendering-Cairo.html#withImageSurface" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:Format">Format</a></td><td class="doc"><p>format of pixels in the surface to create</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>width of the surface, in pixels</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>height of the surface, in pixels</p></td></tr><tr><td class="src">-> (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a)</td><td class="doc"><p>an action that may use the surface. The surface is
only valid within in this action.</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Creates an image surface of the specified format and dimensions.
The initial contents of the surface is undefined; you must explicitely
clear the buffer, using, for example, <code><a href="Graphics-Rendering-Cairo.html#v:rectangle">rectangle</a></code> and <code><a href="Graphics-Rendering-Cairo.html#v:fill">fill</a></code> if you want it
cleared.</p></div></div><div class="top"><p class="src"><a name="v:withImageSurfaceForData" class="def">withImageSurfaceForData</a> <a href="src/Graphics-Rendering-Cairo.html#withImageSurfaceForData" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: PixelData</td><td class="doc"><p>pointer to pixel data</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Format">Format</a></td><td class="doc"><p>format of pixels in the surface to create</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>width of the surface, in pixels</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>height of the surface, in pixels</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>size of stride between rows in the surface to create</p></td></tr><tr><td class="src">-> (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a)</td><td class="doc"><p>an action that may use the surface. The surface is
only valid within this action</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Like <code><a href="Graphics-Rendering-Cairo.html#v:withImageSurface">withImageSurface</a></code> but creating a surface to target external
data pointed to by <code>PixelData</code>.</p></div></div><div class="top"><p class="src"><a name="v:formatStrideForWidth" class="def">formatStrideForWidth</a> <a href="src/Graphics-Rendering-Cairo.html#formatStrideForWidth" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:Format">Format</a></td><td class="doc"><p>format of pixels in the surface to create</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>width of the surface, in pixels</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>the stride (number of bytes necessary to store one line)
or <code>-1</code> if the format is invalid or the width is too large</p></td></tr></table></div><div class="doc"><p>This function provides a stride value that will respect all alignment
requirements of the accelerated image-rendering code within cairo.</p></div></div><div class="top"><p class="src"><a name="v:createImageSurfaceForData" class="def">createImageSurfaceForData</a> <a href="src/Graphics-Rendering-Cairo.html#createImageSurfaceForData" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: PixelData</td><td class="doc"><p>pointer to pixel data</p></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Format">Format</a></td><td class="doc"><p>format of pixels in the surface to create</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>width of the surface, in pixels</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>height of the surface, in pixels</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>size of stride between rows in the surface to create</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Like <code><a href="Graphics-Rendering-Cairo.html#v:createImageSurface">createImageSurface</a></code> but creating a surface to target external
data pointed to by <code>PixelData</code>.</p></div></div><div class="top"><p class="src"><a name="v:createImageSurface" class="def">createImageSurface</a> <a href="src/Graphics-Rendering-Cairo.html#createImageSurface" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:Format">Format</a></td><td class="doc"><p>format of pixels in the surface to create</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>width of the surface, in pixels</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>height of the surface, in pixels</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Like <code><a href="Graphics-Rendering-Cairo.html#v:withImageSurface">withImageSurface</a></code> but creates a Surface that is managed by the
Haskell memory manager rather than only being temporaily allocated. This
is more flexible and allows you to create surfaces that persist, which
can be very useful, for example to cache static elements in an animation.</p><p>However you should be careful because surfaces can be expensive resources
and the Haskell memory manager cannot guarantee when it will release them.
You can manually release the resources used by a surface with
<code><a href="Graphics-Rendering-Cairo.html#v:surfaceFinish">surfaceFinish</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:imageSurfaceGetWidth" class="def">imageSurfaceGetWidth</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> m <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> <a href="src/Graphics-Rendering-Cairo.html#imageSurfaceGetWidth" class="link">Source</a></p><div class="doc"><p>Get the width of the image surface in pixels.</p></div></div><div class="top"><p class="src"><a name="v:imageSurfaceGetHeight" class="def">imageSurfaceGetHeight</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> m <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> <a href="src/Graphics-Rendering-Cairo.html#imageSurfaceGetHeight" class="link">Source</a></p><div class="doc"><p>Get the height of the image surface in pixels.</p></div></div><div class="top"><p class="src"><a name="v:imageSurfaceGetFormat" class="def">imageSurfaceGetFormat</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> m <a href="Graphics-Rendering-Cairo.html#t:Format">Format</a> <a href="src/Graphics-Rendering-Cairo.html#imageSurfaceGetFormat" class="link">Source</a></p><div class="doc"><p>Get the format of the surface.</p></div></div><div class="top"><p class="src"><a name="v:imageSurfaceGetStride" class="def">imageSurfaceGetStride</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> m <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> <a href="src/Graphics-Rendering-Cairo.html#imageSurfaceGetStride" class="link">Source</a></p><div class="doc"><p>Get the number of bytes from the start of one row to the start of the
next. If the image data contains no padding, then this is equal to
the pixel depth * the width.</p></div></div><div class="top"><p class="src"><a name="v:imageSurfaceGetData" class="def">imageSurfaceGetData</a> :: <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a> <a href="src/Graphics-Rendering-Cairo.html#imageSurfaceGetData" class="link">Source</a></p><div class="doc"><p>Return a ByteString of the image data for a surface. In order to remain
safe the returned ByteString is a copy of the data. This is a little
slower than returning a pointer into the image surface object itself, but
much safer</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:SurfaceData" class="def">SurfaceData</a> i e <a href="src/Graphics-Rendering-Cairo.html#SurfaceData" class="link">Source</a></p><div class="doc"><p>An array that stores the raw pixel data of an image <code><a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></code>.</p></div><div class="subs instances"><p id="control.i:SurfaceData" class="caption collapser" onclick="toggleSection('i:SurfaceData')">Instances</p><div id="section.i:SurfaceData" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> e => <a href="file:///usr/share/doc/ghc-doc/html/libraries/array-0.5.1.0/Data-Array-MArray.html#t:MArray">MArray</a> <a href="Graphics-Rendering-Cairo.html#t:SurfaceData">SurfaceData</a> e <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a></span> <a href="src/Graphics-Rendering-Cairo.html#line-1880" class="link">Source</a></td><td class="doc"><p><code><a href="Graphics-Rendering-Cairo.html#t:SurfaceData">SurfaceData</a></code> is a mutable array.</p></td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:imageSurfaceGetPixels" class="def">imageSurfaceGetPixels</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> e => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> (<a href="Graphics-Rendering-Cairo.html#t:SurfaceData">SurfaceData</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> e) <a href="src/Graphics-Rendering-Cairo.html#imageSurfaceGetPixels" class="link">Source</a></p><div class="doc"><p>Retrieve the internal array of raw image data.</p><ul><li>Image data in an image surface is stored in memory in uncompressed,
packed format. Rows in the image are stored top to bottom, and in each
row pixels are stored from left to right. There may be padding at the end
of a row. The value returned by <code><a href="Graphics-Rendering-Cairo.html#v:imageSurfaceGetStride">imageSurfaceGetStride</a></code> indicates the
number of bytes between rows.</li><li>The returned array is a flat representation of a three dimensional array:
x-coordiante, y-coordinate and several channels for each color. The
format depends on the <code><a href="Graphics-Rendering-Cairo.html#t:Format">Format</a></code> of the surface:</li></ul><p><code><a href="Graphics-Rendering-Cairo.html#v:FormatARGB32">FormatARGB32</a></code>: each pixel is 32 bits with alpha in the upper 8 bits,
followed by 8 bits for red, green and blue. Pre-multiplied alpha is used.
(That is, 50% transparent red is 0x80800000, not 0x80ff0000.)</p><p><code><a href="Graphics-Rendering-Cairo.html#v:FormatRGB24">FormatRGB24</a></code>: each pixel is 32 bits with the upper 8 bits being unused,
followed by 8 bits for red, green and blue.</p><p><code><a href="Graphics-Rendering-Cairo.html#v:FormatA8">FormatA8</a></code>: each pixel is 8 bits holding an alpha value</p><p><code><a href="Graphics-Rendering-Cairo.html#v:FormatA1">FormatA1</a></code>: each pixel is one bit where pixels are packed into 32 bit
quantities. The ordering depends on the endianes of the platform. On a
big-endian machine, the first pixel is in the uppermost bit, on a
little-endian machine the first pixel is in the least-significant bit.</p><ul><li>To read or write a specific pixel (and assuming <code><a href="Graphics-Rendering-Cairo.html#v:FormatARGB32">FormatARGB32</a></code> or
<code><a href="Graphics-Rendering-Cairo.html#v:FormatRGB24">FormatRGB24</a></code>), use the formula: <code>p = y * (rowstride <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#v:div">div</a></code> 4) + x</code> for the
pixel and force the array to have 32-bit words or integers.</li><li>Calling this function without explicitly giving it a type will often lead
to a compiler error since the type parameter <code>e</code> is underspecified. If
this happens the function can be explicitly typed:
<code>surData <- (imageSurfaceGetPixels pb :: IO (SurfaceData Int Word32))</code></li><li>If modifying an image through Haskell's array interface is not fast
enough, it is possible to use <code>unsafeRead</code> and <code>unsafeWrite</code> which have
the same type signatures as <code>readArray</code> and <code>writeArray</code>. Note that these
are internal functions that might change with GHC.</li><li>After each write access to the array, you need to inform Cairo
about the area that has changed using <code><a href="Graphics-Rendering-Cairo.html#v:surfaceMarkDirty">surfaceMarkDirty</a></code>.</li><li>The function will return an error if the surface is not an image
surface or if <code><a href="Graphics-Rendering-Cairo.html#v:surfaceFinish">surfaceFinish</a></code> has been called on the surface.</li></ul></div></div><h2 id="g:10">PNG support</h2><div class="top"><p class="src"><a name="v:withImageSurfaceFromPNG" class="def">withImageSurfaceFromPNG</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:FilePath">FilePath</a> -> (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a <a href="src/Graphics-Rendering-Cairo.html#withImageSurfaceFromPNG" class="link">Source</a></p><div class="doc"><p>Creates a new image surface and initializes the contents to the given PNG
file.</p></div></div><div class="top"><p class="src"><a name="v:imageSurfaceCreateFromPNG" class="def">imageSurfaceCreateFromPNG</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> <a href="src/Graphics-Rendering-Cairo-Internal-Surfaces-PNG.html#imageSurfaceCreateFromPNG" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:surfaceWriteToPNG" class="def">surfaceWriteToPNG</a> <a href="src/Graphics-Rendering-Cairo.html#surfaceWriteToPNG" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></td><td class="doc"><p>a <code><a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></code></p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p><code>filename</code> - the name of a file to write to</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Writes the contents of surface to a new file <code>filename</code> as a PNG image.</p></div></div><h2 id="g:11">PDF surfaces</h2><div class="top"><p class="src"><a name="v:withPDFSurface" class="def">withPDFSurface</a> <a href="src/Graphics-Rendering-Cairo.html#withPDFSurface" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p><code>filename</code> - a filename for the PS output (must be writable)</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>width of the surface, in points (1 point == 1/72.0 inch)</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>height of the surface, in points (1 point == 1/72.0 inch)</p></td></tr><tr><td class="src">-> (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a)</td><td class="doc"><p>an action that may use the surface. The surface is
only valid within in this action.</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Creates a PostScript surface of the specified size in points to
be written to <code>filename</code>.</p><p>Note that the size of individual pages of the PostScript output can
vary. See <code><a href="Graphics-Rendering-Cairo.html#v:psSurfaceSetSize">psSurfaceSetSize</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:pdfSurfaceSetSize" class="def">pdfSurfaceSetSize</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> m () <a href="src/Graphics-Rendering-Cairo.html#pdfSurfaceSetSize" class="link">Source</a></p><div class="doc"><p>Changes the size of a PDF surface for the current (and
subsequent) pages.</p><p>This function should only be called before any drawing operations
have been performed on the current page. The simplest way to do
this is to call this function immediately after creating the
surface or immediately after completing a page with either
<code><a href="Graphics-Rendering-Cairo.html#v:showPage">showPage</a></code> or <code><a href="Graphics-Rendering-Cairo.html#v:copyPage">copyPage</a></code>.</p></div></div><h2 id="g:12">PS surfaces</h2><div class="top"><p class="src"><a name="v:withPSSurface" class="def">withPSSurface</a> <a href="src/Graphics-Rendering-Cairo.html#withPSSurface" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p><code>filename</code> - a filename for the PS output (must be writable)</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>width of the surface, in points (1 point == 1/72.0 inch)</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>height of the surface, in points (1 point == 1/72.0 inch)</p></td></tr><tr><td class="src">-> (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a)</td><td class="doc"><p>an action that may use the surface. The surface is
only valid within in this action.</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Creates a PostScript surface of the specified size in points to
be written to <code>filename</code>.</p><p>Note that the size of individual pages of the PostScript output can
vary. See <code><a href="Graphics-Rendering-Cairo.html#v:psSurfaceSetSize">psSurfaceSetSize</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:psSurfaceSetSize" class="def">psSurfaceSetSize</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -> m () <a href="src/Graphics-Rendering-Cairo.html#psSurfaceSetSize" class="link">Source</a></p><div class="doc"><p>Changes the size of a PostScript surface for the current (and
subsequent) pages.</p><p>This function should only be called before any drawing operations
have been performed on the current page. The simplest way to do
this is to call this function immediately after creating the
surface or immediately after completing a page with either
<code><a href="Graphics-Rendering-Cairo.html#v:showPage">showPage</a></code> or <code><a href="Graphics-Rendering-Cairo.html#v:copyPage">copyPage</a></code>.</p></div></div><h2 id="g:13">SVG surfaces</h2><div class="top"><p class="src"><a name="v:withSVGSurface" class="def">withSVGSurface</a> <a href="src/Graphics-Rendering-Cairo.html#withSVGSurface" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p><code>filename</code> - a filename for the SVG output (must be writable)</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>width of the surface, in points (1 point == 1/72.0 inch)</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></td><td class="doc"><p>height of the surface, in points (1 point == 1/72.0 inch)</p></td></tr><tr><td class="src">-> (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a)</td><td class="doc"><p>an action that may use the surface. The surface is
only valid within in this action.</p></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Creates a SVG surface of the specified size in points
be written to <code>filename</code>.</p></div></div><h1 id="g:14">Regions</h1><div class="top"><p class="src"><a name="v:regionCreate" class="def">regionCreate</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => m <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> <a href="src/Graphics-Rendering-Cairo.html#regionCreate" class="link">Source</a></p><div class="doc"><p>Allocates a new empty region object.</p></div></div><div class="top"><p class="src"><a name="v:regionCreateRectangle" class="def">regionCreateRectangle</a> <a href="src/Graphics-Rendering-Cairo.html#regionCreateRectangle" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></td><td class="doc"><pre>rectangle</pre></td></tr><tr><td class="src">-> m <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Allocates a new region object containing <code>rectangle</code>.</p></div></div><div class="top"><p class="src"><a name="v:regionCreateRectangles" class="def">regionCreateRectangles</a> <a href="src/Graphics-Rendering-Cairo.html#regionCreateRectangles" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> [<a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a>]</td><td class="doc"><pre>rects</pre></td></tr><tr><td class="src">-> m <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Allocates a new region object containing the union of all given <code>rects</code>.</p></div></div><div class="top"><p class="src"><a name="v:regionCopy" class="def">regionCopy</a> <a href="src/Graphics-Rendering-Cairo.html#regionCopy" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>original</pre></td></tr><tr><td class="src">-> m <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Allocates a new region object copying the area from <code>original</code>.</p></div></div><div class="top"><p class="src"><a name="v:regionGetExtents" class="def">regionGetExtents</a> <a href="src/Graphics-Rendering-Cairo.html#regionGetExtents" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>region</pre></td></tr><tr><td class="src">-> m <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Gets the bounding rectangle of <code>region</code> as a RectanglInt.</p></div></div><div class="top"><p class="src"><a name="v:regionNumRectangles" class="def">regionNumRectangles</a> <a href="src/Graphics-Rendering-Cairo.html#regionNumRectangles" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>region</pre></td></tr><tr><td class="src">-> m <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Returns the number of rectangles contained in <code>region</code>.</p></div></div><div class="top"><p class="src"><a name="v:regionGetRectangle" class="def">regionGetRectangle</a> <a href="src/Graphics-Rendering-Cairo.html#regionGetRectangle" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>region</pre></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><pre>nth</pre></td></tr><tr><td class="src">-> m <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Gets the <code>nth</code> rectangle from the <code>region</code>.</p></div></div><div class="top"><p class="src"><a name="v:regionIsEmpty" class="def">regionIsEmpty</a> <a href="src/Graphics-Rendering-Cairo.html#regionIsEmpty" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>region</pre></td></tr><tr><td class="src">-> m <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Checks whether <code>region</code> is empty.</p></div></div><div class="top"><p class="src"><a name="v:regionContainsPoint" class="def">regionContainsPoint</a> <a href="src/Graphics-Rendering-Cairo.html#regionContainsPoint" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>region</pre></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><pre>x</pre></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><pre>y</pre></td></tr><tr><td class="src">-> m <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Checks whether (<code>x</code>, <code>y</code>) is contained in <code>region</code>.</p></div></div><div class="top"><p class="src"><a name="v:regionContainsRectangle" class="def">regionContainsRectangle</a> <a href="src/Graphics-Rendering-Cairo.html#regionContainsRectangle" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>region</pre></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></td><td class="doc"><pre>rectangle</pre></td></tr><tr><td class="src">-> m <a href="Graphics-Rendering-Cairo.html#t:RegionOverlap">RegionOverlap</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Checks whether <code>rectangle</code> is inside, outside or partially contained in <code>region</code>.</p></div></div><div class="top"><p class="src"><a name="v:regionEqual" class="def">regionEqual</a> <a href="src/Graphics-Rendering-Cairo.html#regionEqual" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>region_a</pre></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>region_b</pre></td></tr><tr><td class="src">-> m <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Compares whether <code>region_a</code> is equivalent to <code>region_b</code>.</p></div></div><div class="top"><p class="src"><a name="v:regionTranslate" class="def">regionTranslate</a> <a href="src/Graphics-Rendering-Cairo.html#regionTranslate" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>region</pre></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><pre>dx</pre></td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><pre>dy</pre></td></tr><tr><td class="src">-> m ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Translates <code>region</code> by (<code>dx</code>, <code>dy</code>).</p></div></div><div class="top"><p class="src"><a name="v:regionIntersect" class="def">regionIntersect</a> <a href="src/Graphics-Rendering-Cairo.html#regionIntersect" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>dst</pre></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>other</pre></td></tr><tr><td class="src">-> m ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Computes the intersection of <code>dst</code> with <code>other</code> and places the result in <code>dst</code>.</p></div></div><div class="top"><p class="src"><a name="v:regionIntersectRectangle" class="def">regionIntersectRectangle</a> <a href="src/Graphics-Rendering-Cairo.html#regionIntersectRectangle" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>dst</pre></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></td><td class="doc"><pre>rectangle</pre></td></tr><tr><td class="src">-> m ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Computes the intersection of <code>dst</code> with <code>rectangle</code> and places the result in <code>dst</code>.</p></div></div><div class="top"><p class="src"><a name="v:regionSubtract" class="def">regionSubtract</a> <a href="src/Graphics-Rendering-Cairo.html#regionSubtract" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>dst</pre></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>other</pre></td></tr><tr><td class="src">-> m ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Subtracts <code>other</code> from <code>dst</code> and places the result in <code>dst</code>.</p></div></div><div class="top"><p class="src"><a name="v:regionSubtractRectangle" class="def">regionSubtractRectangle</a> <a href="src/Graphics-Rendering-Cairo.html#regionSubtractRectangle" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>dst</pre></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></td><td class="doc"><pre>rectangle</pre></td></tr><tr><td class="src">-> m ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Subtracts <code>rectangle</code> from <code>dst</code> and places the result in <code>dst</code>.</p></div></div><div class="top"><p class="src"><a name="v:regionUnion" class="def">regionUnion</a> <a href="src/Graphics-Rendering-Cairo.html#regionUnion" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>dst</pre></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>other</pre></td></tr><tr><td class="src">-> m ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Computes the union of <code>dst</code> with <code>other</code> and places the result in <code>dst</code>.</p></div></div><div class="top"><p class="src"><a name="v:regionUnionRectangle" class="def">regionUnionRectangle</a> <a href="src/Graphics-Rendering-Cairo.html#regionUnionRectangle" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>dst</pre></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></td><td class="doc"><pre>rectangle</pre></td></tr><tr><td class="src">-> m ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Computes the union of <code>dst</code> with <code>rectangle</code> and places the result in <code>dst</code>.</p></div></div><div class="top"><p class="src"><a name="v:regionXor" class="def">regionXor</a> <a href="src/Graphics-Rendering-Cairo.html#regionXor" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>dst</pre></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>other</pre></td></tr><tr><td class="src">-> m ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Computes the exclusive difference of <code>dst</code> with <code>other</code> and places the result in <code>dst</code>.
That is, <code>dst</code> will be set to contain all areas that are either in <code>dst</code> or in <code>other</code>, but not in both.</p></div></div><div class="top"><p class="src"><a name="v:regionXorRectangle" class="def">regionXorRectangle</a> <a href="src/Graphics-Rendering-Cairo.html#regionXorRectangle" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>dst</pre></td></tr><tr><td class="src">-> <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></td><td class="doc"><pre>rectangle</pre></td></tr><tr><td class="src">-> m ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Computes the exclusive difference of <code>dst</code> with <code>rectangle</code> and places the result in <code>dst</code>.
That is, <code>dst</code> will be set to contain all areas that are either in <code>dst</code> or in <code>rectangle</code>, but not in both</p></div></div><h1 id="g:15">Utilities</h1><div class="top"><p class="src"><a name="v:liftIO" class="def">liftIO</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <span class="keyword">forall</span> a. <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a -> m a</p><div class="doc"><p>Lift a computation from the <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a></code> monad.</p></div></div><div class="top"><p class="src"><a name="v:version" class="def">version</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> <a href="src/Graphics-Rendering-Cairo.html#version" class="link">Source</a></p><div class="doc"><p>Returns the version of the cairo library encoded in a single integer.</p></div></div><div class="top"><p class="src"><a name="v:versionString" class="def">versionString</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-String.html#t:String">String</a> <a href="src/Graphics-Rendering-Cairo.html#versionString" class="link">Source</a></p><div class="doc"><p>Returns the version of the cairo library as a human-readable string of the
form "X.Y.Z".</p></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a name="t:CairoString" class="def">CairoString</a> s <a href="src/Graphics-Rendering-Cairo-Internal-Utilities.html#CairoString" class="link">Source</a></p><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src">withUTFString</p></div><div class="subs instances"><p id="control.i:CairoString" class="caption collapser" onclick="toggleSection('i:CairoString')">Instances</p><div id="section.i:CairoString" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="Graphics-Rendering-Cairo.html#t:CairoString">CairoString</a> <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text.html#t:Text">Text</a></span> <a href="src/Graphics-Rendering-Cairo-Internal-Utilities.html#line-42" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Graphics-Rendering-Cairo.html#t:CairoString">CairoString</a> [<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Char.html#t:Char">Char</a>]</span> <a href="src/Graphics-Rendering-Cairo-Internal-Utilities.html#line-39" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><h1 id="g:16">Types</h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Render" class="def">Render</a> m <a href="src/Graphics-Rendering-Cairo-Internal.html#Render" class="link">Source</a></p><div class="doc"><p>The Render monad. All drawing operations take place in a Render context.
You can obtain a Render context for a <code><a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a></code> using <code>renderWith</code>.</p></div><div class="subs instances"><p id="control.i:Render" class="caption collapser" onclick="toggleSection('i:Render')">Instances</p><div id="section.i:Render" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Monad.html#t:Monad">Monad</a> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a></span> <a href="src/Graphics-Rendering-Cairo-Internal.html#line-61" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a></span> <a href="src/Graphics-Rendering-Cairo-Internal.html#line-61" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Applicative.html#t:Applicative">Applicative</a> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a></span> <a href="src/Graphics-Rendering-Cairo-Internal.html#line-61" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a></span> <a href="src/Graphics-Rendering-Cairo-Internal.html#line-61" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Matrix" class="def">Matrix</a> <a href="src/Graphics-Rendering-Cairo-Matrix.html#Matrix" class="link">Source</a></p><div class="doc"><p>Representation of a 2-D affine transformation.</p><p>The Matrix type represents a 2x2 transformation matrix along with a
translation vector. <code>Matrix a1 a2 b1 b2 c1 c2</code> describes the
transformation of a point with coordinates x,y that is defined by</p><pre> / x' \ = / a1 b1 \ / x \ + / c1 \
\ y' / \ a2 b2 / \ y / \ c2 /</pre><p>or</p><pre> x' = a1 * x + b1 * y + c1
y' = a2 * x + b2 * y + c2</pre></div><div class="subs instances"><p id="control.i:Matrix" class="caption collapser" onclick="toggleSection('i:Matrix')">Instances</p><div id="section.i:Matrix" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a></span> <a href="src/Graphics-Rendering-Cairo-Matrix.html#line-48" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a></span> <a href="src/Graphics-Rendering-Cairo-Matrix.html#line-74" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a></span> <a href="src/Graphics-Rendering-Cairo-Matrix.html#line-48" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a></span> <a href="src/Graphics-Rendering-Cairo-Matrix.html#line-51" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Surface" class="def">Surface</a> <a href="src/Graphics-Rendering-Cairo-Types.html#Surface" class="link">Source</a></p><div class="doc"><p>The medium to draw on.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Pattern" class="def">Pattern</a> <a href="src/Graphics-Rendering-Cairo-Types.html#Pattern" class="link">Source</a></p><div class="doc"><p>Patterns can be simple solid colors, various kinds of gradients or
bitmaps. The current pattern for a <code>Render</code> context is used by the <code>stroke</code>,
<code>fill</code> and paint operations. These operations composite the current pattern
with the target surface using the currently selected <code><a href="Graphics-Rendering-Cairo.html#t:Operator">Operator</a></code>.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Status" class="def">Status</a> <a href="src/Graphics-Rendering-Cairo-Types.html#Status" class="link">Source</a></p><div class="doc"><p>Cairo status.</p><ul><li><code><a href="Graphics-Rendering-Cairo.html#t:Status">Status</a></code> is used to indicate errors that can occur when using
Cairo. In some cases it is returned directly by functions. When using
<code><a href="Graphics-Rendering-Cairo.html#v:Render">Render</a></code>, the last error, if any, is stored
in the monad and can be retrieved with <code><a href="Graphics-Rendering-Cairo.html#v:status">status</a></code>.</li></ul></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:StatusSuccess" class="def">StatusSuccess</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusNoMemory" class="def">StatusNoMemory</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusInvalidRestore" class="def">StatusInvalidRestore</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusInvalidPopGroup" class="def">StatusInvalidPopGroup</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusNoCurrentPoint" class="def">StatusNoCurrentPoint</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusInvalidMatrix" class="def">StatusInvalidMatrix</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusInvalidStatus" class="def">StatusInvalidStatus</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusNullPointer" class="def">StatusNullPointer</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusInvalidString" class="def">StatusInvalidString</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusInvalidPathData" class="def">StatusInvalidPathData</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusReadError" class="def">StatusReadError</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusWriteError" class="def">StatusWriteError</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusSurfaceFinished" class="def">StatusSurfaceFinished</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusSurfaceTypeMismatch" class="def">StatusSurfaceTypeMismatch</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusPatternTypeMismatch" class="def">StatusPatternTypeMismatch</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusInvalidContent" class="def">StatusInvalidContent</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusInvalidFormat" class="def">StatusInvalidFormat</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusInvalidVisual" class="def">StatusInvalidVisual</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusFileNotFound" class="def">StatusFileNotFound</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusInvalidDash" class="def">StatusInvalidDash</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusInvalidDscComment" class="def">StatusInvalidDscComment</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusInvalidIndex" class="def">StatusInvalidIndex</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusClipNotRepresentable" class="def">StatusClipNotRepresentable</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusTempFileError" class="def">StatusTempFileError</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusInvalidStride" class="def">StatusInvalidStride</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusFontTypeMismatch" class="def">StatusFontTypeMismatch</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusUserFontImmutable" class="def">StatusUserFontImmutable</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusUserFontError" class="def">StatusUserFontError</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusNegativeCount" class="def">StatusNegativeCount</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusInvalidClusters" class="def">StatusInvalidClusters</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusInvalidSlant" class="def">StatusInvalidSlant</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusInvalidWeight" class="def">StatusInvalidWeight</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusInvalidSize" class="def">StatusInvalidSize</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusUserFontNotImplemented" class="def">StatusUserFontNotImplemented</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusDeviceTypeMismatch" class="def">StatusDeviceTypeMismatch</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusDeviceError" class="def">StatusDeviceError</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusInvalidMeshConstruction" class="def">StatusInvalidMeshConstruction</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusDeviceFinished" class="def">StatusDeviceFinished</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusJbig2GlobalMissing" class="def">StatusJbig2GlobalMissing</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:StatusLastStatus" class="def">StatusLastStatus</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Status" class="caption collapser" onclick="toggleSection('i:Status')">Instances</p><div id="section.i:Status" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-Rendering-Cairo.html#t:Status">Status</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-150" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-Cairo.html#t:Status">Status</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-149" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-Cairo.html#t:Status">Status</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-149" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Operator" class="def">Operator</a> <a href="src/Graphics-Rendering-Cairo-Types.html#Operator" class="link">Source</a></p><div class="doc"><p>Composition operator for all drawing operations.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:OperatorClear" class="def">OperatorClear</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorSource" class="def">OperatorSource</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorOver" class="def">OperatorOver</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorIn" class="def">OperatorIn</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorOut" class="def">OperatorOut</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorAtop" class="def">OperatorAtop</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorDest" class="def">OperatorDest</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorDestOver" class="def">OperatorDestOver</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorDestIn" class="def">OperatorDestIn</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorDestOut" class="def">OperatorDestOut</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorDestAtop" class="def">OperatorDestAtop</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorXor" class="def">OperatorXor</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorAdd" class="def">OperatorAdd</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorSaturate" class="def">OperatorSaturate</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorMultiply" class="def">OperatorMultiply</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorScreen" class="def">OperatorScreen</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorOverlay" class="def">OperatorOverlay</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorDarken" class="def">OperatorDarken</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorLighten" class="def">OperatorLighten</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorColorDodge" class="def">OperatorColorDodge</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorColorBurn" class="def">OperatorColorBurn</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorHardLight" class="def">OperatorHardLight</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorSoftLight" class="def">OperatorSoftLight</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorDifference" class="def">OperatorDifference</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorExclusion" class="def">OperatorExclusion</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorHslHue" class="def">OperatorHslHue</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorHslSaturation" class="def">OperatorHslSaturation</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorHslColor" class="def">OperatorHslColor</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OperatorHslLuminosity" class="def">OperatorHslLuminosity</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Operator" class="caption collapser" onclick="toggleSection('i:Operator')">Instances</p><div id="section.i:Operator" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-Rendering-Cairo.html#t:Operator">Operator</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-142" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-Cairo.html#t:Operator">Operator</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-142" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-Cairo.html#t:Operator">Operator</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-142" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Antialias" class="def">Antialias</a> <a href="src/Graphics-Rendering-Cairo-Types.html#Antialias" class="link">Source</a></p><div class="doc"><p>Specifies the type of antialiasing to do when rendering text or shapes</p><dl><dt><code><a href="Graphics-Rendering-Cairo.html#v:AntialiasDefault">AntialiasDefault</a></code></dt><dd>Use the default antialiasing for the subsystem
and target device.</dd><dt><code><a href="Graphics-Rendering-Cairo.html#v:AntialiasNone">AntialiasNone</a></code></dt><dd>Use a bilevel alpha mask.</dd><dt><code><a href="Graphics-Rendering-Cairo.html#v:AntialiasGray">AntialiasGray</a></code></dt><dd>Perform single-color antialiasing (using shades of
gray for black text on a white background, for example).</dd><dt><code><a href="Graphics-Rendering-Cairo.html#v:AntialiasSubpixel">AntialiasSubpixel</a></code></dt><dd>Perform antialiasing by taking advantage of
the order of subpixel elements on devices such as LCD panels.</dd></dl></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:AntialiasDefault" class="def">AntialiasDefault</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:AntialiasNone" class="def">AntialiasNone</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:AntialiasGray" class="def">AntialiasGray</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:AntialiasSubpixel" class="def">AntialiasSubpixel</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:AntialiasFast" class="def">AntialiasFast</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:AntialiasGood" class="def">AntialiasGood</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:AntialiasBest" class="def">AntialiasBest</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Antialias" class="caption collapser" onclick="toggleSection('i:Antialias')">Instances</p><div id="section.i:Antialias" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-Rendering-Cairo.html#t:Antialias">Antialias</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-135" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-Cairo.html#t:Antialias">Antialias</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-135" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-Cairo.html#t:Antialias">Antialias</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-135" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:FillRule" class="def">FillRule</a> <a href="src/Graphics-Rendering-Cairo-Types.html#FillRule" class="link">Source</a></p><div class="doc"><p>Specify how paths are filled.</p><ul><li>For both fill rules, whether or not a point is included in the fill is
determined by taking a ray from that point to infinity and looking at
intersections with the path. The ray can be in any direction, as long
as it doesn't pass through the end point of a segment or have a tricky
intersection such as intersecting tangent to the path. (Note that
filling is not actually implemented in this way. This is just a
description of the rule that is applied.)</li></ul><dl><dt><code><a href="Graphics-Rendering-Cairo.html#v:FillRuleWinding">FillRuleWinding</a></code></dt><dd>If the path crosses the ray from left-to-right,
counts +1. If the path crosses the ray from right to left, counts -1.
(Left and right are determined from the perspective of looking along
the ray from the starting point.) If the total count is non-zero, the
point will be filled.</dd><dt><code><a href="Graphics-Rendering-Cairo.html#v:FillRuleEvenOdd">FillRuleEvenOdd</a></code></dt><dd>Counts the total number of intersections,
without regard to the orientation of the contour. If the total number
of intersections is odd, the point will be filled.</dd></dl></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:FillRuleWinding" class="def">FillRuleWinding</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:FillRuleEvenOdd" class="def">FillRuleEvenOdd</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:FillRule" class="caption collapser" onclick="toggleSection('i:FillRule')">Instances</p><div id="section.i:FillRule" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-Rendering-Cairo.html#t:FillRule">FillRule</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-152" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-Cairo.html#t:FillRule">FillRule</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-152" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-Cairo.html#t:FillRule">FillRule</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-152" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:LineCap" class="def">LineCap</a> <a href="src/Graphics-Rendering-Cairo-Types.html#LineCap" class="link">Source</a></p><div class="doc"><p>Specify line endings.</p><dl><dt><code><a href="Graphics-Rendering-Cairo.html#v:LineCapButt">LineCapButt</a></code></dt><dd>Start(stop) the line exactly at the start(end) point.</dd><dt><code><a href="Graphics-Rendering-Cairo.html#v:LineCapRound">LineCapRound</a></code></dt><dd>Use a round ending, the center of the circle is the
end point.</dd><dt><code><a href="Graphics-Rendering-Cairo.html#v:LineCapSquare">LineCapSquare</a></code></dt><dd>Use squared ending, the center of the square is the
end point</dd></dl></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:LineCapButt" class="def">LineCapButt</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:LineCapRound" class="def">LineCapRound</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:LineCapSquare" class="def">LineCapSquare</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:LineCap" class="caption collapser" onclick="toggleSection('i:LineCap')">Instances</p><div id="section.i:LineCap" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-Rendering-Cairo.html#t:LineCap">LineCap</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-165" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-Cairo.html#t:LineCap">LineCap</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-165" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-Cairo.html#t:LineCap">LineCap</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-165" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:LineJoin" class="def">LineJoin</a> <a href="src/Graphics-Rendering-Cairo-Types.html#LineJoin" class="link">Source</a></p><div class="doc"><p>Specify how lines join.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:LineJoinMiter" class="def">LineJoinMiter</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:LineJoinRound" class="def">LineJoinRound</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:LineJoinBevel" class="def">LineJoinBevel</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:LineJoin" class="caption collapser" onclick="toggleSection('i:LineJoin')">Instances</p><div id="section.i:LineJoin" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-Rendering-Cairo.html#t:LineJoin">LineJoin</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-169" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-Cairo.html#t:LineJoin">LineJoin</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-169" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-Cairo.html#t:LineJoin">LineJoin</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-169" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:ScaledFont" class="def">ScaledFont</a> <a href="src/Graphics-Rendering-Cairo-Types.html#ScaledFont" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:FontFace" class="def">FontFace</a> <a href="src/Graphics-Rendering-Cairo-Types.html#FontFace" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Glyph" class="def">Glyph</a> <a href="src/Graphics-Rendering-Cairo-Types.html#Glyph" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:TextExtents" class="def">TextExtents</a> <a href="src/Graphics-Rendering-Cairo-Types.html#TextExtents" class="link">Source</a></p><div class="doc"><p>Specify the extents of a text.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:TextExtents" class="def">TextExtents</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:textExtentsXbearing" class="def">textExtentsXbearing</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:textExtentsYbearing" class="def">textExtentsYbearing</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:textExtentsWidth" class="def">textExtentsWidth</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:textExtentsHeight" class="def">textExtentsHeight</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:textExtentsXadvance" class="def">textExtentsXadvance</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:textExtentsYadvance" class="def">textExtentsYadvance</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></dt><dd class="doc empty"> </dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:TextExtents" class="caption collapser" onclick="toggleSection('i:TextExtents')">Instances</p><div id="section.i:TextExtents" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> <a href="Graphics-Rendering-Cairo.html#t:TextExtents">TextExtents</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-189" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:FontExtents" class="def">FontExtents</a> <a href="src/Graphics-Rendering-Cairo-Types.html#FontExtents" class="link">Source</a></p><div class="doc"><p>Result of querying the font extents.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:FontExtents" class="def">FontExtents</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:fontExtentsAscent" class="def">fontExtentsAscent</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:fontExtentsDescent" class="def">fontExtentsDescent</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:fontExtentsHeight" class="def">fontExtentsHeight</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:fontExtentsMaxXadvance" class="def">fontExtentsMaxXadvance</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:fontExtentsMaxYadvance" class="def">fontExtentsMaxYadvance</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></dt><dd class="doc empty"> </dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:FontExtents" class="caption collapser" onclick="toggleSection('i:FontExtents')">Instances</p><div id="section.i:FontExtents" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> <a href="Graphics-Rendering-Cairo.html#t:FontExtents">FontExtents</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-222" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:FontSlant" class="def">FontSlant</a> <a href="src/Graphics-Rendering-Cairo-Types.html#FontSlant" class="link">Source</a></p><div class="doc"><p>Specify font slant.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:FontSlantNormal" class="def">FontSlantNormal</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:FontSlantItalic" class="def">FontSlantItalic</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:FontSlantOblique" class="def">FontSlantOblique</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:FontSlant" class="caption collapser" onclick="toggleSection('i:FontSlant')">Instances</p><div id="section.i:FontSlant" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-Rendering-Cairo.html#t:FontSlant">FontSlant</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-245" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-Cairo.html#t:FontSlant">FontSlant</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-245" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-Cairo.html#t:FontSlant">FontSlant</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-245" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:FontWeight" class="def">FontWeight</a> <a href="src/Graphics-Rendering-Cairo-Types.html#FontWeight" class="link">Source</a></p><div class="doc"><p>Specify font weight.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:FontWeightNormal" class="def">FontWeightNormal</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:FontWeightBold" class="def">FontWeightBold</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:FontWeight" class="caption collapser" onclick="toggleSection('i:FontWeight')">Instances</p><div id="section.i:FontWeight" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-Rendering-Cairo.html#t:FontWeight">FontWeight</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-247" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-Cairo.html#t:FontWeight">FontWeight</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-247" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-Cairo.html#t:FontWeight">FontWeight</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-247" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:SubpixelOrder" class="def">SubpixelOrder</a> <a href="src/Graphics-Rendering-Cairo-Types.html#SubpixelOrder" class="link">Source</a></p><div class="doc"><p>The subpixel order specifies the order of color elements within each pixel
on the display device when rendering with an antialiasing mode of
<code><a href="Graphics-Rendering-Cairo.html#v:AntialiasSubpixel">AntialiasSubpixel</a></code>.</p><dl><dt><code><a href="Graphics-Rendering-Cairo.html#v:SubpixelOrderDefault">SubpixelOrderDefault</a></code></dt><dd>Use the default subpixel order for for the
target device</dd><dt><code><a href="Graphics-Rendering-Cairo.html#v:SubpixelOrderRgb">SubpixelOrderRgb</a></code></dt><dd>Subpixel elements are arranged horizontally
with red at the left</dd><dt><code><a href="Graphics-Rendering-Cairo.html#v:SubpixelOrderBgr">SubpixelOrderBgr</a></code></dt><dd>Subpixel elements are arranged horizontally
with blue at the left</dd><dt><code><a href="Graphics-Rendering-Cairo.html#v:SubpixelOrderVrgb">SubpixelOrderVrgb</a></code></dt><dd>Subpixel elements are arranged vertically
with red at the top</dd><dt><code><a href="Graphics-Rendering-Cairo.html#v:SubpixelOrderVbgr">SubpixelOrderVbgr</a></code></dt><dd>Subpixel elements are arranged vertically
with blue at the top</dd></dl></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SubpixelOrderDefault" class="def">SubpixelOrderDefault</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:SubpixelOrderRgb" class="def">SubpixelOrderRgb</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:SubpixelOrderBgr" class="def">SubpixelOrderBgr</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:SubpixelOrderVrgb" class="def">SubpixelOrderVrgb</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:SubpixelOrderVbgr" class="def">SubpixelOrderVbgr</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:SubpixelOrder" class="caption collapser" onclick="toggleSection('i:SubpixelOrder')">Instances</p><div id="section.i:SubpixelOrder" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-Rendering-Cairo.html#t:SubpixelOrder">SubpixelOrder</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-271" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-Cairo.html#t:SubpixelOrder">SubpixelOrder</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-271" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-Cairo.html#t:SubpixelOrder">SubpixelOrder</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-271" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:HintStyle" class="def">HintStyle</a> <a href="src/Graphics-Rendering-Cairo-Types.html#HintStyle" class="link">Source</a></p><div class="doc"><p>Specifies the type of hinting to do on font outlines.</p><p>Hinting is the process of fitting outlines to the pixel grid in order to
improve the appearance of the result. Since hinting outlines involves
distorting them, it also reduces the faithfulness to the original outline
shapes. Not all of the outline hinting styles are supported by all font
backends.</p><dl><dt><code><a href="Graphics-Rendering-Cairo.html#v:HintStyleDefault">HintStyleDefault</a></code></dt><dd>Use the default hint style for for font backend and
target device</dd><dt><code><a href="Graphics-Rendering-Cairo.html#v:HintStyleNone">HintStyleNone</a></code></dt><dd>Do not hint outlines</dd><dt><code><a href="Graphics-Rendering-Cairo.html#v:HintStyleSlight">HintStyleSlight</a></code></dt><dd>Hint outlines slightly to improve contrast while
retaining good fidelity to the original shapes.</dd><dt><code><a href="Graphics-Rendering-Cairo.html#v:HintStyleMedium">HintStyleMedium</a></code></dt><dd>Hint outlines with medium strength giving a compromise
between fidelity to the original shapes and contrast</dd><dt><code><a href="Graphics-Rendering-Cairo.html#v:HintStyleFull">HintStyleFull</a></code></dt><dd>Hint outlines to maximize contrast</dd></dl></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:HintStyleDefault" class="def">HintStyleDefault</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HintStyleNone" class="def">HintStyleNone</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HintStyleSlight" class="def">HintStyleSlight</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HintStyleMedium" class="def">HintStyleMedium</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HintStyleFull" class="def">HintStyleFull</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:HintStyle" class="caption collapser" onclick="toggleSection('i:HintStyle')">Instances</p><div id="section.i:HintStyle" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-Rendering-Cairo.html#t:HintStyle">HintStyle</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-294" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:HintMetrics" class="def">HintMetrics</a> <a href="src/Graphics-Rendering-Cairo-Types.html#HintMetrics" class="link">Source</a></p><div class="doc"><p>Specifies whether to hint font metrics.</p><p>Hinting font metrics means quantizing them so that they are integer values
in device space. Doing this improves the consistency of letter and line
spacing, however it also means that text will be laid out differently at
different zoom factors.</p><dl><dt><code><a href="Graphics-Rendering-Cairo.html#v:HintMetricsDefault">HintMetricsDefault</a></code></dt><dd>Hint metrics in the default manner for the font
backend and target device</dd><dt><code><a href="Graphics-Rendering-Cairo.html#v:HintMetricsOff">HintMetricsOff</a></code></dt><dd>Do not hint font metrics</dd><dt><code><a href="Graphics-Rendering-Cairo.html#v:HintMetricsOn">HintMetricsOn</a></code></dt><dd>Hint font metrics</dd></dl></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:HintMetricsDefault" class="def">HintMetricsDefault</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HintMetricsOff" class="def">HintMetricsOff</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HintMetricsOn" class="def">HintMetricsOn</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:HintMetrics" class="caption collapser" onclick="toggleSection('i:HintMetrics')">Instances</p><div id="section.i:HintMetrics" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-Rendering-Cairo.html#t:HintMetrics">HintMetrics</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-309" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-Cairo.html#t:HintMetrics">HintMetrics</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-309" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-Cairo.html#t:HintMetrics">HintMetrics</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-309" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:FontOptions" class="def">FontOptions</a> <a href="src/Graphics-Rendering-Cairo-Types.html#FontOptions" class="link">Source</a></p><div class="doc"><p>Specifies how to render text.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Path" class="def">Path</a> <a href="src/Graphics-Rendering-Cairo-Types.html#Path" class="link">Source</a></p><div class="doc"><p>A Cairo path.</p><ul><li>A path is a sequence of drawing operations that are accumulated until
<code><a href="Graphics-Rendering-Cairo.html#v:stroke">stroke</a></code> is called. Using a path is particularly
useful when drawing lines with special join styles and
<code><a href="Graphics-Rendering-Cairo.html#v:closePath">closePath</a></code>.</li></ul></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:RectangleInt" class="def">RectangleInt</a> <a href="src/Graphics-Rendering-Cairo-Types.html#RectangleInt" class="link">Source</a></p><div class="doc"><p>A data structure for holding a rectangle with integer coordinates.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:RectangleInt" class="def">RectangleInt</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:x" class="def">x</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:y" class="def">y</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:width" class="def">width</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:height" class="def">height</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></dt><dd class="doc empty"> </dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:RectangleInt" class="caption collapser" onclick="toggleSection('i:RectangleInt')">Instances</p><div id="section.i:RectangleInt" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-355" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:RegionOverlap" class="def">RegionOverlap</a> <a href="src/Graphics-Rendering-Cairo-Types.html#RegionOverlap" class="link">Source</a></p><div class="doc"><p>Used as the return value for regionContainsRectangle.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:RegionOverlapIn" class="def">RegionOverlapIn</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:RegionOverlapOut" class="def">RegionOverlapOut</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:RegionOverlapPart" class="def">RegionOverlapPart</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:RegionOverlap" class="caption collapser" onclick="toggleSection('i:RegionOverlap')">Instances</p><div id="section.i:RegionOverlap" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-Rendering-Cairo.html#t:RegionOverlap">RegionOverlap</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-375" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-Cairo.html#t:RegionOverlap">RegionOverlap</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-375" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-Cairo.html#t:RegionOverlap">RegionOverlap</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-375" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Region" class="def">Region</a> <a href="src/Graphics-Rendering-Cairo-Types.html#Region" class="link">Source</a></p><div class="doc"><p>A Cairo region. Represents a set of integer-aligned rectangles.</p><p>It allows set-theoretical operations like regionUnion and regionIntersect to be performed on them.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Content" class="def">Content</a> <a href="src/Graphics-Rendering-Cairo-Types.html#Content" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ContentColor" class="def">ContentColor</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:ContentAlpha" class="def">ContentAlpha</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:ContentColorAlpha" class="def">ContentColorAlpha</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Content" class="caption collapser" onclick="toggleSection('i:Content')">Instances</p><div id="section.i:Content" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-Rendering-Cairo.html#t:Content">Content</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-394" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-Cairo.html#t:Content">Content</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-393" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-Cairo.html#t:Content">Content</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-393" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Format" class="def">Format</a> <a href="src/Graphics-Rendering-Cairo-Types.html#Format" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:FormatARGB32" class="def">FormatARGB32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:FormatRGB24" class="def">FormatRGB24</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:FormatA8" class="def">FormatA8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:FormatA1" class="def">FormatA1</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Format" class="caption collapser" onclick="toggleSection('i:Format')">Instances</p><div id="section.i:Format" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-Rendering-Cairo.html#t:Format">Format</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-397" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-Cairo.html#t:Format">Format</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-397" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-Cairo.html#t:Format">Format</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-397" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Extend" class="def">Extend</a> <a href="src/Graphics-Rendering-Cairo-Types.html#Extend" class="link">Source</a></p><div class="doc"><p>FIXME: We should find out about this.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ExtendNone" class="def">ExtendNone</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:ExtendRepeat" class="def">ExtendRepeat</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:ExtendReflect" class="def">ExtendReflect</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:ExtendPad" class="def">ExtendPad</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Extend" class="caption collapser" onclick="toggleSection('i:Extend')">Instances</p><div id="section.i:Extend" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-Rendering-Cairo.html#t:Extend">Extend</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-404" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-Cairo.html#t:Extend">Extend</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-404" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-Cairo.html#t:Extend">Extend</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-404" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Filter" class="def">Filter</a> <a href="src/Graphics-Rendering-Cairo-Types.html#Filter" class="link">Source</a></p><div class="doc"><p>Specify how filtering is done.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:FilterFast" class="def">FilterFast</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:FilterGood" class="def">FilterGood</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:FilterBest" class="def">FilterBest</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:FilterNearest" class="def">FilterNearest</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:FilterBilinear" class="def">FilterBilinear</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:FilterGaussian" class="def">FilterGaussian</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Filter" class="caption collapser" onclick="toggleSection('i:Filter')">Instances</p><div id="section.i:Filter" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-Rendering-Cairo.html#t:Filter">Filter</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-409" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-Cairo.html#t:Filter">Filter</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-409" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-Cairo.html#t:Filter">Filter</a></span> <a href="src/Graphics-Rendering-Cairo-Types.html#line-409" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.1</p></div></body></html>
|