GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  GRAPHICS::PRIMITIVE (3)

.ds Aq ’

NAME

Graphics::Primitive - Device and library agnostic graphic primitives

CONTENTS

SYNOPSIS

Graphics::Primitive is a device and library agnostic system for creating and manipulating various graphical elements such as Borders, Fonts, Paths and the like.



    my $c = Graphics::Primitive::Component->new(
      background_color => Graphics::Color::RGB->new(
          red => 1, green => 0, blue => 0
      ),
      width => 500, height => 350,
      border => new Graphics::Primitive::Border->new( width => 5 )
    );

    my $driver = Graphics::Primitive::Driver::Cairo->new(format => SVG);

    $driver->prepare($c);
    $driver->finalize($c);
    $driver->draw($c);

    $driver->write($filename)



DESCRIPTION

Graphics::Primitive is library agnostic system for drawing things.

The idea is to allow you to create and manipulate graphical components and then pass them off to a Driver for actual drawing.

CONCEPTS

The root object for Graphics::Primitive is the Component. Components contain all the common elements that you’d expect: margins, padding, background color etc.

The next most important is the Container. Containers are Components that can hold other Components. Containers have all the attributes and methods of a Component with the addition of the layout_manager attribute for us with Layout::Manager.

Another important Component is the Canvas. The Canvas differs from other components by being a container for various Geometry::Primitive objects. This allows drawing of arbitrary shapes that do not fit existing components.

DRAWING LIFECYCLE

After creating all your components, there is a lifecycle that allows them to do their internal housekeeping to prepare for eventual drawing. The lifecycle is: <B>prepareB>, <B>layoutB> and <B>packB>. Detailed explanation of these methods can be found in Component.

PREPARATION

Graphics::Primitive::Component has a prepared flag. This flag is set as part of the prepare method (shocking, I know). If this flag is set, then subsequent calls to prepare are ignored. Containers also have a prepare flag, but this flag is <B>notB> set when calling prepare. A Container’s flag should be set by the layout manager. More information may be found with Layout::Manager.

INSPIRATION

Most of the concepts that you’ll find in Graphics::Primitive are inspired by Cairo <http://cairographics.org>’s API and CSS <http://www.w3.org/Style/CSS/>’s box model.

AUTHOR

Cory Watson, <gphat@cpan.org>

CONTRIBUTORS

Florian Ragwitz

ACKNOWLEDGEMENTS

Many of the ideas here come from my experience using the Cairo library.

COPYRIGHT & LICENSE

Copyright 2008-2010 by Cory G Watson.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 GRAPHICS::PRIMITIVE (3) 2015-01-22

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.