This file is indexed.

/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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a -&gt; 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> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a) -&gt; <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> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <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>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <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> -&gt; <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> -&gt; <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> -&gt; <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> -&gt; <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> -&gt; <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> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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 =&gt; string -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a) -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a) -&gt; <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> -&gt; (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a) -&gt; <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> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a) -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a) -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a) -&gt; <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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Extend">Extend</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Filter">Filter</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -&gt; 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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <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> -&gt; <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> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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 =&gt; string -&gt; <a href="Graphics-Rendering-Cairo.html#t:FontSlant">FontSlant</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:FontWeight">FontWeight</a> -&gt; <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> -&gt; <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> -&gt; <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> -&gt; <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 =&gt; string -&gt; <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 =&gt; string -&gt; <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 =&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Antialias">Antialias</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:SubpixelOrder">SubpixelOrder</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:HintStyle">HintStyle</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:HintMetrics">HintMetrics</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; 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> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Content">Content</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a) -&gt; <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> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Content">Content</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a) -&gt; <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> -&gt; <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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; m ()</li><li class="src short"><a href="#v:withImageSurface">withImageSurface</a> :: <a href="Graphics-Rendering-Cairo.html#t:Format">Format</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a) -&gt; <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 -&gt; <a href="Graphics-Rendering-Cairo.html#t:Format">Format</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a) -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <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 -&gt; <a href="Graphics-Rendering-Cairo.html#t:Format">Format</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; 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> -&gt; <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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <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> -&gt; (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a) -&gt; <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> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:FilePath">FilePath</a> -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a) -&gt; <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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; 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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a) -&gt; <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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; 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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a) -&gt; <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 =&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a> -&gt; 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 =&gt; [<a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a>] -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a> -&gt; 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 =&gt; <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 -&gt; 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">&nbsp;</td></tr><tr><td class="src">=&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">-&gt; m a</td><td class="doc empty">&nbsp;</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&lt;backend&gt;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> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a) -&gt; <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> -&gt; <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">-&gt; <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">-&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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 &quot;on&quot; and &quot;off&quot; 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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; string</td><td class="doc"><ul><li></li></ul></td></tr><tr><td class="src">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <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">-&gt; (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">-&gt; (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</td><td class="doc empty">&nbsp;</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> -&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; (<a href="Graphics-Rendering-Cairo.html#t:Pattern">Pattern</a> -&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; m ()</td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; m ()</td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <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">-&gt; <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">-&gt; m ()</td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <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">-&gt; m <a href="Graphics-Rendering-Cairo.html#t:Matrix">Matrix</a></td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <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">-&gt; <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">-&gt; m ()</td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <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">-&gt; m <a href="Graphics-Rendering-Cairo.html#t:Extend">Extend</a></td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <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">-&gt; <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">-&gt; m ()</td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <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">-&gt; m <a href="Graphics-Rendering-Cairo.html#t:Filter">Filter</a></td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <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">&nbsp;</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">-&gt; <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">-&gt; <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">&nbsp;</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">-&gt; <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">-&gt; <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">&nbsp;</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">-&gt; <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">-&gt; <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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; string</td><td class="doc"><p><code>family</code> - a font family name</p></td></tr><tr><td class="src">-&gt; <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">-&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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> -&gt; <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">&nbsp;</td></tr><tr><td class="src">=&gt; string</td><td class="doc"><p>a string of text</p></td></tr><tr><td class="src">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> ()</td><td class="doc empty">&nbsp;</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 &quot;toy&quot; 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">&nbsp;</td></tr><tr><td class="src">=&gt; string</td><td class="doc"><p>a string of text</p></td></tr><tr><td class="src">-&gt; <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">&nbsp;</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 &quot;inked&quot; 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 =&gt; 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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a></td><td class="doc"><pre>original</pre></td></tr><tr><td class="src">-&gt; m <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a></td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a></td><td class="doc"><pre>options</pre></td></tr><tr><td class="src">-&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a></td><td class="doc"><pre>other</pre></td></tr><tr><td class="src">-&gt; m ()</td><td class="doc empty">&nbsp;</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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:Antialias">Antialias</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:SubpixelOrder">SubpixelOrder</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:HintStyle">HintStyle</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; <a href="Graphics-Rendering-Cairo.html#t:HintMetrics">HintMetrics</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:FontOptions">FontOptions</a> -&gt; 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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <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">&nbsp;</td></tr><tr><td class="src">-&gt; <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">&nbsp;</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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">&nbsp;</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">-&gt; <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">-&gt; <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">-&gt; (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <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">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Render">Render</a> a</td><td class="doc empty">&nbsp;</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 -&gt; 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> -&gt; <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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; 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">&nbsp;</td></tr><tr><td class="src">=&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; m ()</td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <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">-&gt; <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">-&gt; <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">-&gt; m ()</td><td class="doc empty">&nbsp;</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">-&gt; <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">-&gt; <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">-&gt; (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <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">-&gt; <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">&nbsp;</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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <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">-&gt; <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">&nbsp;</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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">-&gt; <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">&nbsp;</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">-&gt; <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">-&gt; <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">-&gt; <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">&nbsp;</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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; 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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; 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> -&gt; <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 =&gt; <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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <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 &lt;- (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> -&gt; (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a) -&gt; <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> -&gt; <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">-&gt; <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">-&gt; <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">&nbsp;</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">-&gt; <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">-&gt; <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">-&gt; (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <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">-&gt; <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">&nbsp;</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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; 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">-&gt; <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">-&gt; <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">-&gt; (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <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">-&gt; <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">&nbsp;</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 =&gt; <a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a> -&gt; 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">-&gt; <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">-&gt; <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">-&gt; (<a href="Graphics-Rendering-Cairo.html#t:Surface">Surface</a> -&gt; <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">-&gt; <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">&nbsp;</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 =&gt; 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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></td><td class="doc"><pre>rectangle</pre></td></tr><tr><td class="src">-&gt; m <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; [<a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a>]</td><td class="doc"><pre>rects</pre></td></tr><tr><td class="src">-&gt; m <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>original</pre></td></tr><tr><td class="src">-&gt; m <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>region</pre></td></tr><tr><td class="src">-&gt; m <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>region</pre></td></tr><tr><td class="src">-&gt; 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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>region</pre></td></tr><tr><td class="src">-&gt; <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">-&gt; m <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>region</pre></td></tr><tr><td class="src">-&gt; 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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>region</pre></td></tr><tr><td class="src">-&gt; <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">-&gt; <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">-&gt; 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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>region</pre></td></tr><tr><td class="src">-&gt; <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></td><td class="doc"><pre>rectangle</pre></td></tr><tr><td class="src">-&gt; m <a href="Graphics-Rendering-Cairo.html#t:RegionOverlap">RegionOverlap</a></td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>region_a</pre></td></tr><tr><td class="src">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>region_b</pre></td></tr><tr><td class="src">-&gt; 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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>region</pre></td></tr><tr><td class="src">-&gt; <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">-&gt; <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">-&gt; m ()</td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>dst</pre></td></tr><tr><td class="src">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>other</pre></td></tr><tr><td class="src">-&gt; m ()</td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>dst</pre></td></tr><tr><td class="src">-&gt; <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></td><td class="doc"><pre>rectangle</pre></td></tr><tr><td class="src">-&gt; m ()</td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>dst</pre></td></tr><tr><td class="src">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>other</pre></td></tr><tr><td class="src">-&gt; m ()</td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>dst</pre></td></tr><tr><td class="src">-&gt; <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></td><td class="doc"><pre>rectangle</pre></td></tr><tr><td class="src">-&gt; m ()</td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>dst</pre></td></tr><tr><td class="src">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>other</pre></td></tr><tr><td class="src">-&gt; m ()</td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>dst</pre></td></tr><tr><td class="src">-&gt; <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></td><td class="doc"><pre>rectangle</pre></td></tr><tr><td class="src">-&gt; m ()</td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>dst</pre></td></tr><tr><td class="src">-&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>other</pre></td></tr><tr><td class="src">-&gt; m ()</td><td class="doc empty">&nbsp;</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">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="Graphics-Rendering-Cairo.html#t:Region">Region</a></td><td class="doc"><pre>dst</pre></td></tr><tr><td class="src">-&gt; <a href="Graphics-Rendering-Cairo.html#t:RectangleInt">RectangleInt</a></td><td class="doc"><pre>rectangle</pre></td></tr><tr><td class="src">-&gt; m ()</td><td class="doc empty">&nbsp;</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 =&gt; <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 -&gt; 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 &quot;X.Y.Z&quot;.</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusNoMemory" class="def">StatusNoMemory</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusInvalidRestore" class="def">StatusInvalidRestore</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusInvalidPopGroup" class="def">StatusInvalidPopGroup</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusNoCurrentPoint" class="def">StatusNoCurrentPoint</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusInvalidMatrix" class="def">StatusInvalidMatrix</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusInvalidStatus" class="def">StatusInvalidStatus</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusNullPointer" class="def">StatusNullPointer</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusInvalidString" class="def">StatusInvalidString</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusInvalidPathData" class="def">StatusInvalidPathData</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusReadError" class="def">StatusReadError</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusWriteError" class="def">StatusWriteError</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusSurfaceFinished" class="def">StatusSurfaceFinished</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusSurfaceTypeMismatch" class="def">StatusSurfaceTypeMismatch</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusPatternTypeMismatch" class="def">StatusPatternTypeMismatch</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusInvalidContent" class="def">StatusInvalidContent</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusInvalidFormat" class="def">StatusInvalidFormat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusInvalidVisual" class="def">StatusInvalidVisual</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusFileNotFound" class="def">StatusFileNotFound</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusInvalidDash" class="def">StatusInvalidDash</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusInvalidDscComment" class="def">StatusInvalidDscComment</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusInvalidIndex" class="def">StatusInvalidIndex</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusClipNotRepresentable" class="def">StatusClipNotRepresentable</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusTempFileError" class="def">StatusTempFileError</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusInvalidStride" class="def">StatusInvalidStride</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusFontTypeMismatch" class="def">StatusFontTypeMismatch</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusUserFontImmutable" class="def">StatusUserFontImmutable</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusUserFontError" class="def">StatusUserFontError</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusNegativeCount" class="def">StatusNegativeCount</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusInvalidClusters" class="def">StatusInvalidClusters</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusInvalidSlant" class="def">StatusInvalidSlant</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusInvalidWeight" class="def">StatusInvalidWeight</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusInvalidSize" class="def">StatusInvalidSize</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusUserFontNotImplemented" class="def">StatusUserFontNotImplemented</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusDeviceTypeMismatch" class="def">StatusDeviceTypeMismatch</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusDeviceError" class="def">StatusDeviceError</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusInvalidMeshConstruction" class="def">StatusInvalidMeshConstruction</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusDeviceFinished" class="def">StatusDeviceFinished</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusJbig2GlobalMissing" class="def">StatusJbig2GlobalMissing</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StatusLastStatus" class="def">StatusLastStatus</a></td><td class="doc empty">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorSource" class="def">OperatorSource</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorOver" class="def">OperatorOver</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorIn" class="def">OperatorIn</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorOut" class="def">OperatorOut</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorAtop" class="def">OperatorAtop</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorDest" class="def">OperatorDest</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorDestOver" class="def">OperatorDestOver</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorDestIn" class="def">OperatorDestIn</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorDestOut" class="def">OperatorDestOut</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorDestAtop" class="def">OperatorDestAtop</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorXor" class="def">OperatorXor</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorAdd" class="def">OperatorAdd</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorSaturate" class="def">OperatorSaturate</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorMultiply" class="def">OperatorMultiply</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorScreen" class="def">OperatorScreen</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorOverlay" class="def">OperatorOverlay</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorDarken" class="def">OperatorDarken</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorLighten" class="def">OperatorLighten</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorColorDodge" class="def">OperatorColorDodge</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorColorBurn" class="def">OperatorColorBurn</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorHardLight" class="def">OperatorHardLight</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorSoftLight" class="def">OperatorSoftLight</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorDifference" class="def">OperatorDifference</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorExclusion" class="def">OperatorExclusion</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorHslHue" class="def">OperatorHslHue</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorHslSaturation" class="def">OperatorHslSaturation</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorHslColor" class="def">OperatorHslColor</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OperatorHslLuminosity" class="def">OperatorHslLuminosity</a></td><td class="doc empty">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src"><a name="v:AntialiasNone" class="def">AntialiasNone</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:AntialiasGray" class="def">AntialiasGray</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:AntialiasSubpixel" class="def">AntialiasSubpixel</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:AntialiasFast" class="def">AntialiasFast</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:AntialiasGood" class="def">AntialiasGood</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:AntialiasBest" class="def">AntialiasBest</a></td><td class="doc empty">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src"><a name="v:FillRuleEvenOdd" class="def">FillRuleEvenOdd</a></td><td class="doc empty">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src"><a name="v:LineCapRound" class="def">LineCapRound</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:LineCapSquare" class="def">LineCapSquare</a></td><td class="doc empty">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src"><a name="v:LineJoinRound" class="def">LineJoinRound</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:LineJoinBevel" class="def">LineJoinBevel</a></td><td class="doc empty">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src"><a name="v:FontSlantItalic" class="def">FontSlantItalic</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:FontSlantOblique" class="def">FontSlantOblique</a></td><td class="doc empty">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src"><a name="v:FontWeightBold" class="def">FontWeightBold</a></td><td class="doc empty">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src"><a name="v:SubpixelOrderRgb" class="def">SubpixelOrderRgb</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SubpixelOrderBgr" class="def">SubpixelOrderBgr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SubpixelOrderVrgb" class="def">SubpixelOrderVrgb</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SubpixelOrderVbgr" class="def">SubpixelOrderVbgr</a></td><td class="doc empty">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src"><a name="v:HintStyleNone" class="def">HintStyleNone</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:HintStyleSlight" class="def">HintStyleSlight</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:HintStyleMedium" class="def">HintStyleMedium</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:HintStyleFull" class="def">HintStyleFull</a></td><td class="doc empty">&nbsp;</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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src"><a name="v:HintMetricsOff" class="def">HintMetricsOff</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:HintMetricsOn" class="def">HintMetricsOn</a></td><td class="doc empty">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src"><a name="v:RegionOverlapOut" class="def">RegionOverlapOut</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:RegionOverlapPart" class="def">RegionOverlapPart</a></td><td class="doc empty">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src"><a name="v:ContentAlpha" class="def">ContentAlpha</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ContentColorAlpha" class="def">ContentColorAlpha</a></td><td class="doc empty">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src"><a name="v:FormatRGB24" class="def">FormatRGB24</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:FormatA8" class="def">FormatA8</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:FormatA1" class="def">FormatA1</a></td><td class="doc empty">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src"><a name="v:ExtendRepeat" class="def">ExtendRepeat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ExtendReflect" class="def">ExtendReflect</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ExtendPad" class="def">ExtendPad</a></td><td class="doc empty">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src"><a name="v:FilterGood" class="def">FilterGood</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:FilterBest" class="def">FilterBest</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:FilterNearest" class="def">FilterNearest</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:FilterBilinear" class="def">FilterBilinear</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:FilterGaussian" class="def">FilterGaussian</a></td><td class="doc empty">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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>