++ed by:
TOBYINK

1 PAUSE user
1 non-PAUSE user.

Dmitry Karasik

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 [ $class = Prima::Image ].

Returns a im::bpp24 (for color surfaces) or im::Byte/im::BW (for a8/a1 mask surfaces) Prima::Image object with pixels copies from the image surface. If $class is 'Prima::Icon' and image surface has 'argb32' format then fills the 1-bit alpha channel in the Prima icon object.

Prima::Image::to_cairo_surface

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

Prima::Icon::to_cairo_surface

Returns a argb32 Cairo::ImageSurface object with pixels copied from the image and its mask

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.