[AdgToyText] Allow to specify the font style
[adg.git] / docs / gnu / NEWS.xml
blob8a10f8e7d7efe5f7141c59b8ffbb749404ffae04
1 <?xml version="1.0"?>
2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3                          "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
5 <chapter id="NEWS">
6 <title>News archive</title>
7 <subtitle>Summary of changes between releases</subtitle>
9 <simplesect id="NEWS.0.4.3">
10 <title>ADG 0.4.3</title>
12 <para>Higher level operators, such as chamfer and fillet, can now be used
13 in the path definition. They do not work yet for Bézier curves but
14 the infrastructure is in place.</para>
16 <para>A Gtk+ widget for easily showing the canvas has been implemented. It
17 is based on GtkDrawingArea and provides some interaction throught the
18 mouse, such as zooming and panning. It is not viable for serious work
19 but it is funny to use and opened to improvements.</para>
21 <para>The CPML library has been enriched with the missing functions
22 needed by the above new features. Now it has a ..._length() and
23 ..._near_pos() families of functions. The mathematic behind this
24 library is far from complete: the overall design is quite stable
25 but there are a lot of placeholders, especially when curves were
26 involved.</para>
28 </simplesect>
30 <simplesect id="NEWS.0.4.2">
31 <title>ADG 0.4.2</title>
33 <para>The work on model-view separation has been started: the AdgModel
34 abstract class is now in place. Above this class, the new AdgPath
35 model is derived, providing a full set of APIs to construct paths
36 from scratch. Also, AdgPath gives full access the model throught
37 CPML, allowing to modify and manipulate the path data.</para> 
39 <para>The CPML library now natively supports arcs. Although cairo does
40 not recognize arcs, a lot of work has been done to hide the
41 complexity needed to provide an API that does the necessary
42 trasformations transparently.</para>
44 <para>The old AdgPath entity has been rewrote to AdgStroke. This is a
45 stroked view of an AdgPath model. Its implementation is trivial
46 as all the path complexity has moved to AdgPath.</para>
48 </simplesect>
50 <simplesect id="NEWS.0.4.1">
51 <title>ADG 0.4.1</title>
53 <para>The CPML library has been boosted with additional APIs to browse
54 segments/primitives and to compute intersections between different
55 constructs. Now it has its own demo program (cpml-demo), showing
56 some of the implemented feature. Although some function is still
57 a stub, the overall infrastructure is likely to be definitive.</para>
59 <para>All the CPML APIs are now properly documented.</para>
61 <para>The ldim demo has been merged into the more complex adg-demo.
62 Now the demo programs use the GtkBuilder feature, so the Gtk+
63 dependency has been raised to 2.12.</para>
65 </simplesect>
67 <simplesect id="NEWS.0.4.0">
68 <title>ADG 0.4.0</title>
70 <para>The useless wrappers in AdgPath have been removed: now the standard
71 cairo path API could be used in the path constructor callback.</para>
73 <para>AdgPoint has been added. This new core struct can be used to represent
74 a coordinate system with different model and space component.</para>
76 <para>The new AdgToyText entity can be used to show arbitrary text using the
77 cairo "toy" text API.</para>
79 <para>Two interfaces, AdgTranslatable and AdgRotable, have been implemented
80 to allow arbitrary positioning (using the new AdgPoint struct) and
81 rotation of entities where this is applicable (e.g. AdgToyText).</para>
83 <para>The CPML API has been almost rewrote from scratch: removed a lot of
84 duplicated stuff, dropped CpmlPath (by using the original cairo_path_t)
85 and implemented new functions, such as segment browsing (always in forward
86 direction), reversing and transformation.</para>
88 <para>README, NEWS, TODO and ChangeLog are now automatically generated, so
89 redundancy is removed and the maintainability improved. The originals
90 are kept in docbook format, allowing to use them also in html version.</para>
92 <para>The adg-demo program now allows to save the sample drawing in png, pdf
93 and postscript. Two useless toy text entities has been added.</para>
95 </simplesect>
97 <simplesect id="NEWS.0.3.2">
98 <title>ADG 0.3.2</title>
100 <para>The dependency on libgcontainer has been dropped: now the adg canvas
101 requires only cairo and Gtk+2 (will be optional). This allows to try
102 the demo program (demo/adg-demo) on any decent GNU/Linux distribution
103 without installing anything.</para>
105 <para>The container logic has been included in AdgEntity (the GChildable
106 portion) and AdgContainer (the GContainerable part).</para>
108 </simplesect>
110 <simplesect id="NEWS.0.3.1">
111 <title>ADG 0.3.1</title>
113 <para>Implemented the "invalidate" signal to force the cache recomputation
114 on a new rendering operation.</para>
116 <para>The new cairo "toy" API has been used to do text management in AdgDim.
117 This allows caching of the intermediate glyphs for improved
118 performances (no profiling yet done). The cairo dependency has been
119 raised to version 0.7.4 or more.</para>
121 <para>The AdgLDim entity has been rewritten to full implement the new cache
122 design. Other entities have been improved to allow a paper matrix
123 other than the default identity matrix.</para>
125 </simplesect>
127 <simplesect id="NEWS.0.3.0">
128 <title>ADG 0.3.0</title>
130 <para>Reworked styles and implemented AdgContext, a clean and well defined
131 approach to manage rendering customization.</para>
133 <para>Moved all the geometrical stuff in Cairo Path Manipulation Library (CPML),
134 an internal library depending only on cairo.</para>
135   
136 <para>Greatly improved documentation.</para>
138 </simplesect>
140 <simplesect id="NEWS.0.2.2">
141 <title>ADG 0.2.2</title>
143 <para>Strongly separated model and paper matrix concepts and updated their
144 management using nested transformations.</para>
146 <para>Reworked the rendering process in a cleaner way by propagating the
147 "render" signal and using internal entity states to let the application
148 know what changed from the previous rendering.</para>
150 </simplesect>
152 <simplesect id="NEWS.0.2.1">
153 <title>ADG 0.2.1</title>
155 <para>Reworked the sources tree in a cleaner way (to help future development)
156 and used private structs instead of populating the instance structure.</para>
158 </simplesect>
160 <simplesect id="NEWS.0.2.0">
161 <title>ADG 0.2.0</title>
163 <para>This is the first public release of the ADG library. It is in a early stage of
164 developement, but the goal is quite ambitious!</para>
166 </simplesect>
168 </chapter>