Lines Matching refs:gradient

114     pixman_image_t *gradient, *image;  in _cairo_gl_gradient_render()  local
152 gradient = pixman_image_create_linear_gradient (&p1, &p2, in _cairo_gl_gradient_render()
158 if (unlikely (gradient == NULL)) in _cairo_gl_gradient_render()
161 pixman_image_set_filter (gradient, PIXMAN_FILTER_BILINEAR, NULL, 0); in _cairo_gl_gradient_render()
162 pixman_image_set_repeat (gradient, PIXMAN_REPEAT_PAD); in _cairo_gl_gradient_render()
167 pixman_image_unref (gradient); in _cairo_gl_gradient_render()
172 gradient, NULL, image, in _cairo_gl_gradient_render()
178 pixman_image_unref (gradient); in _cairo_gl_gradient_render()
234 cairo_gl_gradient_t *gradient; in _cairo_gl_gradient_create() local
245 gradient = _cairo_gl_gradient_lookup (ctx, hash, n_stops, stops); in _cairo_gl_gradient_create()
246 if (gradient) { in _cairo_gl_gradient_create()
247 *gradient_out = _cairo_gl_gradient_reference (gradient); in _cairo_gl_gradient_create()
251gradient = _cairo_malloc (sizeof (cairo_gl_gradient_t) + sizeof (cairo_gradient_stop_t) * (n_stops… in _cairo_gl_gradient_create()
252 if (gradient == NULL) in _cairo_gl_gradient_create()
259 CAIRO_REFERENCE_COUNT_INIT (&gradient->ref_count, 2); in _cairo_gl_gradient_create()
260 gradient->cache_entry.hash = hash; in _cairo_gl_gradient_create()
261 gradient->cache_entry.size = tex_width; in _cairo_gl_gradient_create()
262 gradient->device = &ctx->base; in _cairo_gl_gradient_create()
263 gradient->n_stops = n_stops; in _cairo_gl_gradient_create()
264 gradient->stops = gradient->stops_embedded; in _cairo_gl_gradient_create()
265 memcpy (gradient->stops_embedded, stops, n_stops * sizeof (cairo_gradient_stop_t)); in _cairo_gl_gradient_create()
267 glGenTextures (1, &gradient->tex); in _cairo_gl_gradient_create()
269 glBindTexture (ctx->tex_target, gradient->tex); in _cairo_gl_gradient_create()
297 if (unlikely (_cairo_cache_insert (&ctx->gradients, &gradient->cache_entry))) in _cairo_gl_gradient_create()
298 CAIRO_REFERENCE_COUNT_INIT (&gradient->ref_count, 1); in _cairo_gl_gradient_create()
300 *gradient_out = gradient; in _cairo_gl_gradient_create()
306 free (gradient); in _cairo_gl_gradient_create()
311 _cairo_gl_gradient_reference (cairo_gl_gradient_t *gradient) in _cairo_gl_gradient_reference() argument
313 assert (CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&gradient->ref_count)); in _cairo_gl_gradient_reference()
315 _cairo_reference_count_inc (&gradient->ref_count); in _cairo_gl_gradient_reference()
317 return gradient; in _cairo_gl_gradient_reference()
321 _cairo_gl_gradient_destroy (cairo_gl_gradient_t *gradient) in _cairo_gl_gradient_destroy() argument
326 assert (CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&gradient->ref_count)); in _cairo_gl_gradient_destroy()
328 if (! _cairo_reference_count_dec_and_test (&gradient->ref_count)) in _cairo_gl_gradient_destroy()
331 if (_cairo_gl_context_acquire (gradient->device, &ctx) == CAIRO_STATUS_SUCCESS) { in _cairo_gl_gradient_destroy()
334 glDeleteTextures (1, &gradient->tex); in _cairo_gl_gradient_destroy()
338 free (gradient); in _cairo_gl_gradient_destroy()