home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / usr / lib / perl5 / Cairo.pm next >
Encoding:
Perl POD Document  |  2006-09-24  |  15.1 KB  |  1,070 lines

  1. #
  2. # Copyright (c) 2004-2006 by the cairo perl team (see the file README)
  3. #
  4. # Licensed under the LGPL, see LICENSE file for more information.
  5. #
  6. # $Header: /cvs/cairo/cairo-perl/Cairo.pm,v 1.21 2006/09/24 21:26:40 tsch Exp $
  7. #
  8.  
  9. package Cairo;
  10.  
  11. use strict;
  12. use warnings;
  13. use DynaLoader;
  14.  
  15. our @ISA = qw/DynaLoader/;
  16.  
  17. our $VERSION = '1.01';
  18.  
  19. sub dl_load_flags { $^O eq 'darwin' ? 0x00 : 0x01 }
  20.  
  21. Cairo->bootstrap ($VERSION);
  22.  
  23. # --------------------------------------------------------------------------- #
  24.  
  25. package Cairo;
  26.  
  27. 1;
  28.  
  29. __END__
  30.  
  31. =head1 NAME
  32.  
  33. Cairo - Perl interface to the cairo library
  34.  
  35. =head1 SYNOPSIS
  36.  
  37.   use Cairo;
  38.  
  39.   my $surface = Cairo::ImageSurface->create ('argb32', 100, 100);
  40.   my $cr = Cairo::Context->create ($surface);
  41.  
  42.   $cr->rectangle (10, 10, 40, 40);
  43.   $cr->set_source_rgb (0, 0, 0);
  44.   $cr->fill;
  45.  
  46.   $cr->rectangle (50, 50, 40, 40);
  47.   $cr->set_source_rgb (1, 1, 1);
  48.   $cr->fill;
  49.  
  50.   $cr->show_page;
  51.  
  52.   $surface->write_to_png ("output.png");
  53.  
  54. =head1 ABSTRACT
  55.  
  56. Cairo provides Perl bindings for the vector graphics library cairo.  It
  57. supports multiple output targets, including PNG, PDF and SVG.  Cairo produces
  58. identical output on all those targets.
  59.  
  60. =head1 API DOCUMENTATION
  61.  
  62. Note that this listing still lacks entries for I<Cairo::Surface>s and some
  63. utility methods.
  64.  
  65. =head2 Drawing
  66.  
  67. =head3 Cairo::Context -- The cairo drawing context
  68.  
  69. I<Cairo::Context> is the main object used when drawing with Cairo. To draw with
  70. Cairo, you create a I<Cairo::Context>, set the target surface, and drawing
  71. options for the I<Cairo::Context>, create shapes with methods like
  72. C<$cr->move_to> and C<$cr-E<gt>line_to>, and then draw shapes with
  73. C<$cr-E<gt>stroke> or C<$cr-E<gt>fill>.
  74.  
  75. I<Cairo::Context>'s can be pushed to a stack via C<$cr-E<gt>save>. They may
  76. then safely be changed, without loosing the current state. Use
  77. C<$cr-E<gt>restore> to restore to the saved state.
  78. =over
  79.  
  80. =head4 $cr = Cairo::Context->create ($surface)
  81.  
  82. =over
  83.  
  84. =item $surface: I<Cairo::Surface>
  85.  
  86. =back
  87.  
  88. =head4 $cr-E<gt>save
  89.  
  90. =head4 $cr->restore
  91.  
  92. =head4 $status = $cr->status
  93.  
  94. =head4 $surface = $cr->get_target
  95.  
  96. =head4 $cr->push_group
  97.  
  98. =head4 $cr->push_group_with_content ($content)
  99.  
  100. =over
  101.  
  102. =item $content: I<Cairo::Content>
  103.  
  104. =back
  105.  
  106. =head4 $pattern = $cr->pop_group
  107.  
  108. =head4 $cr->pop_group_to_source
  109.  
  110. =head4 $surface = $cr->get_group_target
  111.  
  112. =head4 $cr->set_source_rgb ($red, $green, $blue)
  113.  
  114. =over
  115.  
  116. =item $red: double
  117.  
  118. =item $green: double
  119.  
  120. =item $blue: double
  121.  
  122. =back
  123.  
  124. =head4 $cr->set_source_rgba ($red, $green, $blue, $alpha)
  125.  
  126. =over
  127.  
  128. =item $red: double
  129.  
  130. =item $green: double
  131.  
  132. =item $blue: double
  133.  
  134. =item $alpha: double
  135.  
  136. =back
  137.  
  138. =head4 $cr->set_source ($source)
  139.  
  140. =over
  141.  
  142. =item $source: I<Cairo::Pattern>
  143.  
  144. =back
  145.  
  146. =head4 $cr->set_source_surface ($surface, $x, $y)
  147.  
  148. =over
  149.  
  150. =item $surface: I<Cairo::Surface>
  151.  
  152. =item $x: double
  153.  
  154. =item $y: double
  155.  
  156. =back
  157.  
  158. =head4 $source = $cr->get_source
  159.  
  160. =head4 $cr->set_antialias ($antialias)
  161.  
  162. =over
  163.  
  164. =item $antialias: I<Cairo::Antialias>
  165.  
  166. =back
  167.  
  168. =head4 $antialias = $cr->get_antialias
  169.  
  170. =head4 $cr->set_dash ($offset, ...)
  171.  
  172. =over
  173.  
  174. =item $offset: double
  175.  
  176. =item ...: list of doubles
  177.  
  178. =back
  179.  
  180. =head4 $cr->set_fill_rule ($fill_rule)
  181.  
  182. =over
  183.  
  184. =item $fill_rule: I<Cairo::FillRule>
  185.  
  186. =back
  187.  
  188. =head4 $fill_rule = $cr->get_fill_rule
  189.  
  190. =head4 $cr->set_line_cap ($line_cap)
  191.  
  192. =over
  193.  
  194. =item $line_cap: I<Cairo::LineCap>
  195.  
  196. =back
  197.  
  198. =head4 $line_cap = $cr->get_line_cap
  199.  
  200. =head4 $cr->set_line_join ($line_join)
  201.  
  202. =over
  203.  
  204. =item $line_join: I<Cairo::LineJoin>
  205.  
  206. =back
  207.  
  208. =head4 $line_join = $cr->get_line_join
  209.  
  210. =head4 $cr->set_line_width ($width)
  211.  
  212. =over
  213.  
  214. =item $width: double
  215.  
  216. =back
  217.  
  218. =head4 $width = $cr->get_line_width
  219.  
  220. =head4 $cr->set_miter_limit ($ limit)
  221.  
  222. =over
  223.  
  224. =item $limit: double
  225.  
  226. =back
  227.  
  228. =head4 $limit = $cr->get_miter_limit
  229.  
  230. =head4 $cr->set_operator ($op)
  231.  
  232. =over
  233.  
  234. =item $op: I<Cairo::Operator>
  235.  
  236. =back
  237.  
  238. =head4 $op = $cr->get_operator
  239.  
  240. =head4 $cr->set_tolerance ($tolerance)
  241.  
  242. =over
  243.  
  244. =item $tolerance: double
  245.  
  246. =back
  247.  
  248. =head4 $tolerance = $cr->get_tolerance
  249.  
  250. =head4 $cr->clip
  251.  
  252. =head4 $cr->clip_preserve
  253.  
  254. =head4 $cr->reset_clip
  255.  
  256. =head4 $cr->fill
  257.  
  258. =head4 $cr->fill_preserve
  259.  
  260. =head4 ($x1, $y1, $x2, $y2) = $cr->fill_extents
  261.  
  262. =head4 $bool = $cr->in_fill ($x, $y)
  263.  
  264. =over
  265.  
  266. =item $x: double
  267.  
  268. =item $y: double
  269.  
  270. =back
  271.  
  272. =head4 $cr->mask ($pattern)
  273.  
  274. =over
  275.  
  276. =item $pattern: I<Cairo::Pattern>
  277.  
  278. =back
  279.  
  280. =head4 $cr->mask_surface ($surface, $surface_x, $surface_y)
  281.  
  282. =over
  283.  
  284. =item $surface: I<Cairo::Surface>
  285.  
  286. =item $surface_x: double
  287.  
  288. =item $surface_y: double
  289.  
  290. =back
  291.  
  292. =head4 $cr->paint
  293.  
  294. =head4 $cr->paint_with_alpha ($alpha)
  295.  
  296. =over
  297.  
  298. =item $alpha: double
  299.  
  300. =back
  301.  
  302. =head4 $cr->stroke
  303.  
  304. =head4 $cr->stroke_preserve
  305.  
  306. =head4 ($x1, $y1, $x2, $y2) = $cr->stroke_extents
  307.  
  308. =head4 $bool = $cr->in_stroke ($x, $y)
  309.  
  310. =over
  311.  
  312. =item $x: double
  313.  
  314. =item $y: double
  315.  
  316. =back
  317.  
  318. =head4 $cr->copy_page
  319.  
  320. =head4 $cr->show_page
  321.  
  322. =cut
  323.  
  324. # --------------------------------------------------------------------------- #
  325.  
  326. =head3 Paths -- Creating paths and manipulating path data
  327.  
  328.   $path = [
  329.     { type => "move-to", points => [[1, 2]] },
  330.     { type => "line-to", points => [[3, 4]] },
  331.     { type => "curve-to", points => [[5, 6], [7, 8], [9, 10]] },
  332.     ...
  333.     { type => "close-path", points => [] },
  334.   ];
  335.  
  336. I<Cairo::Path> is a data structure for holding a path. This data structure
  337. serves as the return value for C<$cr-E<gt>copy_path_data> and
  338. C<$cr-E<gt>copy_path_data_flat> as well the input value for
  339. C<$cr-E<gt>append_path>.
  340.  
  341. I<Cairo::Path> is represented as an array reference that contains path
  342. elements, represented by hash references with two keys: I<type> and I<points>.
  343. The value for I<type> can be either of the following:
  344.  
  345. =over
  346.  
  347. =item C<move-to>
  348.  
  349. =item C<line-to>
  350.  
  351. =item C<curve-to>
  352.  
  353. =item C<close-path>
  354.  
  355. =back
  356.  
  357. The value for I<points> is an array reference which contains zero or more
  358. points.  Points are represented as array references that contain two doubles:
  359. I<x> and I<y>.  The necessary number of points depends on the I<type> of the
  360. path element:
  361.  
  362. =over
  363.  
  364. =item C<move-to>: 1 point
  365.  
  366. =item C<line_to>: 1 point
  367.  
  368. =item C<curve-to>: 3 points
  369.  
  370. =item C<close-path>: 0 points
  371.  
  372. =back
  373.  
  374. The semantics and ordering of the coordinate values are consistent with
  375. C<$cr-E<gt>move_to>, C<$cr-E<gt>line_to>, C<$cr-E<gt>curve_to>, and
  376. C<$cr-E<gt>close_path>.
  377.  
  378. =head4 $path = $cr->copy_path
  379.  
  380. =head4 $path = $cr->copy_path_flat
  381.  
  382. =head4 $cr->append_path ($path)
  383.  
  384. =over
  385.  
  386. =item $path: I<Cairo::Path>
  387.  
  388. =back
  389.  
  390. =head4 ($x, $y) = $cr->get_current_point
  391.  
  392. =head4 $cr->new_path
  393.  
  394. =head4 $cr->new_sub_path
  395.  
  396. =head4 $cr->close_path
  397.  
  398. =head4 $cr->arc ($xc, $yc, $radius, $angle1, $angle2)
  399.  
  400. =over
  401.  
  402. =item $xc: double
  403.  
  404. =item $yc: double
  405.  
  406. =item $radius: double
  407.  
  408. =item $angle1: double
  409.  
  410. =item $angle2: double
  411.  
  412. =back
  413.  
  414. =head4 $cr->arc_negative ($xc, $yc, $radius, $angle1, $angle2)
  415.  
  416. =over
  417.  
  418. =item $xc: double
  419.  
  420. =item $yc: double
  421.  
  422. =item $radius: double
  423.  
  424. =item $angle1: double
  425.  
  426. =item $angle2: double
  427.  
  428. =back
  429.  
  430. =head4 $cr->curve_to ($x1, $y1, $x2, $y2, $x3, $y3)
  431.  
  432. =over
  433.  
  434. =item $x1: double
  435.  
  436. =item $y1: double
  437.  
  438. =item $x2: double
  439.  
  440. =item $y2: double
  441.  
  442. =item $x3: double
  443.  
  444. =item $y3: double
  445.  
  446. =back
  447.  
  448. =head4 $cr->line_to ($x, $y)
  449.  
  450. =over
  451.  
  452. =item $x: double
  453.  
  454. =item $y: double
  455.  
  456. =back
  457.  
  458. =head4 $cr->move_to ($x, $y)
  459.  
  460. =over
  461.  
  462. =item $x: double
  463.  
  464. =item $y: double
  465.  
  466. =back
  467.  
  468. =head4 $cr->rectangle ($x, $y, $width, $height)
  469.  
  470. =over
  471.  
  472. =item $x: double
  473.  
  474. =item $y: double
  475.  
  476. =item $width: double
  477.  
  478. =item $height: double
  479.  
  480. =back
  481.  
  482. =head4 $cr->glyph_path (...)
  483.  
  484. =over
  485.  
  486. =item ...: list of I<Cairo::Glyph>'s
  487.  
  488. =back
  489.  
  490. =head4 $cr->text_path ($utf8)
  491.  
  492. =over
  493.  
  494. =item $utf8: string in utf8 encoding
  495.  
  496. =back
  497.  
  498. =head4 $cr->rel_curve_to ($dx1, $dy1, $dx2, $dy2, $dx3, $dy3)
  499.  
  500. =over
  501.  
  502. =item $dx1: double
  503.  
  504. =item $dy1: double
  505.  
  506. =item $dx2: double
  507.  
  508. =item $dy2: double
  509.  
  510. =item $dx3: double
  511.  
  512. =item $dy3: double
  513.  
  514. =back
  515.  
  516. =head4 $cr->rel_line_to ($dx, $dy)
  517.  
  518. =over
  519.  
  520. =item $dx: double
  521.  
  522. =item $dy: double
  523.  
  524. =back
  525.  
  526. =head4 $cr->rel_move_to ($dx, $dy)
  527.  
  528. =over
  529.  
  530. =item $dx: double
  531.  
  532. =item $dy: double
  533.  
  534. =back
  535.  
  536. =cut
  537.  
  538. # --------------------------------------------------------------------------- #
  539.  
  540. =head3 Patterns -- Gradients and filtered sources
  541.  
  542. =head4 $status = $pattern->status
  543.  
  544. =head4 $type = $pattern->get_type
  545.  
  546. =head4 $pattern->set_matrix ($matrix)
  547.  
  548. =over
  549.  
  550. =item $matrix: I<Cairo::Matrix>
  551.  
  552. =back
  553.  
  554. =head4 $matrix = $pattern->get_matrix
  555.  
  556. =head4 $pattern = Cairo::SolidPattern->create_rgb ($red, $green, $blue)
  557.  
  558. =over
  559.  
  560. =item $red: double
  561.  
  562. =item $green: double
  563.  
  564. =item $blue: double
  565.  
  566. =back
  567.  
  568. =head4 $pattern = Cairo::SolidPattern->create_rgba ($red, $green, $blue, $alpha)
  569.  
  570. =over
  571.  
  572. =item $red: double
  573.  
  574. =item $green: double
  575.  
  576. =item $blue: double
  577.  
  578. =item $alpha: double
  579.  
  580. =back
  581.  
  582. =head4 $matrix = $pattern->get_matrix
  583.  
  584. =head4 $pattern = Cairo::SurfacePattern->create ($surface)
  585.  
  586. =over
  587.  
  588. =item $surface: I<Cairo::Surface>
  589.  
  590. =back
  591.  
  592. =head4 $pattern->set_extend ($extend)
  593.  
  594. =over
  595.  
  596. =item $extend: I<Cairo::Extend>
  597.  
  598. =back
  599.  
  600. =head4 $extend = $pattern->get_extend
  601.  
  602. =head4 $pattern->set_filter ($filter)
  603.  
  604. =over
  605.  
  606. =item $filter: I<Cairo::Filter>
  607.  
  608. =back
  609.  
  610. =head4 $filter = $pattern->get_filter
  611.  
  612. =head4 $pattern = Cairo::LinearGradient->create ($x0, $y0, $x1, $y1)
  613.  
  614. =over
  615.  
  616. =item $x0: double
  617.  
  618. =item $y0: double
  619.  
  620. =item $x1: double
  621.  
  622. =item $y1: double
  623.  
  624. =back
  625.  
  626. =head4 $pattern = Cairo::RadialGradient->create ($cx0, $cy0, $radius0, $cx1, $cy1, $radius1)
  627.  
  628. =over
  629.  
  630. =item $cx0: double
  631.  
  632. =item $cy0: double
  633.  
  634. =item $radius0: double
  635.  
  636. =item $cx1: double
  637.  
  638. =item $cy1: double
  639.  
  640. =item $radius1: double
  641.  
  642. =back
  643.  
  644. =head4 $pattern->add_color_stop_rgb (double offset, double red, double green, double blue)
  645.  
  646. =over
  647.  
  648. =item $offset: double
  649.  
  650. =item $red: double
  651.  
  652. =item $green: double
  653.  
  654. =item $blue: double
  655.  
  656. =back
  657.  
  658. =head4 $pattern->add_color_stop_rgba (double offset, double red, double green, double blue, double alpha)
  659.  
  660. =over
  661.  
  662. =item $offset: double
  663.  
  664. =item $red: double
  665.  
  666. =item $green: double
  667.  
  668. =item $blue: double
  669.  
  670. =item $alpha: double
  671.  
  672. =back
  673.  
  674. =cut
  675.  
  676. # --------------------------------------------------------------------------- #
  677.  
  678. =head3 Transformations -- Manipulating the current transformation matrix
  679.  
  680. =head4 $cr->translate ($tx, $ty)
  681.  
  682. =over
  683.  
  684. =item $tx: double
  685.  
  686. =item $ty: double
  687.  
  688. =back
  689.  
  690. =head4 $cr->scale ($sx, $sy)
  691.  
  692. =over
  693.  
  694. =item $sx: double
  695.  
  696. =item $sy: double
  697.  
  698. =back
  699.  
  700. =head4 $cr->rotate ($angle)
  701.  
  702. =over
  703.  
  704. =item $angle: double
  705.  
  706. =back
  707.  
  708. =head4 $cr->transform ($matrix)
  709.  
  710. =over
  711.  
  712. =item $matrix: I<Cairo::Matrix>
  713.  
  714. =back
  715.  
  716. =head4 $cr->set_matrix ($matrix)
  717.  
  718. =over
  719.  
  720. =item $matrix: I<Cairo::Matrix>
  721.  
  722. =back
  723.  
  724. =head4 $matrix = $cr->get_matrix
  725.  
  726. =head4 $cr->identity_matrix
  727.  
  728. =head4 ($x, $y) = $cr->user_to_device ($x, $y)
  729.  
  730. =over
  731.  
  732. =item $x: double
  733.  
  734. =item $y: double
  735.  
  736. =back
  737.  
  738. =head4 ($dx, $dy) = $cr->user_to_device_distance ($dx, $dy)
  739.  
  740. =over
  741.  
  742. =item $dx: double
  743.  
  744. =item $dy: double
  745.  
  746. =back
  747.  
  748. =head4 ($x, $y) = $cr->device_to_user ($x, $y)
  749.  
  750. =over
  751.  
  752. =item $x: double
  753.  
  754. =item $y: double
  755.  
  756. =back
  757.  
  758. =head4 ($dx, $dy) = $cr->device_to_user_distance ($dx, $dy)
  759.  
  760. =over
  761.  
  762. =item $dx: double
  763.  
  764. =item $dy: double
  765.  
  766. =back
  767.  
  768. =cut
  769.  
  770. # --------------------------------------------------------------------------- #
  771.  
  772. =head3 Text -- Rendering text and sets of glyphs
  773.  
  774. Glyphs are represented as anonymous hash references with three keys: I<index>,
  775. I<x> and I<y>.  Example:
  776.  
  777.   my @glyphs = ({ index => 1, x => 2, y => 3 },
  778.                 { index => 2, x => 3, y => 4 },
  779.                 { index => 3, x => 4, y => 5 });
  780.  
  781. =head4 $cr->select_font_face ($family, $slant, $weight)
  782.  
  783. =over
  784.  
  785. =item $family: string
  786.  
  787. =item $slant: I<Cairo::FontSlant>
  788.  
  789. =item $weight: I<Cairo::FontWeight>
  790.  
  791. =back
  792.  
  793. =head4 $cr->set_font_size ($size)
  794.  
  795. =over
  796.  
  797. =item $size: double
  798.  
  799. =back
  800.  
  801. =head4 $cr->set_font_matrix ($matrix)
  802.  
  803. =over
  804.  
  805. =item $matrix: I<Cairo::Matrix>
  806.  
  807. =back
  808.  
  809. =head4 $matrix = $cr->get_font_matrix
  810.  
  811. =head4 $cr->set_font_options ($options)
  812.  
  813. =over
  814.  
  815. =item $options: I<Cairo::FontOptions>
  816.  
  817. =back
  818.  
  819. =head4 $options = $cr->get_font_options
  820.  
  821. =head4 $cr->set_scaled_font ($scaled_font)
  822.  
  823. =over
  824.  
  825. =item $scaled_font: I<Cairo::ScaledFont>
  826.  
  827. =back
  828.  
  829. =head4 $cr->show_text ($utf8)
  830.  
  831. =over
  832.  
  833. =item $utf8: string
  834.  
  835. =back
  836.  
  837. =head4 $cr->show_glyphs (...)
  838.  
  839. =over
  840.  
  841. =item ...: list of glyphs
  842.  
  843. =back
  844.  
  845. =head4 $face = $cr->get_font_face
  846.  
  847. =head4 $extents = $cr->font_extents
  848.  
  849. =head4 $cr->set_font_face ($font_face)
  850.  
  851. =over
  852.  
  853. =item $font_face: I<Cairo::FontFace>
  854.  
  855. =back
  856.  
  857. =head4 $cr->set_scaled_font ($scaled_font)
  858.  
  859. =over
  860.  
  861. =item $scaled_font: I<Cairo::ScaledFont>
  862.  
  863. =back
  864.  
  865. =head4 $extents = $cr->text_extents ($utf8)
  866.  
  867. =over
  868.  
  869. =item $utf8: string
  870.  
  871. =back
  872.  
  873. =head4 $extents = $cr->glyph_extents (...)
  874.  
  875. =over
  876.  
  877. =item ...: list of glyphs
  878.  
  879. =back
  880.  
  881. =cut
  882.  
  883. # --------------------------------------------------------------------------- #
  884.  
  885. =head2 Fonts
  886.  
  887. =head3 Cairo::FontFace -- Base class for fonts
  888.  
  889. =head4 $status = $font_face->status
  890.  
  891. =head4 $type = $font_face->get_type
  892.  
  893. =cut
  894.  
  895. # --------------------------------------------------------------------------- #
  896.  
  897. =head3 Scaled Fonts -- Caching metrics for a particular font size
  898.  
  899. =head4 $scaled_font = Cairo::ScaledFont->create ($font_face, $font_matrix, $ctm, $options)
  900.  
  901. =over
  902.  
  903. =item $font_face: I<Cairo::FontFace>
  904.  
  905. =item $font_matrix: I<Cairo::Matrix>
  906.  
  907. =item $ctm: I<Cairo::Matrix>
  908.  
  909. =item $options: I<Cairo::FontOptions>
  910.  
  911. =back
  912.  
  913. =head4 $status = $scaled_font->status
  914.  
  915. =head4 $extents = $scaled_font->extents
  916.  
  917. =head4 $extents = $scaled_font->text_extents ($utf8)
  918.  
  919. =over
  920.  
  921. =item $utf8: string
  922.  
  923. =back
  924.  
  925. =head4 $extents = $scaled_font->glyph_extents (...)
  926.  
  927. =over
  928.  
  929. =item ...: list of glyphs
  930.  
  931. =back
  932.  
  933. =head4 $font_face = $scaled_font->get_font_face
  934.  
  935. =head4 $options = $scaled_font->get_font_options
  936.  
  937. =head4 $font_matrix = $scaled_font->get_font_matrix
  938.  
  939. =head4 $ctm = $scaled_font->get_ctm
  940.  
  941. =head4 $type = $scaled_font->get_type
  942.  
  943. =cut
  944.  
  945. # --------------------------------------------------------------------------- #
  946.  
  947. =head3 Font Options -- How a font should be rendered
  948.  
  949. =head4 $font_options = Cairo::FontOptions->create
  950.  
  951. =head4 $status = $font_options->status
  952.  
  953. =head4 $font_options->merge ($other)
  954.  
  955. =over
  956.  
  957. =item $other: I<Cairo::FontOptions>
  958.  
  959. =back
  960.  
  961. =head4 $hash = $font_options->hash
  962.  
  963. =head4 $bools = $font_options->equal ($other)
  964.  
  965. =over
  966.  
  967. =item $other: I<Cairo::FontOptions>
  968.  
  969. =back
  970.  
  971. =head4 $font_options->set_antialias ($antialias)
  972.  
  973. =over
  974.  
  975. =item $antialias: I<Cairo::AntiAlias>
  976.  
  977. =back
  978.  
  979. =head4 $antialias = $font_options->get_antialias
  980.  
  981. =head4 $font_options->set_subpixel_order ($subpixel_order)
  982.  
  983. =over
  984.  
  985. =item $subpixel_order: I<Cairo::SubpixelOrder>
  986.  
  987. =back
  988.  
  989. =head4 $subpixel_order = $font_options->get_subpixel_order
  990.  
  991. =head4 $font_options->set_hint_style ($hint_style)
  992.  
  993. =over
  994.  
  995. =item $hint_style: I<Cairo::HintStyle>
  996.  
  997. =back
  998.  
  999. =head4 $hint_style = $font_options->get_hint_style
  1000.  
  1001. =head4 $font_options->set_hint_metrics ($hint_metrics)
  1002.  
  1003. =over
  1004.  
  1005. =item $hint_metrics: I<Cairo::HintMetrics>
  1006.  
  1007. =back
  1008.  
  1009. =head4 $hint_metrics = $font_options->get_hint_metrics
  1010.  
  1011. =cut
  1012.  
  1013. # --------------------------------------------------------------------------- #
  1014.  
  1015. =head2 Utilities
  1016.  
  1017. =head3 Version Information -- Run-time and compile-time version checks.
  1018.  
  1019. =head4 $version = Cairo->version
  1020.  
  1021. =head4 $string = Cairo->version_string
  1022.  
  1023. =head4 $version_code = Cairo->VERSION
  1024.  
  1025. =head4 $version_code = Cairo->VERSION_ENCODE ($major, $minor, $micro)
  1026.  
  1027. =over
  1028.  
  1029. =item $major: integer
  1030.  
  1031. =item $minor: integer
  1032.  
  1033. =item $micro: integer
  1034.  
  1035. =back
  1036.  
  1037. =cut
  1038.  
  1039. # --------------------------------------------------------------------------- #
  1040.  
  1041. =head1 SEE ALSO
  1042.  
  1043. =over
  1044.  
  1045. =item http://cairographics.org/documentation
  1046.  
  1047. Lists many available resources including tutorials and examples
  1048.  
  1049. =item http://cairographics.org/manual/
  1050.  
  1051. Contains the reference manual
  1052.  
  1053. =back
  1054.  
  1055. =head1 AUTHORS
  1056.  
  1057. =over
  1058.  
  1059. =item Ross McFarland E<lt>rwmcfa1 at neces dot comE<gt>
  1060.  
  1061. =item Torsten Schoenfeld E<lt>kaffeetisch at gmx dot deE<gt>
  1062.  
  1063. =back
  1064.  
  1065. =head1 COPYRIGHT
  1066.  
  1067. Copyright (C) 2004-2006 by the cairo perl team
  1068.  
  1069. =cut
  1070.