Prescale the pixbuf before a tiled composite
2000-12-22 Bradford Hovinen <hovinen@helixcode.com> * capplets/new-background-properties/applier.c (renderer_render_wallpaper): Prescale the pixbuf before a tiled composite
This commit is contained in:
parent
411e73d22b
commit
0f67cd0cd0
2 changed files with 50 additions and 6 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2000-12-22 Bradford Hovinen <hovinen@helixcode.com>
|
||||||
|
|
||||||
|
* capplets/new-background-properties/applier.c
|
||||||
|
(renderer_render_wallpaper): Prescale the pixbuf before a tiled
|
||||||
|
composite
|
||||||
|
|
||||||
2000-12-21 Bradford Hovinen <hovinen@helixcode.com>
|
2000-12-21 Bradford Hovinen <hovinen@helixcode.com>
|
||||||
|
|
||||||
* capplets/new-background-properties/applier.c (set_root_pixmap):
|
* capplets/new-background-properties/applier.c (set_root_pixmap):
|
||||||
|
|
|
@ -95,6 +95,7 @@ struct _Renderer
|
||||||
|
|
||||||
guchar *gradient_data;
|
guchar *gradient_data;
|
||||||
GdkPixbuf *wallpaper_pixbuf; /* Alias only */
|
GdkPixbuf *wallpaper_pixbuf; /* Alias only */
|
||||||
|
GdkPixbuf *prescaled_pixbuf; /* For tiled on preview */
|
||||||
GdkPixbuf *pixbuf;
|
GdkPixbuf *pixbuf;
|
||||||
Pixmap pixmap;
|
Pixmap pixmap;
|
||||||
};
|
};
|
||||||
|
@ -731,6 +732,18 @@ renderer_render_wallpaper (Renderer *renderer)
|
||||||
&renderer->wwidth, &renderer->wheight,
|
&renderer->wwidth, &renderer->wheight,
|
||||||
&renderer->srcx, &renderer->srcy);
|
&renderer->srcx, &renderer->srcy);
|
||||||
|
|
||||||
|
if (renderer->prefs->wallpaper_type == WPTYPE_TILED &&
|
||||||
|
renderer->wwidth != renderer->pwidth &&
|
||||||
|
renderer->wheight != renderer->pheight)
|
||||||
|
renderer->prescaled_pixbuf =
|
||||||
|
gdk_pixbuf_scale_simple
|
||||||
|
(renderer->wallpaper_pixbuf,
|
||||||
|
renderer->wwidth,
|
||||||
|
renderer->wheight,
|
||||||
|
GDK_INTERP_BILINEAR);
|
||||||
|
else
|
||||||
|
renderer->prescaled_pixbuf = NULL;
|
||||||
|
|
||||||
if (renderer->prefs->adjust_opacity) {
|
if (renderer->prefs->adjust_opacity) {
|
||||||
guint alpha_value;
|
guint alpha_value;
|
||||||
guint32 colorv;
|
guint32 colorv;
|
||||||
|
@ -757,6 +770,20 @@ renderer_render_wallpaper (Renderer *renderer)
|
||||||
scalex, scaley,
|
scalex, scaley,
|
||||||
GDK_INTERP_BILINEAR,
|
GDK_INTERP_BILINEAR,
|
||||||
alpha_value);
|
alpha_value);
|
||||||
|
else if (renderer->wwidth !=
|
||||||
|
renderer->pwidth &&
|
||||||
|
renderer->wheight !=
|
||||||
|
renderer->pheight)
|
||||||
|
tile_composite
|
||||||
|
(renderer->prescaled_pixbuf,
|
||||||
|
renderer->pixbuf,
|
||||||
|
renderer->wx, renderer->wy,
|
||||||
|
renderer->wwidth,
|
||||||
|
renderer->wheight,
|
||||||
|
renderer->width,
|
||||||
|
renderer->height,
|
||||||
|
1.0, 1.0,
|
||||||
|
alpha_value);
|
||||||
else
|
else
|
||||||
tile_composite
|
tile_composite
|
||||||
(renderer->wallpaper_pixbuf,
|
(renderer->wallpaper_pixbuf,
|
||||||
|
@ -810,12 +837,20 @@ renderer_render_wallpaper (Renderer *renderer)
|
||||||
if (renderer->pixbuf != NULL)
|
if (renderer->pixbuf != NULL)
|
||||||
gdk_pixbuf_unref (renderer->pixbuf);
|
gdk_pixbuf_unref (renderer->pixbuf);
|
||||||
|
|
||||||
renderer->pixbuf =
|
if (renderer->prescaled_pixbuf !=
|
||||||
gdk_pixbuf_scale_simple
|
renderer->wallpaper_pixbuf)
|
||||||
(renderer->wallpaper_pixbuf,
|
{
|
||||||
renderer->wwidth,
|
renderer->pixbuf =
|
||||||
renderer->wheight,
|
gdk_pixbuf_scale_simple
|
||||||
GDK_INTERP_BILINEAR);
|
(renderer->wallpaper_pixbuf,
|
||||||
|
renderer->wwidth,
|
||||||
|
renderer->wheight,
|
||||||
|
GDK_INTERP_BILINEAR);
|
||||||
|
} else {
|
||||||
|
renderer->pixbuf =
|
||||||
|
renderer->prescaled_pixbuf;
|
||||||
|
gdk_pixbuf_ref (renderer->pixbuf);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (render_gradient_p (renderer, renderer->prefs)) {
|
if (render_gradient_p (renderer, renderer->prefs)) {
|
||||||
|
@ -834,6 +869,9 @@ renderer_render_wallpaper (Renderer *renderer)
|
||||||
gdk_pixbuf_ref (renderer->pixbuf);
|
gdk_pixbuf_ref (renderer->pixbuf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (renderer->prescaled_pixbuf != NULL)
|
||||||
|
gdk_pixbuf_unref (renderer->prescaled_pixbuf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue