92cf6492400e645e9782b31325a48f1994389bad
[mono.git] / mcs / class / System.Drawing / gdiplus / ChangeLog
1 2004-01-10  Alexandre Pigolkine <pigolkine@gmx.de>
2         * bitmap.c 
3         * brush.c               cosmetic changes
4         * gdip.h                new field added to GpPen structure
5         * gdip_win32.h          conditional compilation flag used to reflect changes in Cairo > 0.14
6         * graphics.c            restore position in GRAPHICS_STATE stack 
7         * matrix.c              order of matrices in GdipMultiplyMatrix changed 
8         * pen.c                 initialization of fields, protection in GdipDeletePen function added
9                         
10
11 2003-12-25  Duncan Mak  <duncan@ximian.com>
12
13         * graphics-path.c (GdipAddPathLine): Use append instead of
14         append_point.
15         (GdipTransformPath): Remember to reset the points after the
16         transformation.
17
18 2003-12-25  Duncan Mak  <duncan@ximian.com>     
19
20         * graphics.c (DrawBezier, DrawBezierI): Well, it's pretty obvious
21         that the code was incorrect before. After Christmas, I'm gonna
22         hook up the GraphicsPath code and work on testing and making sure
23         this stuff is correct. I'm pretty sure, in a first pass, there are
24         lots of littles bugs waiting to be fixed.
25
26         * graphics-path.c (new_point): Removed, we now pack the point
27         inside the append functions.
28         (append): New function that takes the X, Y coordinates directly.
29         (append_bezier): Take coordinates instead of GpPointFs. Use the
30         new append function instead of append_point.
31
32 2003-12-23  Duncan Mak  <duncan@ximian.com>
33
34         * graphics-path.c:
35         * graphics-path.h: Implemented GraphicsPath.
36
37         * Makefile: Added graphics-path.c.
38
39         * gdip.h (GpPathPointType, GpWarpMode): Added.
40
41 2003-12-21  Duncan Mak  <duncan@ximian.com>
42
43         * graphics.c (C1): Made it more precise.
44         (make_pie): Fixed.
45         (make_arc): New helper function for getting the right Bezier for
46         an elliptical arc, based on an algorithm found in the
47         comp.text.pdf FAQ.
48
49 2003-12-02  Bernie Solomon  <bernard@ugsolutions.com>
50
51         * pen.c (GdipSetPenLineCap): fix arg type so it compiles
52         using HP compiler.
53
54         * gdip.h: fix spelling of GdipSetPenLineJoin and add
55         prototype for GdipGetPenLineJoin
56
57 2003-11-28  Duncan Mak  <duncan@ximian.com>
58
59         * brush.c (gdip_brush_setup): Check on the type of the brush and
60         delegate the implementation to the concrete Brushes, 
61         (GdipCloneBrush, GdipDeleteBrush, GdipGetBrushType): Implemented.
62
63         * gdip.h (DashStyle): Fixed typo.
64         (PenAlignment, BrushType): Added new enumerations.
65         (GpBrush): Added new type field.
66         (GpPen): Added new fields: color, brush, mode, dash_array and
67         unit. Updated the header file to include new Pen functions.
68
69         * pen.c (convert_dash_array): Utitlity function for converting
70         from a float* from GDI+ to a double* for Cairo.
71         (GdipCreatePen2, GdipClonePen): Implemented.
72         (PenWidth, BrushFill, Color, PenMode, PenUnit, DashStyle):
73         (DashOffset, DashCount, DashArray): Implemented the Get/Set
74         function pairs for these properties.
75         (GdipGetPenCompoundArray, GdipSetPenCompoundArray):
76         (GdipGetPenCompoundArrayCount): Stubbed.
77
78         * solidbrush.c (gdip_solidfill_init): Utility for initializing a
79         SolidBrush. Sets type as BrushTypeSolidColor.
80         (gdip_solidfill_setup): Moved from gdip_brush_setup.
81         (gdip_solidfill_clone): Implementation for GdipCloneBrush for a
82         GpSolidFill.
83         (GdipSetSolidFillColor, GdipGetSolidFillColor): Implemented.
84
85 2003-11-22  Duncan Mak  <duncan@ximian.com>
86
87         * matrix.c (GdipCreateMatrix3, GdipCreateMatrix3I): Implemented.
88         (GdipCloneMatrix): Fixed.
89         (GdipShearMatrix, set_shear): Implemented.
90         
91         * graphics.c:
92         (GdipGetWorldTransform, GdipMultiplyWorldTransform): Implemented.
93         (GdipRotatePenTransform, GdipTranslatePenTransform): Use GDI+
94         functions instead.
95
96         * gdip.h
97         (GdipRotatePenTransform, GdipTranslatePenTransform): Fix
98         signature.
99         (GdipCreateMatrix3, GdipCreateMatrix3I): Use const appropriately.
100         
101 2003-11-17  Duncan Mak  <duncan@ximian.com>
102
103         * matrix.c (matrix_equals): New helper function help test matrix
104         equality.
105         (GdipIsMatrixIdentity, GdipIsMatrixEqual): Use matrix_equals.
106         (GdipGetMatrixElements): Don't malloc here, because the caller
107         should hand us an allocated array.
108
109 2003-11-16  Duncan Mak  <duncan@ximian.com>
110
111         * matrix.c (GdipCreateMatrix2, GdipCreateMatrix3) 
112         (GdipCreateMatrix3I): Implemented.
113
114         * pen.c (GdipResetPenTransform):
115         (GdipMultiplyPenTransform, GdipTranslatePenTransform):
116         (GdipScalePenTransform, GdipRotatePenTransform): Implemented.
117
118         * matrix.c (set_translate, set_scale, set_rotate): Helper
119         functions copied from Cairo. We are doing this because you can
120         specify the order of multiplcation in GDI+, but not in Cairo.
121
122 2003-11-15  Duncan Mak  <duncan@ximian.com>
123
124         * graphics.c: Moved PI and GRADTORAD to gdip.h.
125         * gdip.h: Renamed GRADTORAD to DEGTORAD.
126
127         * matrix.c (GdipCloneMatrix): Fix argument order.
128         * matrix.c
129         (GdipMultiplyMatrix, GdipTranslateMatrix, GdipScaleMatrix):
130         (GdipRotateMatrix, GdipInvertMatrix):
131         (GdipTransformMatrixPoints, GdipVectorTransformMatrixPoints):
132         (GdipSetMatrixElements, GdipGetMatrixElements):
133         (GdipIsMatrixInvertible): Implemented.
134
135         * matrix.c (GdipIsMatrixIdentity, GdipIsMatrixEqual): Implemented.
136
137 2003-11-14  Duncan Mak  <duncan@ximian.com>     
138
139         * general.c (gdip_get_status): Take cairo_status_t instead of
140         cairo_t. We need this because this is used in matrix.c and we only
141         have cairo_matrix_t there.
142         * graphics.c: Updated calls to gdip_get_status.
143
144         * pen.c
145         (convert_line_cap, convert_line_join): Added static keyword.
146         (GdipDeletePen): Implemented.
147
148         * matrix.c
149         (GdipCreateMatrix2, GdipCloneMatrix, GdipInvertMatrix): Use
150         gdip_get_status instead of just returning Ok.
151         (GdipRotateMatrix, GdipScaleMatrix, GdipTranslateMatrix):
152         Implemented.
153
154 2003-11-12  Duncan Mak  <duncan@ximian.com>
155
156         * bitmap.c, brush.c, general.c:
157         * graphics.c, image.c, matrix.c:
158         * pen.c, solidbrush.c: Use gdip.h instead of gdip_main.h.
159         
160         * gdip.h: New header file, merged from gdip_main.h and
161         gdip_defs.h.
162
163         * gdip_main.h, gdip_defs.h: Removed.
164
165         * pen.c
166         (convert_line_join, convert_line_cap): new function for converting
167         enumerations between GDI+ and Cairo.
168         (gdip_pen_setup): set miter limit and line join.
169         (GdipSetPenMiterLimit, GdipGetPenMiterLimit):
170         (GdipSetPenLineJoin, GdipGetPenLineJoin): 
171         (GdipSetPenLineJoin, GdipGetPenTransform): implemented. 
172         
173 2003-11-12  Alexandre Pigolkine <pigolkine@gmx.de>
174         * bitmap.c              copy image funciton added
175         
176 2003-11-06  Duncan Mak  <duncan@ximian.com>
177
178         * graphics.c (GdipDrawRectangle): Add call to gdip_pen_setup so
179         that we stroke with the right color.
180
181 2003-11-05  Duncan Mak  <duncan@ximian.com>
182
183         * graphics.c
184         (make_pie, make_ellipse, make_polygon): Add static keyword.
185
186         * gdip_defs.h: Update headers to include DrawBezier, DrawBeziers,
187         DrawEllipse, DrawPie, DrawPolygon, DrawRectangle, FillEllipse,
188         FillPolygon and the RenderingOrigin property.
189
190         * Makefile (install-local): Added missing semi-colons.
191
192 2003-11-03  Bernie Solomon <bernard@ugsolutions.com>
193
194         * gdip_main.h, gdip_win32.h, gdip_win32.c:
195         fixes for non-GCC compilers
196
197 2003-11-02  Alexandre Pigolkine <pigolkine@gmx.de>
198
199         * bitmap.c              convert 24/32 bpp images in LockBits
200
201 2003-11-01  Duncan Mak  <duncan@ximian.com>
202
203         * matrix.c
204         (GdipCreateMatrix, GdipCreateMatrix2, GdipCloneMatrix):
205         (GdipDeleteMatrix, GdipInvertMatrix): Implemented; the rest of the
206         functions are stubbed out.
207
208         * gdip_defs.h (GpMatrixOrder): Added.   
209
210         * gdip_main.h
211         (GpRect, GpRectF): Synonyms for Rect and RectF.
212         (GpMatrix): An alias of cairo_matrix_t.
213
214         * Makefile: Added matrix.c.
215
216 2003-10-28  Duncan Mak  <duncan@ximian.com>
217
218         * gdip_main.h, gdip_def.h:
219         Renamed all gdip_foo_ptr types are now GpFoo *.
220         Renamed Status to GpStatus.
221         Reformatted all C++ style comments to C style comments.
222         Reformatted all C function prototypes to the style used by GTK+.
223
224         * gdip_main.h (GpPoint, GpPointF): Added.
225
226         * gdip_defs.h (GpFillMode): Added.
227
228         * graphics.c (make_ellipse):
229         (make_polygon, make_polygon_from_integers):
230         (make_pie): private functions (make_foo) to be reused by DrawFoo
231         and FillFoo.
232         
233         (convert_fill_mode): Converts a GpFillMode to a cairo_fill_rule_t.
234
235         (GdipDrawPie, GdipFillEllipse, GdipFillPolygon): Implemented.
236
237 2003-10-26  Duncan Mak  <duncan@ximian.com>
238
239         * graphics.c
240         (GdipSetRenderingOrigin, GdipGetRenderingOrigin): Implemented.
241
242 2003-10-25  Duncan Mak  <duncan@ximian.com>
243
244         * graphics.c
245         (GdipDrawBezier, GdipDrawBezierI):
246         (GdipDrawBeziers, GdipDrawBeziersI):
247         (GdipDrawLine, GdipDrawLineI):          
248         (GdipDrawLines, GdipDrawLinesI): implemented.
249
250         (GdipFillRectangle):
251         (GdipDrawString): Make use of gdip_get_status.
252         
253         * general.c
254         (gdip_get_status): A new function for retrieving a Status from a
255         cairo_t.
256         
257 2003-10-23  Miguel de Icaza  <miguel@ximian.com>
258
259         * bitmap.c (GdipCreateBitmapFromScan0): Do not allocate buffer
260         here, expect that our caller to allocate that.
261         
262         Do not compute the stride here, expect our caller to do this
263         properly.
264
265         * Use the Mono coding conventions.
266
267 2003-10-15  Alexandre Pigolkine <pigolkine@gmx.de>
268         * image.c                       GdipDrawImageRectI changed 
269         
270 2003-10-14  Alexandre Pigolkine <pigolkine@gmx.de>
271         * gdip_defs.h
272         * graphics.c
273         * gdip_main.h
274                                                 DrawString function added
275
276 2003-10-12  Alexandre Pigolkine <pigolkine@gmx.de>
277         * bitmap.c
278         * brush.c
279         * gdip_defs.h
280         * gdip_win32.c
281         * gdip_win32.h
282         * gdip_main.h
283         * general.c
284         * graphics.c
285         * image.c
286         * Makefile
287         * pen.c
288         * solidbrush.c
289                                                 Added