Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

graphics::primitive::driver(3pm) [debian man page]

Graphics::Primitive::Driver(3pm)			User Contributed Perl Documentation			  Graphics::Primitive::Driver(3pm)

NAME
Graphics::Primitive::Driver - Role for driver implementations DESCRIPTION
What good is a library agnostic intermediary representation of graphical components if you can't feed them to a library specific implementation that turns them into drawings? Psht, none! To write a driver for Graphics::Primitive implement this role. SYNOPSIS
my $c = Graphics::Primitive::Component->new({ origin => Geometry::Primitive::Point->new({ x => $x, y => $y }), width => 500, height => 350 }); CANVASES
When a path is added to the internal list via do, it is stored in the paths attribute as a hashref. The hashref has two keys: path and op. The path is, well, the path. The op is the operation provided to do. As canvases are just lists of paths you should consult the next section as well. PATHS AND HINTING
Paths are lists of primitives. Primitives are all descendants of Geometry::Shape and therefore have point_start and point_end. These two attributes allow the chaining of primitives. To draw a path you should iterate over the primitives, drawing each. When you pull each path from the arrayref you should pull it's accompanying hints via get_hint (the indexes match). The hint may provide you with additional information: PRIMITIVE HINTS contiguous True if this primitive is contiguous with the previous one. Example: Used to determine if a new sub-path is needed for the Cairo driver. OPERATION HINTS preserve WARNING
Only this class or the driver itself should call methods starting with an underscore, as this interface may change. METHODS
_do_stroke ($strokeop) Perform a stroke. _do_fill ($fillop) Perform a fill. _draw_arc ($arc) Draw an arc. _draw_canvas ($canvas) Draw a canvas. _draw_component ($comp) Draw a component. _draw_line ($line) Draw a line. _draw_rectangle ($rect) Draw a rectangle. _draw_textbox Draw a textbox. _resize ($width, $height) Resize the current working surface to the size specified. _finish_page Finish the current 'page' and start a new one. Some drivers that are not paginated may need to emulate this behaviour. data Retrieve the results of this driver's operations. draw Draws the given Graphics::Primitive::Component. If the component is a container then all components therein are drawn, recursively. get_text_bounding_box Given a Font and a string, returns a bounding box of the rendered text. finalize Finalize the supplied component and any child components, recursively. prepare Prepare the supplied component and any child components, recursively. write Write out the results of this driver's operations to the specified file. AUTHOR
Cory Watson, "<gphat@cpan.org>" 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. perl v5.12.3 2010-08-21 Graphics::Primitive::Driver(3pm)

Check Out this Related Man Page

Graphics::Primitive::Driver::Cairo(3pm) 		User Contributed Perl Documentation		   Graphics::Primitive::Driver::Cairo(3pm)

NAME
Graphics::Primitive::Driver::Cairo - Cairo backend for Graphics::Primitive VERSION
version 0.44 SYNOPSIS
use Graphics::Primitive::Component; use Graphics::Primitive::Driver::Cairo; my $driver = Graphics::Primitive::Driver::Cairo->new; my $container = Graphics::Primitive::Container->new( width => 800, height => 600 ); my $black = Graphics::Primitive::Color->new(red => 0, green => 0, blue => 0); $container->border->width(1); $container->border->color($black); $container->padding( Graphics::Primitive::Insets->new(top => 5, bottom => 5, left => 5, right => 5) ); my $comp = Graphics::Primitive::Component->new; $comp->background_color($black); $container->add_component($comp, 'c'); my $lm = Layout::Manager::Compass->new; $lm->do_layout($container); my $driver = Graphics::Primitive::Driver::Cairo->new( format => 'PDF' ); $driver->draw($container); $driver->write('/Users/gphat/foo.pdf'); DESCRIPTION
This module draws Graphics::Primitive objects using Cairo. IMPLEMENTATION DETAILS
Borders Borders are drawn clockwise starting with the top one. Since cairo can't do line-joins on different colored lines, each border overlaps those before it. This is not the way I'd like it to work, but i'm opting to fix this later. Consider yourself warned. ATTRIBUTES
antialias_mode Set/Get the antialias mode of this driver. Options are default, none, gray and subpixel. cairo This driver's Cairo::Context object format Get the format for this driver. surface Get/Set the surface on which this driver is operating. METHODS
data Get the data in a scalar for this driver. write ($file) Write this driver's data to the specified file. get_text_bounding_box ($font, $text, $angle) Returns two Rectangles that encloses the supplied text. The origin's x and y maybe negative, meaning that the glyphs in the text extending left of x or above y. The first rectangle is the bounding box required for a container that wants to contain the text. The second box is only useful if an optional angle is provided. This second rectangle is the bounding box of the un-rotated text that allows for a controlled rotation. If no angle is supplied then the two rectangles are actually the same object. If the optional angle is supplied the text will be rotated by the supplied amount in radians. get_textbox_layout ($tb) Returns a Graphics::Primitive::Driver::TextLayout for the supplied textbox. reset Reset the driver. draw Draws the specified component. Container's components are drawn recursively. ACKNOWLEDGEMENTS
Danny Luna AUTHOR
Cory G Watson <gphat@cpan.org> COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Cold Hard Code, LLC. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.12.4 2011-09-27 Graphics::Primitive::Driver::Cairo(3pm)
Man Page