NEWS:  Bring up to date with recent bug fixes.
README:  Update required dependencies

Also adds mention of the skia backend.
AUTHORS: Add Ravi, myself, and a couple other frequent contributors
NEWS: Drop unfinished thought
test: Add test oversized egl surfaces

This test exercises error scenario when creating over sized egl surface
that is larger than maximum framebuffer or texture dimensions of the
context

Signed-off-by: Ravi Nanjundappa <nravi.n@samsung.com>
cairo-gl: Make VBO size run-time settable

The default VBO size was reduced from 256k to 16k last year in commit
90860241 due to problems with larger VBOs on embedded hardware.
However, that change resulted in a 5% performance impact to the
firefox-fishbowl benchmark when using the spans or traps compositors.

This patch doesn't change the VBO size, but does permit it to be
altered via an environment variable, to facilitate testing.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
gl: Track the VBO size as a property of the ctx

Change suggested by Chris Wilson.  This will enable setting different
vbo sizes for GL vs. EGL.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
gl: Increase default VBO size on GL to 1M

The default VBO size was reduced from 256k to 16k because embedded
devices had trouble with the larger memory demands of a big VBO.  My
testing[1] indicates this incurred a 5% performance loss on at least one
of Cairo's performance tests.  Further testing showed that with
late-model graphics cards, further performance benefits can be seen with
even larger VBO sizes, up to 8.3% at 1M for Intel.

Now that we can set the vbo size differently for different backends, set
it to the lower value (16k) for EGL, and higher (1M) for GL.

1: http://www.bryceharrington.org/wordpress/2013/08/vbo-size/

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
NEWS: Note that downscaling changes only affect image + fallback
Don't return NULL to clients when getting image

Return an error surface instead.

Fixes:  https://bugs.freedesktop.org/show_bug.cgi?id=58061
Don't return NULL to clients when getting device

Return an error device instead

Fixes:  https://bugs.freedesktop.org/show_bug.cgi?id=58061
Fix compilation with bionic libc

Refactor out a cairo_get_locale_decimal_point() routine to handle a case
where localeconv() is not available.

Fixes:  https://bugs.freedesktop.org/show_bug.cgi?id=70492
Reviewed-by: Bryce Harrington <b.harrington@samsung.com>

[edit:  Condensed cairo_get_locale_decimal_point and conditionalized
locale.h inclusion.  -- bryce]
build:  Fix float endian configure test when using clang -O4

When using clang -O4, the compiled test object is output in bitcode
format rather than as an ELF object, so when we grep the test value from
the object it fails.  To work around this, go ahead and link the test
object into an executable, and then grep against this native binary
instead of the compiler's intermediary object.

We need to add __attribute__((used)) to ensure the d variable doesn't
get optimized out during linking, since it's not referenced in the
test's main().

Patch authored by cmuelle8 <abendstund@gmail.com>

Reviewed-by: Bryce Harrington <b.harrington@samsung.com>
Bugzilla:  https://bugs.freedesktop.org/show_bug.cgi?id=63310
NEWS: Revise downscaling feature description

Updated feature description using text from Bill.  Also updated bugfix
list to include recent fixes.
arc: Insert the initial point on the arc

Currently the very first point on the arc will be the first interpreted
location along the spline used to approximate the arc. This will be
close, but not quite the exact point the user intended the arc to run
from, so begin the arc with a line-to the initial point.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
test: Exercise stroking bugs with xlib/trapezoids

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=84115
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
sphinx: Add ickle's explanation of what sphinx does
build-sys: do not try to build util/sphinx on Windows

glib and dlfcn exist on windows, but sphinx code uses a lot of
Unix-only API

Fixes the following build error on mingw-fedora

  CC     cairo-boilerplate-system.lo
../../../util/cairo-sphinx/sphinx.c:8:22: fatal error: sys/mman.h: No such file or directory
compilation terminated.

Fixes:  https://bugs.freedesktop.org/show_bug.cgi?id=63043
Reviewed-by: Bryce Harrington <b.harrington@samsung.com>
test/coverage: Exercise invariance under mirror symmetry

Massimo noticed that the record/record-flip were not being rasterised as
identical mirror images due to a half-subpixel offset in the tor scan
converter. This test attempts to reproduce this error by rendering a
rhombus around the origin of each cell (that is it generates 4 mirror
images of a triangle in the 4 different orientations0. The expectation
is that each pixel in the group is lit identically as the coverage is
identical.

References: https://bugs.freedesktop.org/show_bug.cgi?id=84396
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
stroke,traps: Emit join without loss of precision

As the target renderers operate at a different sample resolution then we
use internally for coordinate representation, there is always a potential
for discrepancies in the line gradients when passing around trapezoids.
To overcome this, the protocol specification of trapezoids uses the full
lines and vertical range as opposed to vertices and so long as we always
use the same lines for conjoint trapezoids, they remain abutting in the
rasteriser.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=84115
Testcase: bug-84115
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>