The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Prima::Cairo - Prima extension for Cairo drawing

DESCRIPTION

The module allows for programming Cairo library together with Prima widgets.

SYNOPSIS

    use strict;
    use warnings;
    use Cairo;
    use Prima qw(Application);
    use Prima::Cairo;
    
    my $w = Prima::MainWindow->new( onPaint => sub {
        my ( $self, $canvas ) = @_;
        $canvas->clear;

            my $cr = $canvas->cairo_context;
    
            $cr->rectangle (10, 10, 40, 40);
            $cr->set_source_rgb (0, 0, 0);
            $cr->fill;
    
            $cr->rectangle (50, 50, 40, 40);
            $cr->set_source_rgb (1, 1, 1);
            $cr->fill;
    
            $cr->show_page;
    });
    run Prima;

Prima::Drawable API

cairo_context %options

Returns the Cairo context bound to the Prima drawable - widget, bitmap etc or an undef.

Options:

transform 'prima' || 'native'

Prima coordinate system is such that lower left pixel is (0,0), while cairo system is that (0,0) is upper left pixel. By default cairo_context returns a context adapted for Prima, but if you want native cairo coordinate system call it like this:

   $canvas->cairo_context( transform => 0 );
Cairo::ImageSurface::to_prima_image

Returns a im::bpp24 Prima::Image object with pixels copies from the image surface

Prima::Image::to_cairo_surface

Returns a rgb24 Cairo::ImageSurface object with pixels copied from the image

Installation on Strawberry win32

Before installing the module, you need to install Cairo perl wrapper. That requires libcairo binaries, includes, and pkg-config.

In case you don't have cairo binaries and include files, grab them here:

http://karasik.eu.org/misc/cairo/cairo-win32.zip .

Hack lib/pkgconfig/cairo.pc and point PKG_CONFIG_PATH to the directory where it is located or copy it to where your system pkgconfig files are.

Strawberry 5.20 is shipped with a broken pkg-config ( https://rt.cpan.org/Ticket/Display.html?id=96315, https://rt.cpan.org/Ticket/Display.html?id=96317 ), you'll need to install the latest ExtUtils::PkgConfig from CPAN.

This setup is needed both for Cairo and Prima-Cairo.

AUTHOR

Dmitry Karasik, <dmitry@karasik.eu.org>.

SEE ALSO

Prima, Cairo

   git clone git@github.com:dk/Prima-Cairo.git

LICENSE

This software is distributed under the BSD License.