Compare commits
2 Commits
cdb8d852a6
...
9045898fb6
Author | SHA1 | Date | |
---|---|---|---|
9045898fb6 | |||
45df774cc9 |
@ -225,12 +225,14 @@ rescale_thumbnail(cairo_surface_t *thumbnail)
|
|||||||
struct pixman_f_transform xform_floating;
|
struct pixman_f_transform xform_floating;
|
||||||
struct pixman_transform xform;
|
struct pixman_transform xform;
|
||||||
|
|
||||||
pixman_image_t *src = pixman_image_create_bits(
|
// PIXMAN_a8r8g8b8_sRGB can be used for gamma-correct results,
|
||||||
PIXMAN_a8r8g8b8_sRGB, width, height,
|
// but it's an incredibly slow transformation
|
||||||
|
pixman_format_code_t format = PIXMAN_a8r8g8b8;
|
||||||
|
|
||||||
|
pixman_image_t *src = pixman_image_create_bits(format, width, height,
|
||||||
(uint32_t *) cairo_image_surface_get_data(thumbnail),
|
(uint32_t *) cairo_image_surface_get_data(thumbnail),
|
||||||
cairo_image_surface_get_stride(thumbnail));
|
cairo_image_surface_get_stride(thumbnail));
|
||||||
pixman_image_t *dest = pixman_image_create_bits(
|
pixman_image_t *dest = pixman_image_create_bits(format,
|
||||||
PIXMAN_a8r8g8b8_sRGB,
|
|
||||||
cairo_image_surface_get_width(scaled),
|
cairo_image_surface_get_width(scaled),
|
||||||
cairo_image_surface_get_height(scaled),
|
cairo_image_surface_get_height(scaled),
|
||||||
(uint32_t *) cairo_image_surface_get_data(scaled),
|
(uint32_t *) cairo_image_surface_get_data(scaled),
|
||||||
|
@ -135,8 +135,10 @@ fastiv_view_draw(GtkWidget *widget, cairo_t *cr)
|
|||||||
cairo_set_source_surface(
|
cairo_set_source_surface(
|
||||||
cr, self->surface, x / self->scale, y / self->scale);
|
cr, self->surface, x / self->scale, y / self->scale);
|
||||||
|
|
||||||
|
cairo_pattern_t *pattern = cairo_get_source(cr);
|
||||||
|
cairo_pattern_set_extend(pattern, CAIRO_EXTEND_PAD);
|
||||||
// TODO(p): Prescale it ourselves to an off-screen bitmap, gamma-correctly.
|
// TODO(p): Prescale it ourselves to an off-screen bitmap, gamma-correctly.
|
||||||
cairo_pattern_set_filter(cairo_get_source(cr), CAIRO_FILTER_GOOD);
|
cairo_pattern_set_filter(pattern, CAIRO_FILTER_GOOD);
|
||||||
|
|
||||||
cairo_paint(cr);
|
cairo_paint(cr);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user