author | Stacy Yeh <stacy.yeh@oracle.com> |
Mon, 11 Jan 2016 09:27:45 -0800 | |
changeset 5255 | cea0e462549a |
permissions | -rw-r--r-- |
5255
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
1 |
This enables tracking of ARGB values for image masks, since some machines do |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
2 |
not use ARGB values. |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
3 |
See Mozilla bug #716462 - Performance regression with xBGR visual and no |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
4 |
RENDER extension. |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
5 |
We would like to try to get this upstream in the future. |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
6 |
|
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
7 |
--- mozilla-esr31/gfx/cairo/cairo/src/cairo-xlib-surface.c.orig 2015-06-04 17:42:51.419088049 -0700 |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
8 |
+++ mozilla-esr31/gfx/cairo/cairo/src/cairo-xlib-surface.c 2015-06-04 17:42:51.424665839 -0700 |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
9 |
@@ -2325,6 +2325,7 @@ |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
10 |
cairo_region_t *clip_region) |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
11 |
{ |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
12 |
cairo_image_surface_t *image; |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
13 |
+ cairo_format_masks_t image_masks; |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
14 |
cairo_rectangle_int_t extents; |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
15 |
cairo_status_t status; |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
16 |
int tx, ty; |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
17 |
@@ -2341,6 +2342,16 @@ |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
18 |
(image->base.content & CAIRO_CONTENT_ALPHA) == 0))) |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
19 |
return CAIRO_INT_STATUS_UNSUPPORTED; |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
20 |
|
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
21 |
+ if (image->base.backend->type == CAIRO_SURFACE_TYPE_IMAGE) { |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
22 |
+ if (_pixman_format_to_masks (image->pixman_format, &image_masks)) { |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
23 |
+ if (! ((image_masks.alpha_mask == surface->a_mask || surface->a_mask == 0) && |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
24 |
+ (image_masks.red_mask == surface->r_mask || surface->r_mask == 0) && |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
25 |
+ (image_masks.green_mask == surface->g_mask || surface->g_mask == 0) && |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
26 |
+ (image_masks.blue_mask == surface->b_mask || surface->b_mask == 0))) |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
27 |
+ return CAIRO_INT_STATUS_UNSUPPORTED; |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
28 |
+ } |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
29 |
+ } |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
30 |
+ |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
31 |
if (image->base.backend->type != CAIRO_SURFACE_TYPE_IMAGE) { |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
32 |
if (image->base.backend->type == CAIRO_INTERNAL_SURFACE_TYPE_SNAPSHOT) { |
cea0e462549a
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff
changeset
|
33 |
image = (cairo_image_surface_t *) ((cairo_surface_snapshot_t *) image)->target; |