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
Graphics::Primitive::Driver(3) User Contributed Perl Documentation Graphics::Primitive::Driver(3)

Graphics::Primitive::Driver - Role for driver implementations

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.

  my $c = Graphics::Primitive::Component->new({
    origin => Geometry::Primitive::Point->new({
        x => $x, y => $y
    }),
    width => 500, height => 350
  });

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 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:

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.

preserve

Only this class or the driver itself should call methods starting with an underscore, as this interface may change.

_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.

Cory Watson, "<gphat@cpan.org>"

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.

2015-01-04 perl v5.32.1

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

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