22 Jan 2015 03:38:43 UTC
- Distribution: Graphics-Primitive
- Module version: 0.67
- Source (raw)
- Browse (raw)
- How to Contribute
- Clone repository
- Issues (2)
- Testers (2534 / 0 / 0)
- KwaliteeBus factor: 0
- 50.00% Coverage
- License: perl_5
- Activity24 month
- Download (44.08KB)
- MetaCPAN Explorer
- Subscribe to distribution
- This version
- Latest version
- DRAWING LIFECYCLE
- COPYRIGHT & LICENSE
Graphics::Primitive - Device and library agnostic graphic primitives
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)
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.
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.
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: prepare, layout and pack. Detailed explanation of these methods can be found in Component.
Graphics::Primitive::Component has a
preparedflag. This flag is set as part of the
preparemethod (shocking, I know). If this flag is set, then subsequent calls to
prepareare ignored. Containers also have a prepare flag, but this flag is not set when calling
prepare. A Container's flag should be set by the layout manager. More information may be found with Layout::Manager.
Many of the ideas here come from my experience using the Cairo library.
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.
Module Install Instructions
To install Graphics::Primitive, copy and paste the appropriate command in to your terminal.
perl -MCPAN -e shell install Graphics::Primitive
For more information on module installation, please visit the detailed CPAN module installation guide.