1. Using container_cairo_pango for running tests.
2. Added Dockerfile to create docker container for building litehtml
tests
3. Added script run_render_tests.sh to build litehtml tests in the
docker container
4. Added render2png target (cmake -DLITEHTML_BUILD_RENDER2PNG). This
utility allow to render html file into a png file.
5. Tests building are off by default.
Use "cmake -DLITEHTML_BUILD_TESTING=ON" command to buid tests
6. Added container_cairo_pango::get_font_options. Overwrite this method
to control fonts rendering.
This only partially fixes the problem exhibited by the test. We still lose precision when converting points to int. document_container::pt_to_px() should take float.
They didn't look bold enough. There is no space, so I made m/w wider. This makes terminus-16px-bold.yaff a variable-width font, which may be confusing because normal weight variant is monospace. I also used this variable-width opportunity to improve NMW glyphs.
Rendering of css-box-justify-content.htm changed because width of nbsp is computed correctly now.
Radial gradient supported by canvas_ity is different (two circles vs one ellipse in CSS), so I implemented new brush type, css_radial. It is created with canvas::set_css_radial_gradient().
Old behavior is still available with #define CANVAS_ITY_IMPLEMENTATION LINEARIZE_RGB
Comparison of rendering linear-gradient-1.htm with and without LINEARIZE_RGB:

Browsers don't render gradients identically, so I use max_color_diff() to compare them.
It measures max difference in each RGBA component in each pixel.
max_color_diff
chrome vs firefox 1
chrome vs canvas_ity without linearized colors 1
chrome vs canvas_ity with linearized colors 74