gfx/cairo/README

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

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

mercurial