cache the checkerboard pattern.

2007-12-28  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpviewrenderer.c: cache the checkerboard 
pattern.


svn path=/trunk/; revision=24447
This commit is contained in:
Sven Neumann 2007-12-28 17:54:01 +00:00 committed by Sven Neumann
parent f97ebdf72d
commit 6312375edd
2 changed files with 38 additions and 32 deletions

View File

@ -1,3 +1,7 @@
2007-12-28 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrenderer.c: cache the checkerboard pattern.
2007-12-28 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrenderer.c (gimp_view_renderer_real_draw):

View File

@ -70,7 +70,7 @@ static void gimp_view_renderer_size_changed (GimpViewRenderer *render
GimpViewable *viewable);
static cairo_pattern_t *
gimp_view_renderer_create_pattern (GimpViewRenderer *renderer,
gimp_view_renderer_create_background (GimpViewRenderer *renderer,
GtkWidget *widget);
static void gimp_view_render_to_surface (TempBuf *temp_buf,
@ -697,7 +697,7 @@ gimp_view_renderer_real_draw (GimpViewRenderer *renderer,
if (renderer->bg_stock_id)
{
if (! renderer->pattern)
renderer->pattern = gimp_view_renderer_create_pattern (renderer,
renderer->pattern = gimp_view_renderer_create_background (renderer,
widget);
cairo_set_source (cr, renderer->pattern);
@ -725,12 +725,11 @@ gimp_view_renderer_real_draw (GimpViewRenderer *renderer,
if (content == CAIRO_CONTENT_COLOR_ALPHA)
{
cairo_pattern_t *pattern;
if (! renderer->pattern)
renderer->pattern = gimp_cairo_checkerboard_create (cr,
GIMP_CHECK_SIZE_SM);
pattern = gimp_cairo_checkerboard_create (cr, GIMP_CHECK_SIZE_SM);
cairo_set_source (cr, pattern);
cairo_pattern_destroy (pattern);
cairo_set_source (cr, renderer->pattern);
cairo_fill_preserve (cr);
}
@ -1095,8 +1094,11 @@ gimp_view_renderer_render_pixbuf (GimpViewRenderer *renderer,
renderer->needs_render = FALSE;
}
/* This function creates a background pattern from a stock icon
* if renderer->bg_stock_id is set.
*/
static cairo_pattern_t *
gimp_view_renderer_create_pattern (GimpViewRenderer *renderer,
gimp_view_renderer_create_background (GimpViewRenderer *renderer,
GtkWidget *widget)
{
cairo_pattern_t *pattern = NULL;