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
|
=head1 NAME
Imager::Inline - using Imager with Inline::C.
=head1 SYNOPSIS
use Inline with => 'Imager';
use Inline C => <<'EOS';
Imager some_func(Imager::Color c, Imager::Fill f) {
Imager img = i_img_8_new(200, 200, 3);
/* fill with color */
i_box_filled(img, 0, 0, 199, 199, c);
/* inner area with fill */
i_box_cfill(img, 50, 50, 149, 149, f);
return img;
}
EOS
=head1 DESCRIPTION
Imager hooks into Inline's C<with> syntax to make it easier to write
Inline::C code that works with Imager, you can call Imager functions
without having to include headers or perform initialization.
Imager's inline C<with> support does the following:
=over
=item *
add the installed Imager include directory to INC
=item *
add the Imager typemap to TYPEMAPS
=item *
include the headers needed by Imager C extension modules.
=item *
declare and initialize the Imager API function table pointer
=item *
filter the supplied code to replace Imager's class names with those
that Inline::C can handle.
=back
=head1 LIMITATIONS
The filtering mechanism is global, it will replace the class names
even inside string constants. If you need a string matching the name
of one of Imager's classes, like C<"Imager::Color"> you will need to
split it into 2 to use C's string pasting mechanism, for example:
C<"Imager:" ":Color">.
=head1 AUTHOR
Tony Cook <tony@imager.perl.org>
=head1 REVISION
$Revision$
=head1 SEE ALSO
Imager, Imager::ExtUtils, Imager::API, Imager::APIRef,
samples/inline_replace_color.pl
=cut
|