This repository has been archived by the owner on Nov 26, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
TODO
72 lines (48 loc) · 2.63 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
TODO + BUGS and undecided for tkpath
------------------------------------
o The 'delete itemOrTag' may match items of any combination and therefore
deleteing a group may delete items already in the list which may crash.
o Scaling rotated arcs. Much math! Simplified.
Test case:
pack [tkp::canvas .c -width 600 -height 400]
set p "M 100 100 a 100 25 60 1 0 50 -25"
set id [.c create path $p]
set id [.c create path $p -stroke red -matrix {{2 0} {0 1} {0 0}}]
set id [.c create path $p -stroke blue]
.c scale $id 0 0 2 1
o Optimize segmentation computations used for hittesting in the 'Point'
functions.
o Perhaps an OpenGL renderer.
o Perhaps lightweight items with no own style options but only a reference
to a styleName to save a lot of memory. See TreeCtrl.
o I have paid no attention to if strokes are transformed or not. Sort out!
CG + cairo: strokes are scaled exactly.
o Perhaps it would be useful to allow multiple objects on a single item
by supplying many coordinates for pline, prect, circle, and ellipse?
o I would like to move the TkPathInit/TkPathFree to the canvas
Display function instead of having it in the items Display function.
This is currently not possible due to the X11 emulation code
used by the old items. This would save a lot of cpu, on aqua
in particular.
o Try to get rid of the Tk_Uid.
o Perhaps have the Tk_PathItem's x1, y1, ... as doubles.
That would make translations and scaling easier since we don't have
to bother about roundoffs. Separate flag for hidden?
o What to do with the -state option for the new items?
o Perhaps it would be useful to have the precedence order between
item options and style options configurable.
o Maybe there should be a group item also for tkp::surface?
o Would it be useful to be able to set the viewport and coordinate
system for the canvas, like SVG does? Note that this is possible
using the root items -matrix option.
o gdi+ seems unable to produce antialiasing effects on a surface but
there seems to be no gdi+ specific way of drawing in memory bitmaps
but had to call CreateDIBSection() which is a Win32 GDI API.
o All postscript is missing.
o Need to sort out how the tags "all" and "root" (0) shall interact.
o It could be useful to have a 'style reset' command that sets all options
to their defaults and clears the mask.
o Write all test code.
o Add clipping. Use an extra item option '-clipto idOrTags' where the joint
set of all idOrTags form the clipping region. It should be possible to use
items not on the display, and perhaps the -state option can be used to hide items.