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

FreeBSD Manual Pages

  
 
  

home | help
Graphics::Primitive::DUserrContributed Perl DocuGraphics::Primitive::Driver(3)

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.24.1			  2015-01-04	Graphics::Primitive::Driver(3)

NAME | DESCRIPTION | SYNOPSIS | CANVASES | PATHS AND HINTING | WARNING | METHODS | AUTHOR | COPYRIGHT & LICENSE

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

home | help