most numeric parameters to the XS implementation now throw an exception if supplied...
[imager.git] / design / draw.pod
1 =head1 NAME
2
3 draw.pod - overview of planned drawing changes
4
5 =head1 SYNOPSIS
6
7   fix the processing done by the current combine modes
8   combine modes for most drawing operations
9   thick lines
10
11 =head1 combine mode fixes
12
13 Currently:
14
15 =over
16
17 =item *
18
19 the calculations are just wrong
20
21 =item *
22
23 they don't handle adapting to the target channel count
24
25 =back
26
27 To do:
28
29 =over
30
31 =item *
32
33 add a render function that calls the fill function then applies it to
34 the target based on the combine mode.
35
36 =item *
37
38 modify fill functions to always produce RGBA
39
40 =item *
41
42 have the combine mode functions just generate the color, the render
43 function can then alpha adjust it and apply it to the target
44
45 =back
46
47 =head1 combine modes for drawing functions
48
49 =over
50
51 =item *
52
53 write versions of each function that take a combine mode
54
55 =back
56
57 =head1 thick lines
58
59 Two possible approaches:
60
61 =over
62
63 =item *
64
65 given a polyline, generate a polygon for the entire shape - more
66 complex, overlap problems
67
68 =item *
69
70 given a polyline, generate polygons for each segment, draw to a work
71 image and use that to compose the fill - possible problems joining the
72 segments
73
74 =back