Mercurial > MadButterfly
comparison src/paint.c @ 1092:e9f617b21db1
Merge from openvg branch
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Fri, 03 Dec 2010 22:24:42 +0800 |
parents | cd34de1a6960 |
children | c18ad321844d |
comparison
equal
deleted
inserted
replaced
1070:afa42d5836cc | 1092:e9f617b21db1 |
---|---|
179 int flags; | 179 int flags; |
180 mbe_pattern_t *ptn; | 180 mbe_pattern_t *ptn; |
181 } paint_radial_t; | 181 } paint_radial_t; |
182 | 182 |
183 #define RDF_DIRTY 0x1 | 183 #define RDF_DIRTY 0x1 |
184 | |
185 #define pnt_radial_clear_flags(radial, _flags) \ | |
186 do { \ | |
187 (radial)->flags &= ~(_flags); \ | |
188 } while(0) | |
184 | 189 |
185 int _paint_radial_size = sizeof(paint_radial_t); | 190 int _paint_radial_size = sizeof(paint_radial_t); |
186 | 191 |
187 static void paint_radial_prepare(paint_t *paint, mbe_t *cr, shape_t *sh) { | 192 static void paint_radial_prepare(paint_t *paint, mbe_t *cr, shape_t *sh) { |
188 paint_radial_t *radial = (paint_radial_t *)paint; | 193 paint_radial_t *radial = (paint_radial_t *)paint; |
200 cx, cy, | 205 cx, cy, |
201 radial->r, | 206 radial->r, |
202 radial->stops, | 207 radial->stops, |
203 radial->n_stops); | 208 radial->n_stops); |
204 ASSERT(ptn != NULL); | 209 ASSERT(ptn != NULL); |
205 mbe_pattern_destroy(radial->ptn); | 210 if(radial->ptn) |
211 mbe_pattern_destroy(radial->ptn); | |
206 radial->ptn = ptn; | 212 radial->ptn = ptn; |
213 | |
214 pnt_radial_clear_flags(radial, RDF_DIRTY); | |
207 } | 215 } |
208 mbe_set_source(cr, radial->ptn); | 216 mbe_set_source(cr, radial->ptn); |
209 } | 217 } |
210 | 218 |
211 static void paint_radial_free(redraw_man_t *rdman, paint_t *paint) { | 219 static void paint_radial_free(redraw_man_t *rdman, paint_t *paint) { |