* Implement supersampling for CLI tests, allowing lower fuzz thresholds.
* Merge l2compare.sh into check_output.sh to reduce duplication.
* Always use L2 metric for fuzzy raster comparisons, not absolute error.
* Fix 09-text-layout.svg to add 'arabic' css class to some text that was
missing it, use 'Noto Sans Hebrew' for hebrew text, and re-show some
cut-off text. Update bundled Noto Sans fonts that it depends on.
* Fix test-store writing to source directory.
* Update reference images and adjust fuzz. Only significant reference
image change is the peppercarrot one, where some previously missing
text ("日本語") actually appears now.
Commits:
Preliminary non-vertical axis implementation
Add option to set vertical angle for axonometric grids
Fixed the math for calculating the y axis angle in the axonometric grid
Initial grid snapping with !angle_y_vertical implemented
Update comments to clarify axis behavior in axonometric grids
Change angle_y_vertical to use RegisteredCheckButton and update preferences initialization
Add button to swap axonometric grid axes in document properties dialog
Documented & moved derived_angle_y to mathfns.h and added update_derived_angle_y method for shared behavior
Renamed gridangleyvertical to angleyvertical
Comment: "[the prefix 'grid'] should never have been used for any of the attributes, but we should start by not adding new ones" - @doctormo
I forgot the pi/2 - angle when porting to derived_angle_y rad
Added isDirect to Colors::Space::* which tells us if a color space is
backed by a single icc profile, and no other processing steps with some
public method cleanups.
Removed Lab toXYZ and fromXYZ which were orphaned by previous commit.
Reformatted CairoTransform into generic SurfaceTransform so it can work
with any memory surface of pixels and in a greater number of data formats.
Split out CMS transform class from SurfaceTransforms and use a base class
Allowing for different assumptions with formatting and alpha premultiplication.
Add a forward.h header to make including color namespaces easier and cleaner.
Clean up generic testing utils for VectorIs Add colors and some better flexibility
for arrays and vectors in testing.
This color space allows surfaces to be converted to luminosity masks
and varius other useful alpha related filtering for the new rendering
engine.
We use lcms2 to hold the gray scale profile for quicker conversions.
The transform-cms is modified so it can cope with outputs which do
not have an allpha channel of their own. Tests for this are added.
Most color conversion will be done with std::vectors of doubles
but to speed up and provide compile time checks for color converting
on Surfaces we want the ability to take an array directly at some
but not all of the various levels.
Formalise the interface for ProfileSpace and the Convertable type
using a self-referential templating pattern.
Move most conversion code to static functions and make as agnostic
to the array type as possible, allowing for convertors to use them
directly without expensive vector types.