Imager::Inline - using Imager with Inline::C.
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
Imager hooks into Inline's "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 "with" support
does the following:
- add the installed Imager include directory to INC
- add the Imager typemap to TYPEMAPS
- include the headers needed by Imager C extension modules.
- declare and initialize the Imager API function table pointer
- filter the supplied code to replace Imager's class names with those that
Inline::C can handle.
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 "Imager::Color" you will need
to split it into 2 to use C's string pasting mechanism, for example:
"Imager:" ":Color".
Tony Cook <tonyc@cpan.org>
Imager, Imager::ExtUtils, Imager::API, Imager::APIRef,
samples/inline_replace_color.pl