View on
MetaCPAN is shutting down
For details read Perl NOC. After June 25th this page will redirect to
Dmitry Karasik > Prima-Cairo-1.06 > Prima::Cairo



Annotate this POD


Open  0
View/Report Bugs
Module Version: 1.06   Source  


Prima::Cairo - Prima extension for Cairo drawing


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


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

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

Prima::Drawable API ^

cairo_context %options

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


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.


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


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: .

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 (, ), you'll need to install the latest ExtUtils::PkgConfig from CPAN.

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


Dmitry Karasik, <>.


Prima, Cairo

   git clone


This software is distributed under the BSD License.

syntax highlighting: