summaryrefslogtreecommitdiff
path: root/amiga
diff options
context:
space:
mode:
Diffstat (limited to 'amiga')
-rwxr-xr-xamiga/plotters.c57
-rwxr-xr-xamiga/plotters.h3
2 files changed, 42 insertions, 18 deletions
diff --git a/amiga/plotters.c b/amiga/plotters.c
index 5ae0234f5..8f7e525cc 100755
--- a/amiga/plotters.c
+++ b/amiga/plotters.c
@@ -260,19 +260,31 @@ bool ami_rectangle(int x0, int y0, int x1, int y1, const plot_style_t *style)
return true;
}
-bool ami_line(int x0, int y0, int x1, int y1, int width,
- colour c, bool dotted, bool dashed)
+bool ami_line(int x0, int y0, int x1, int y1, const plot_style_t *style)
{
#ifndef NS_AMIGA_CAIRO_ALL
- glob->rp.PenWidth = width;
- glob->rp.PenHeight = width;
+ glob->rp.PenWidth = style->stroke_width;
+ glob->rp.PenHeight = style->stroke_width;
- glob->rp.LinePtrn = PATT_LINE;
- if(dotted) glob->rp.LinePtrn = PATT_DOT;
- if(dashed) glob->rp.LinePtrn = PATT_DASH;
+ switch (style->stroke_type) {
+ case PLOT_OP_TYPE_SOLID: /**< Solid colour */
+ default:
+ glob->rp.LinePtrn = PATT_LINE;
+ break;
- SetRPAttrs(&glob->rp,RPTAG_APenColor,p96EncodeColor(RGBFB_A8B8G8R8,c),
- TAG_DONE);
+ case PLOT_OP_TYPE_DOT: /**< Doted plot */
+ glob->rp.LinePtrn = PATT_DOT;
+ break;
+
+ case PLOT_OP_TYPE_DASH: /**< dashed plot */
+ glob->rp.LinePtrn = PATT_DASH;
+ break;
+ }
+
+ SetRPAttrs(&glob->rp,
+ RPTAG_APenColor,
+ p96EncodeColor(RGBFB_A8B8G8R8, style->stroke_colour),
+ TAG_DONE);
Move(&glob->rp,x0,y0);
Draw(&glob->rp,x1,y1);
@@ -280,15 +292,28 @@ bool ami_line(int x0, int y0, int x1, int y1, int width,
glob->rp.PenHeight = 1;
glob->rp.LinePtrn = PATT_LINE;
#else
- ami_cairo_set_colour(glob->cr,c);
- if (dotted) ami_cairo_set_dotted(glob->cr);
- else if (dashed) ami_cairo_set_dashed(glob->cr);
- else ami_cairo_set_solid(glob->cr);
+ ami_cairo_set_colour(glob->cr, style->stroke_colour);
- if (width == 0)
- width = 1;
+ switch (style->stroke_type) {
+ case PLOT_OP_TYPE_SOLID: /**< Solid colour */
+ default:
+ ami_cairo_set_solid(glob->cr);
+ break;
+
+ case PLOT_OP_TYPE_DOT: /**< Doted plot */
+ ami_cairo_set_dotted(glob->cr);
+ break;
+
+ case PLOT_OP_TYPE_DASH: /**< dashed plot */
+ ami_cairo_set_dashed(glob->cr);
+ break;
+ }
+
+ if (style->stroke_width == 0)
+ cairo_set_line_width(glob->cr, 1);
+ else
+ cairo_set_line_width(glob->cr, style->stroke_width);
- cairo_set_line_width(glob->cr, width);
cairo_move_to(glob->cr, x0 + 0.5, y0 + 0.5);
cairo_line_to(glob->cr, x1 + 0.5, y1 + 0.5);
cairo_stroke(glob->cr);
diff --git a/amiga/plotters.h b/amiga/plotters.h
index 486823115..37c892f62 100755
--- a/amiga/plotters.h
+++ b/amiga/plotters.h
@@ -43,8 +43,7 @@ extern const struct plotter_table amiplot;
bool ami_clg(colour c);
bool ami_rectangle(int x0, int y0, int x1, int y1, const plot_style_t *style);
-bool ami_line(int x0, int y0, int x1, int y1, int width,
- colour c, bool dotted, bool dashed);
+bool ami_line(int x0, int y0, int x1, int y1, const plot_style_t *style);
bool ami_polygon(const int *p, unsigned int n, colour fill);
bool ami_clip(int x0, int y0, int x1, int y1);
bool ami_text(int x, int y, const struct css_style *style,