1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/gfx/cairo/README Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,250 @@ 1.4 +Snapshots of cairo and glitz for mozilla usage. 1.5 + 1.6 +We only include the relevant parts of each release (generally, src/*.[ch]), 1.7 +as we have Makefile.in's that integrate into the Mozilla build system. For 1.8 +documentation and similar, please see the official tarballs at 1.9 +http://www.cairographics.org/. 1.10 + 1.11 +VERSIONS: 1.12 + 1.13 + cairo (12d521df8acc483b2daa844d4f05dc2fe2765ba6) 1.14 + pixman (0.24.2) 1.15 + 1.16 +==== Patches ==== 1.17 + 1.18 +Some specific things: 1.19 + 1.20 +max-font-size.patch: Clamp freetype font size to 1000 to avoid overflow issues 1.21 + 1.22 +win32-logical-font-scale.patch: set CAIRO_WIN32_LOGICAL_FONT_SCALE to 1 1.23 + 1.24 +nonfatal-assertions.patch: Make assertions non-fatal 1.25 + 1.26 +buggy-repeat.patch: Unconditionally turn on buggy-repeat handling to bandaid bug 413583. 1.27 + 1.28 +cairo-version-fixes.patch: fix up cairo-version.c/cairo-version.h for in-place builds 1.29 + 1.30 +win32-ddb-dib.patch: fix for bug 455513; not upstream yet pending feebdack 1.31 + 1.32 +win32-vertically-offset-glyph.patch: bug 454098; vertical positioning errors when drawing glyph runs including delta-y offsets on screen via GDI 1.33 + 1.34 +ignore-rank0.patch: bug 474886; Not redrawing the background when changing page on flickr 1.35 + 1.36 +win32-canvas-glyph-position.patch: bug 475092; horizontal positioning errors when drawing glyph runs with delta-y offsets to canvas through win32-font 1.37 + 1.38 +win32-cleartype-clipping.patch: bug 445087; some glyphs are clipped, mainly on right-hand edge, when ClearType is enabled and drawing to RGBA canvas 1.39 + 1.40 +on-edge.patch: reverts the in-fill semantic change. 1.41 + 1.42 +wrap-source_image.patch: make sure we don't free the source image until we're done with it. 1.43 + 1.44 +zero-sized.patch: deal with zero sized surface in ways less likely to crash. 1.45 + 1.46 +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). 1.47 + 1.48 +zombie-face.patch: bug 486974; leak and possible crash with @font-face{src:url()}. Upstream commit: 0238fe2cafea2e1ed19bb222117bd73ee6898d4d 1.49 + 1.50 +win32-raster.patch: bug 498689; use scanline rasterizer on win32 1.51 + 1.52 +quartz-falback.patch: try to fix Quartz fallback-to-pixman path; possiby incorrect and obsoleted by Andrea Canciani patch 1.53 + 1.54 +quartz-repeating-radial-gradients.patch: use Quartz to render repeating radial gradients instead of falling back 1.55 + 1.56 +quartz-const-globals.patch: make some Quartz color function data const globals instead of local variables 1.57 + 1.58 +quartz-minimze-gradient-repeat.patch: reduce the number of gradient stop repetitions we use, to improve quality of Quartz's gradient rendering 1.59 + 1.60 +quartz-first-stop.patch: return the first stop for negative positions on the gradient line of a nonrepeating linear gradient 1.61 + 1.62 +quartz-glyph-extents.patch: bug 534260; work around incorrect glyph extents returned by quartz for anomalous empty glyphs 1.63 + 1.64 +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 1.65 + 1.66 +quartz-cache-CGImageRef.patch: cache CGImageRef for a CGBitmapContext; when we reuse it, Quartz will cache stuff, improving performance 1.67 + 1.68 +quartz-remove-snapshot.patch: remove broken implementation of backend snapshot 1.69 + 1.70 +quartz-cglayers.patch: add support for cairo surfaces backed by CGLayers 1.71 + 1.72 +quartz-cglayers-fix-fallback.patch: Bug 572912; fix bug in fallback code in previous patch 1.73 + 1.74 +quartz-get-image.patch: Bug 575521; add a way to get the image surface associated with a surface 1.75 + 1.76 +quartz-create-for-data.patch: Bug 575521; add a way to create quartz surfaces backed with application-provided data 1.77 + 1.78 +premultiply-alpha-solid-gradients.patch: bug 539165; multiply the solid color by the alpha component before using it for a solid surface 1.79 + 1.80 +xlib-initialize-members.path: bug 548793; initialize XRender version if the server doesn't have the extension 1.81 + 1.82 +remove-comma: remove a comma from enum 1.83 + 1.84 +d2d.patch: add d2d support 1.85 + 1.86 +fix-zero-len-graident.patch: fix zero length gradients 1.87 + 1.88 +fix-clip-copy.patch: fix clip copying 1.89 + 1.90 +fix-clip-region-simplification.patch: fixes a bug in clip region simplifications 1.91 + 1.92 +expand-in-stroke-limits.patch: expand the in-stroke limits to avoid a bug 1.93 + 1.94 +d2d-dwrite.patch: update the d2d/dwrite stuff 1.95 + 1.96 +add-a-stash-of-cairo_t-s.patch: use the stash to avoid malloc/freeing cairo_t's 1.97 + 1.98 +bgr.patch: fix image wrapping 1.99 + 1.100 +disable-server-graidents.patch: disable server-side gradients 1.101 + 1.102 +clip-invariant.patch: make rasterization closer to being clip invariant 1.103 + 1.104 +fix-unnecessary-fallback.patch: avoid unnecessary fallback 1.105 + 1.106 +handle-a1-upload.patch: handle a1 image uploads through converter 1.107 + 1.108 +surface-clipper.patch: remove an incorrect optimization 1.109 + 1.110 +fix-win32-show-glyphs-clipping.patch: fix a clipping bug 1.111 + 1.112 +native-clipping.patch: Add support for a native clipping api 1.113 + 1.114 +quartz-is-clear.patch: Propagate the quartz is_clear flag. 1.115 + 1.116 +cairo-qt-compile.patch: Fix compile error, return not reached, and clone_similar interface 1.117 + 1.118 +dwrite-glyph-extents.patch: Add padding to extents of antialiased glyphs, to avoid unwanted clipping. (bug 568191) 1.119 + 1.120 +fix-ps-output.patch: PS: Add missing 'q' when resetting clip path (42b5cac7668625c9761113ff72b47af5cfd10377) 1.121 + 1.122 +ensure-text-flushed.patch: PDF-operators: ensure text operations flushed before emitting clip (42b5cac7668625c9761113ff72b47af5cfd10377) 1.123 + 1.124 +fix-xcopyarea-with-clips.patch: 5d07307b691afccccbb15f773d5231669ba44f5a 1.125 + 1.126 +cairo-x-visual.patch: make valid visua for cairo_xlib_surface_create_with_xrender_format (55037bfb2454a671332d961e061c712ab5471580) 1.127 + 1.128 +win32-transparent-surface.patch: add API so we can create a win32 surface for an HDC and indicate the surface has an alpha channel 1.129 + 1.130 +cairo_qt_glyphs.patch: Drop X surface from Qt surface, add support for new qt glyphs api 1.131 + 1.132 +empty-clip-rectangles.patch: f2fa15680ec3ac95cb68d4957557f06561a7dc55 1.133 + 1.134 +empty-clip-extents.patch: b79ea8a6cab8bd28aebecf6e1e8229d5ac017264 1.135 + 1.136 +clip-rects-surface-extents.patch: 108b1c7825116ed3f93aa57384bbd3290cdc9181 1.137 + 1.138 +disable-previous-scaled-font-cache.patch: Disable the previous-scaled-font-cache until we figure out our ctm handling (#583035) 1.139 + 1.140 +copyarea-with-alpha.patch: support simple overlapping self copies in (some) color_alpha xlib surfaces. https://bugs.freedesktop.org/show_bug.cgi?id=29250 1.141 + 1.142 +fix-clip-test.patch: Use y 498c10032ea3f8631a928cd7df96766f2c8ddca4 1.143 + 1.144 +quartz-refactor-surface-setup.patch: Extract the surface-source setup chunk of _cairo_quartz_setup_state into its own function 1.145 + 1.146 +quartz-fix-PAD.patch: Treat PAD like NONE instead of REPEAT 1.147 + 1.148 +quartz-mask-non-OVER.patch: Don't use CGContextSetAlpha to optimize alpha masking for non-OVER operators 1.149 + 1.150 +quartz-layers-content.patch: Store cairo content type in CGLayer surfaces 1.151 + 1.152 +quartz-optimize-OVER.patch: Optimize OVER to SOURCE for opaque patterns 1.153 + 1.154 +quartz-check-imageSurfaceEquiv.patch: Drop cairo_quartz_surface_t's "imageSurfaceEquiv" member variable if we have problems creating it 1.155 + 1.156 +disable-subpixel-antialiasing.patch: Add API to disable subpixel antialiasing completely for a target surface 1.157 + 1.158 +tee-surfaces-pointwise.patch: Composite tee subsurfaces pointwise if possible 1.159 + 1.160 +pattern_get_surface-no-error.patch: Don't put a pattern into error if cairo_pattern_get_surface fails 1.161 + 1.162 +missing-cairo-clip-init.diff: Missing cairo_clip_init call in cairo_gstate_show_text_glyphs lead to crash 1.163 + 1.164 +fix-cairo-win32-print-gdi-error.diff: Don't use fwprintf with char* format. Flush stderr so that all error messages appears before exit. 1.165 + 1.166 +pixman-image-transform.patch: Reset the transform on pixman images when using them as destinations. 1.167 + 1.168 +fix-cairo-surface-wrapper-flush-build-warning.patch: Ensures that _cairo_surface_wrapper_flush always returns a status, to silence the build warning 1.169 + 1.170 +fixup-unbounded.patch: Hack to work around bad assumption. 1.171 + 1.172 +quartz-get-image-performance: Make cairo_quartz_get_image faster in the failure case by not flushing unless we are going to succeed. 1.173 + 1.174 +lround-c99-only.patch: Only use lround in C99 programs. 1.175 + 1.176 +unicode-printing.patch: Print as unicode (bug 454532) 1.177 + 1.178 +quartz-mark-dirty.patch: Add a quartz implementation of mark_dirty_rectangle (bug 715704) 1.179 + 1.180 +expose-snapshot.patch: Make functions to add snapshots public, as well as allow creating null surfaces publically. (bug 715658) 1.181 + 1.182 +fix-build-with-Werror=return-type.patch: Fix builds with -Werror=return-type (bug 737909) 1.183 + 1.184 +avoid-extend-none.patch: Avoid incorrectly using EXTEND_NONE (bug 751668) 1.185 + 1.186 +win32-ExtCreatePen-zero-size.patch: Don't pass zero width or dash lengths to ExtCreatePen (bug 768348) 1.187 + 1.188 +d2d-repeating-gradients.patch: Minimize number of gradient stops added to handle repeating with path fills (bug 768775) 1.189 + 1.190 +xlib-glyph-clip-region.patch: bug 709477, addressed upstream by be1ff2f45fdbc69537e513834fcffa0435e63073 1.191 + 1.192 +gdi-RGB24-ARGB32.patch: bug 788794 1.193 + 1.194 +dwrite-font-printing.patch: bug 468568; don't substitute a GDI font for a DWrite font if the name tables aren't equal 1.195 + 1.196 +d2d-gradient-ensure-stops.patch: bug 792903, ensure we don't set num_stops to 0 1.197 + 1.198 +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 1.199 + 1.200 +dwrite-font-match-robustness.patch: bug 717178, don't crash when _name_tables_match is passed a nil scaled-font 1.201 + 1.202 +handle-multi-path-clip.patch: bug 813124, handle multiple clip paths correctly 1.203 + 1.204 +win32-gdi-font-cache.patch: Bug 717178, cache GDI font faces to reduce usage of GDI resources 1.205 + 1.206 +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 1.207 + 1.208 +fix-win32-font-assertion.patch: Bug 838617, fix assertion from bug 717178 that was in the wrong place 1.209 + 1.210 +xlib-flush-glyphs.patch: bug 839745, flush glyphs when necessary 1.211 + 1.212 +dasharray-zero-gap.patch: bug 885585, ensure strokes get painted when the gaps in a dash array are all zero length 1.213 + 1.214 +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 1.215 + 1.216 +ft-no-subpixel-if-surface-disables.patch: bug 929451, don't use subpixel aa for ft fonts on surfaces that don't support it 1.217 + 1.218 +==== pixman patches ==== 1.219 + 1.220 +pixman-android-cpu-detect.patch: Add CPU detection support for Android, where we can't reliably access /proc/self/auxv. 1.221 + 1.222 +pixman-rename-and-endian.patch: include cairo-platform.h for renaming of external symbols and endian macros 1.223 + 1.224 +NOTE: we previously supported ARM assembler on MSVC, this has been removed because of the maintenance burden 1.225 + 1.226 +pixman-export.patch: use cairo_public for PIXMAN_EXPORT to make sure pixman symbols are not exported in libxul 1.227 + 1.228 +pixman-limits.patch: include limits.h for SIZE_MAX 1.229 + 1.230 +pixman-lowres-interp.patch: Use lower quality interpolation for more speed. 1.231 + 1.232 +pixman-bilinear-fastpath.patch: Bilinear fast paths for non-neon 1.233 + 1.234 +pixman-16-bit-pipeline.patch: 16 bit pipeline for dithering 1.235 + 1.236 +pixman-dither.patch: Add dithering of 16 bit gradients 1.237 + 1.238 +quartz-support-color-emoji-font.patch: support Apple Color Emoji font in cairo-quartz backend 1.239 + 1.240 +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 1.241 + 1.242 +pixman-enable-altivec-acceleration.patch: enable building the altivec acceleration 1.243 + 1.244 +win32-d3dsurface9.patch: Create a win32 d3d9 surface to support LockRect 1.245 + 1.246 +win32-avoid-extend-pad-fallback: Avoid falling back to pixman when using EXTEND_PAD 1.247 + 1.248 +==== disable printing patch ==== 1.249 + 1.250 +disable-printing.patch: allows us to use NS_PRINTING to disable printing. 1.251 + 1.252 +==== cairo clamp bounday patch ==== 1.253 +cairo-clamp-boundary.patch: don't call pixman_fill with negative starts or negative sizes