Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
michael@0 | 1 | Snapshots of cairo and glitz for mozilla usage. |
michael@0 | 2 | |
michael@0 | 3 | We only include the relevant parts of each release (generally, src/*.[ch]), |
michael@0 | 4 | as we have Makefile.in's that integrate into the Mozilla build system. For |
michael@0 | 5 | documentation and similar, please see the official tarballs at |
michael@0 | 6 | http://www.cairographics.org/. |
michael@0 | 7 | |
michael@0 | 8 | VERSIONS: |
michael@0 | 9 | |
michael@0 | 10 | cairo (12d521df8acc483b2daa844d4f05dc2fe2765ba6) |
michael@0 | 11 | pixman (0.24.2) |
michael@0 | 12 | |
michael@0 | 13 | ==== Patches ==== |
michael@0 | 14 | |
michael@0 | 15 | Some specific things: |
michael@0 | 16 | |
michael@0 | 17 | max-font-size.patch: Clamp freetype font size to 1000 to avoid overflow issues |
michael@0 | 18 | |
michael@0 | 19 | win32-logical-font-scale.patch: set CAIRO_WIN32_LOGICAL_FONT_SCALE to 1 |
michael@0 | 20 | |
michael@0 | 21 | nonfatal-assertions.patch: Make assertions non-fatal |
michael@0 | 22 | |
michael@0 | 23 | buggy-repeat.patch: Unconditionally turn on buggy-repeat handling to bandaid bug 413583. |
michael@0 | 24 | |
michael@0 | 25 | cairo-version-fixes.patch: fix up cairo-version.c/cairo-version.h for in-place builds |
michael@0 | 26 | |
michael@0 | 27 | win32-ddb-dib.patch: fix for bug 455513; not upstream yet pending feebdack |
michael@0 | 28 | |
michael@0 | 29 | win32-vertically-offset-glyph.patch: bug 454098; vertical positioning errors when drawing glyph runs including delta-y offsets on screen via GDI |
michael@0 | 30 | |
michael@0 | 31 | ignore-rank0.patch: bug 474886; Not redrawing the background when changing page on flickr |
michael@0 | 32 | |
michael@0 | 33 | win32-canvas-glyph-position.patch: bug 475092; horizontal positioning errors when drawing glyph runs with delta-y offsets to canvas through win32-font |
michael@0 | 34 | |
michael@0 | 35 | win32-cleartype-clipping.patch: bug 445087; some glyphs are clipped, mainly on right-hand edge, when ClearType is enabled and drawing to RGBA canvas |
michael@0 | 36 | |
michael@0 | 37 | on-edge.patch: reverts the in-fill semantic change. |
michael@0 | 38 | |
michael@0 | 39 | wrap-source_image.patch: make sure we don't free the source image until we're done with it. |
michael@0 | 40 | |
michael@0 | 41 | zero-sized.patch: deal with zero sized surface in ways less likely to crash. |
michael@0 | 42 | |
michael@0 | 43 | text-path-filling-threshold.patch: use path filling instead of platform glyph rasterization at a smaller size threshold of 256 device pixels, if the backend supports native filling (which we assume will be fast). |
michael@0 | 44 | |
michael@0 | 45 | zombie-face.patch: bug 486974; leak and possible crash with @font-face{src:url()}. Upstream commit: 0238fe2cafea2e1ed19bb222117bd73ee6898d4d |
michael@0 | 46 | |
michael@0 | 47 | win32-raster.patch: bug 498689; use scanline rasterizer on win32 |
michael@0 | 48 | |
michael@0 | 49 | quartz-falback.patch: try to fix Quartz fallback-to-pixman path; possiby incorrect and obsoleted by Andrea Canciani patch |
michael@0 | 50 | |
michael@0 | 51 | quartz-repeating-radial-gradients.patch: use Quartz to render repeating radial gradients instead of falling back |
michael@0 | 52 | |
michael@0 | 53 | quartz-const-globals.patch: make some Quartz color function data const globals instead of local variables |
michael@0 | 54 | |
michael@0 | 55 | quartz-minimze-gradient-repeat.patch: reduce the number of gradient stop repetitions we use, to improve quality of Quartz's gradient rendering |
michael@0 | 56 | |
michael@0 | 57 | quartz-first-stop.patch: return the first stop for negative positions on the gradient line of a nonrepeating linear gradient |
michael@0 | 58 | |
michael@0 | 59 | quartz-glyph-extents.patch: bug 534260; work around incorrect glyph extents returned by quartz for anomalous empty glyphs |
michael@0 | 60 | |
michael@0 | 61 | quartz-state.patch: bug 522859; refactor cairo-quartz-surface so that state local to a drawing operation is stored in a cairo_quartz_drawing_state_t instead of the surface |
michael@0 | 62 | |
michael@0 | 63 | quartz-cache-CGImageRef.patch: cache CGImageRef for a CGBitmapContext; when we reuse it, Quartz will cache stuff, improving performance |
michael@0 | 64 | |
michael@0 | 65 | quartz-remove-snapshot.patch: remove broken implementation of backend snapshot |
michael@0 | 66 | |
michael@0 | 67 | quartz-cglayers.patch: add support for cairo surfaces backed by CGLayers |
michael@0 | 68 | |
michael@0 | 69 | quartz-cglayers-fix-fallback.patch: Bug 572912; fix bug in fallback code in previous patch |
michael@0 | 70 | |
michael@0 | 71 | quartz-get-image.patch: Bug 575521; add a way to get the image surface associated with a surface |
michael@0 | 72 | |
michael@0 | 73 | quartz-create-for-data.patch: Bug 575521; add a way to create quartz surfaces backed with application-provided data |
michael@0 | 74 | |
michael@0 | 75 | premultiply-alpha-solid-gradients.patch: bug 539165; multiply the solid color by the alpha component before using it for a solid surface |
michael@0 | 76 | |
michael@0 | 77 | xlib-initialize-members.path: bug 548793; initialize XRender version if the server doesn't have the extension |
michael@0 | 78 | |
michael@0 | 79 | remove-comma: remove a comma from enum |
michael@0 | 80 | |
michael@0 | 81 | d2d.patch: add d2d support |
michael@0 | 82 | |
michael@0 | 83 | fix-zero-len-graident.patch: fix zero length gradients |
michael@0 | 84 | |
michael@0 | 85 | fix-clip-copy.patch: fix clip copying |
michael@0 | 86 | |
michael@0 | 87 | fix-clip-region-simplification.patch: fixes a bug in clip region simplifications |
michael@0 | 88 | |
michael@0 | 89 | expand-in-stroke-limits.patch: expand the in-stroke limits to avoid a bug |
michael@0 | 90 | |
michael@0 | 91 | d2d-dwrite.patch: update the d2d/dwrite stuff |
michael@0 | 92 | |
michael@0 | 93 | add-a-stash-of-cairo_t-s.patch: use the stash to avoid malloc/freeing cairo_t's |
michael@0 | 94 | |
michael@0 | 95 | bgr.patch: fix image wrapping |
michael@0 | 96 | |
michael@0 | 97 | disable-server-graidents.patch: disable server-side gradients |
michael@0 | 98 | |
michael@0 | 99 | clip-invariant.patch: make rasterization closer to being clip invariant |
michael@0 | 100 | |
michael@0 | 101 | fix-unnecessary-fallback.patch: avoid unnecessary fallback |
michael@0 | 102 | |
michael@0 | 103 | handle-a1-upload.patch: handle a1 image uploads through converter |
michael@0 | 104 | |
michael@0 | 105 | surface-clipper.patch: remove an incorrect optimization |
michael@0 | 106 | |
michael@0 | 107 | fix-win32-show-glyphs-clipping.patch: fix a clipping bug |
michael@0 | 108 | |
michael@0 | 109 | native-clipping.patch: Add support for a native clipping api |
michael@0 | 110 | |
michael@0 | 111 | quartz-is-clear.patch: Propagate the quartz is_clear flag. |
michael@0 | 112 | |
michael@0 | 113 | cairo-qt-compile.patch: Fix compile error, return not reached, and clone_similar interface |
michael@0 | 114 | |
michael@0 | 115 | dwrite-glyph-extents.patch: Add padding to extents of antialiased glyphs, to avoid unwanted clipping. (bug 568191) |
michael@0 | 116 | |
michael@0 | 117 | fix-ps-output.patch: PS: Add missing 'q' when resetting clip path (42b5cac7668625c9761113ff72b47af5cfd10377) |
michael@0 | 118 | |
michael@0 | 119 | ensure-text-flushed.patch: PDF-operators: ensure text operations flushed before emitting clip (42b5cac7668625c9761113ff72b47af5cfd10377) |
michael@0 | 120 | |
michael@0 | 121 | fix-xcopyarea-with-clips.patch: 5d07307b691afccccbb15f773d5231669ba44f5a |
michael@0 | 122 | |
michael@0 | 123 | cairo-x-visual.patch: make valid visua for cairo_xlib_surface_create_with_xrender_format (55037bfb2454a671332d961e061c712ab5471580) |
michael@0 | 124 | |
michael@0 | 125 | win32-transparent-surface.patch: add API so we can create a win32 surface for an HDC and indicate the surface has an alpha channel |
michael@0 | 126 | |
michael@0 | 127 | cairo_qt_glyphs.patch: Drop X surface from Qt surface, add support for new qt glyphs api |
michael@0 | 128 | |
michael@0 | 129 | empty-clip-rectangles.patch: f2fa15680ec3ac95cb68d4957557f06561a7dc55 |
michael@0 | 130 | |
michael@0 | 131 | empty-clip-extents.patch: b79ea8a6cab8bd28aebecf6e1e8229d5ac017264 |
michael@0 | 132 | |
michael@0 | 133 | clip-rects-surface-extents.patch: 108b1c7825116ed3f93aa57384bbd3290cdc9181 |
michael@0 | 134 | |
michael@0 | 135 | disable-previous-scaled-font-cache.patch: Disable the previous-scaled-font-cache until we figure out our ctm handling (#583035) |
michael@0 | 136 | |
michael@0 | 137 | copyarea-with-alpha.patch: support simple overlapping self copies in (some) color_alpha xlib surfaces. https://bugs.freedesktop.org/show_bug.cgi?id=29250 |
michael@0 | 138 | |
michael@0 | 139 | fix-clip-test.patch: Use y 498c10032ea3f8631a928cd7df96766f2c8ddca4 |
michael@0 | 140 | |
michael@0 | 141 | quartz-refactor-surface-setup.patch: Extract the surface-source setup chunk of _cairo_quartz_setup_state into its own function |
michael@0 | 142 | |
michael@0 | 143 | quartz-fix-PAD.patch: Treat PAD like NONE instead of REPEAT |
michael@0 | 144 | |
michael@0 | 145 | quartz-mask-non-OVER.patch: Don't use CGContextSetAlpha to optimize alpha masking for non-OVER operators |
michael@0 | 146 | |
michael@0 | 147 | quartz-layers-content.patch: Store cairo content type in CGLayer surfaces |
michael@0 | 148 | |
michael@0 | 149 | quartz-optimize-OVER.patch: Optimize OVER to SOURCE for opaque patterns |
michael@0 | 150 | |
michael@0 | 151 | quartz-check-imageSurfaceEquiv.patch: Drop cairo_quartz_surface_t's "imageSurfaceEquiv" member variable if we have problems creating it |
michael@0 | 152 | |
michael@0 | 153 | disable-subpixel-antialiasing.patch: Add API to disable subpixel antialiasing completely for a target surface |
michael@0 | 154 | |
michael@0 | 155 | tee-surfaces-pointwise.patch: Composite tee subsurfaces pointwise if possible |
michael@0 | 156 | |
michael@0 | 157 | pattern_get_surface-no-error.patch: Don't put a pattern into error if cairo_pattern_get_surface fails |
michael@0 | 158 | |
michael@0 | 159 | missing-cairo-clip-init.diff: Missing cairo_clip_init call in cairo_gstate_show_text_glyphs lead to crash |
michael@0 | 160 | |
michael@0 | 161 | fix-cairo-win32-print-gdi-error.diff: Don't use fwprintf with char* format. Flush stderr so that all error messages appears before exit. |
michael@0 | 162 | |
michael@0 | 163 | pixman-image-transform.patch: Reset the transform on pixman images when using them as destinations. |
michael@0 | 164 | |
michael@0 | 165 | fix-cairo-surface-wrapper-flush-build-warning.patch: Ensures that _cairo_surface_wrapper_flush always returns a status, to silence the build warning |
michael@0 | 166 | |
michael@0 | 167 | fixup-unbounded.patch: Hack to work around bad assumption. |
michael@0 | 168 | |
michael@0 | 169 | quartz-get-image-performance: Make cairo_quartz_get_image faster in the failure case by not flushing unless we are going to succeed. |
michael@0 | 170 | |
michael@0 | 171 | lround-c99-only.patch: Only use lround in C99 programs. |
michael@0 | 172 | |
michael@0 | 173 | unicode-printing.patch: Print as unicode (bug 454532) |
michael@0 | 174 | |
michael@0 | 175 | quartz-mark-dirty.patch: Add a quartz implementation of mark_dirty_rectangle (bug 715704) |
michael@0 | 176 | |
michael@0 | 177 | expose-snapshot.patch: Make functions to add snapshots public, as well as allow creating null surfaces publically. (bug 715658) |
michael@0 | 178 | |
michael@0 | 179 | fix-build-with-Werror=return-type.patch: Fix builds with -Werror=return-type (bug 737909) |
michael@0 | 180 | |
michael@0 | 181 | avoid-extend-none.patch: Avoid incorrectly using EXTEND_NONE (bug 751668) |
michael@0 | 182 | |
michael@0 | 183 | win32-ExtCreatePen-zero-size.patch: Don't pass zero width or dash lengths to ExtCreatePen (bug 768348) |
michael@0 | 184 | |
michael@0 | 185 | d2d-repeating-gradients.patch: Minimize number of gradient stops added to handle repeating with path fills (bug 768775) |
michael@0 | 186 | |
michael@0 | 187 | xlib-glyph-clip-region.patch: bug 709477, addressed upstream by be1ff2f45fdbc69537e513834fcffa0435e63073 |
michael@0 | 188 | |
michael@0 | 189 | gdi-RGB24-ARGB32.patch: bug 788794 |
michael@0 | 190 | |
michael@0 | 191 | dwrite-font-printing.patch: bug 468568; don't substitute a GDI font for a DWrite font if the name tables aren't equal |
michael@0 | 192 | |
michael@0 | 193 | d2d-gradient-ensure-stops.patch: bug 792903, ensure we don't set num_stops to 0 |
michael@0 | 194 | |
michael@0 | 195 | setlcdfilter_in_tree.patch: bug 790139; force cairo to use FT_Library_SetLcdFilter from our in tree library rather than picking it up from the system |
michael@0 | 196 | |
michael@0 | 197 | dwrite-font-match-robustness.patch: bug 717178, don't crash when _name_tables_match is passed a nil scaled-font |
michael@0 | 198 | |
michael@0 | 199 | handle-multi-path-clip.patch: bug 813124, handle multiple clip paths correctly |
michael@0 | 200 | |
michael@0 | 201 | win32-gdi-font-cache.patch: Bug 717178, cache GDI font faces to reduce usage of GDI resources |
michael@0 | 202 | |
michael@0 | 203 | win32-gdi-font-cache-no-HFONT.patch: Bug 717178, don't cache GDI font faces when an HFONT belonging to the caller is passed in |
michael@0 | 204 | |
michael@0 | 205 | fix-win32-font-assertion.patch: Bug 838617, fix assertion from bug 717178 that was in the wrong place |
michael@0 | 206 | |
michael@0 | 207 | xlib-flush-glyphs.patch: bug 839745, flush glyphs when necessary |
michael@0 | 208 | |
michael@0 | 209 | dasharray-zero-gap.patch: bug 885585, ensure strokes get painted when the gaps in a dash array are all zero length |
michael@0 | 210 | |
michael@0 | 211 | cairo-mask-extends-bug.patch: bug 918671, sometimes when building a mask we wouldn't clear it properly. This is fixed in cairo 1.12 |
michael@0 | 212 | |
michael@0 | 213 | ft-no-subpixel-if-surface-disables.patch: bug 929451, don't use subpixel aa for ft fonts on surfaces that don't support it |
michael@0 | 214 | |
michael@0 | 215 | ==== pixman patches ==== |
michael@0 | 216 | |
michael@0 | 217 | pixman-android-cpu-detect.patch: Add CPU detection support for Android, where we can't reliably access /proc/self/auxv. |
michael@0 | 218 | |
michael@0 | 219 | pixman-rename-and-endian.patch: include cairo-platform.h for renaming of external symbols and endian macros |
michael@0 | 220 | |
michael@0 | 221 | NOTE: we previously supported ARM assembler on MSVC, this has been removed because of the maintenance burden |
michael@0 | 222 | |
michael@0 | 223 | pixman-export.patch: use cairo_public for PIXMAN_EXPORT to make sure pixman symbols are not exported in libxul |
michael@0 | 224 | |
michael@0 | 225 | pixman-limits.patch: include limits.h for SIZE_MAX |
michael@0 | 226 | |
michael@0 | 227 | pixman-lowres-interp.patch: Use lower quality interpolation for more speed. |
michael@0 | 228 | |
michael@0 | 229 | pixman-bilinear-fastpath.patch: Bilinear fast paths for non-neon |
michael@0 | 230 | |
michael@0 | 231 | pixman-16-bit-pipeline.patch: 16 bit pipeline for dithering |
michael@0 | 232 | |
michael@0 | 233 | pixman-dither.patch: Add dithering of 16 bit gradients |
michael@0 | 234 | |
michael@0 | 235 | quartz-support-color-emoji-font.patch: support Apple Color Emoji font in cairo-quartz backend |
michael@0 | 236 | |
michael@0 | 237 | use-show-text-glyphs-if-glyph-path-fails.patch: fall back to show_text_glyphs even at huge sizes if scaled_font_glyph_path didn't work |
michael@0 | 238 | |
michael@0 | 239 | pixman-enable-altivec-acceleration.patch: enable building the altivec acceleration |
michael@0 | 240 | |
michael@0 | 241 | win32-d3dsurface9.patch: Create a win32 d3d9 surface to support LockRect |
michael@0 | 242 | |
michael@0 | 243 | win32-avoid-extend-pad-fallback: Avoid falling back to pixman when using EXTEND_PAD |
michael@0 | 244 | |
michael@0 | 245 | ==== disable printing patch ==== |
michael@0 | 246 | |
michael@0 | 247 | disable-printing.patch: allows us to use NS_PRINTING to disable printing. |
michael@0 | 248 | |
michael@0 | 249 | ==== cairo clamp bounday patch ==== |
michael@0 | 250 | cairo-clamp-boundary.patch: don't call pixman_fill with negative starts or negative sizes |