Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Graphics::Primitive(3)User Contributed Perl DocumentatioGraphics::Primitive(3)

NAME
       Graphics::Primitive - Device and	library	agnostic graphic primitives

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: prepare, layout and pack.  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 not 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.

perl v5.24.1			  2015-01-22		Graphics::Primitive(3)

NAME | SYNOPSIS | DESCRIPTION | CONCEPTS | DRAWING LIFECYCLE | PREPARATION | INSPIRATION | AUTHOR | CONTRIBUTORS | ACKNOWLEDGEMENTS | COPYRIGHT & LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Graphics::Primitive&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help