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) {