.gitignore
.pyup.yml
LICENSE.txt
README.md
requirements-dev.txt
requirements.txt
setup.cfg
setup.py
smile.png
.github/workflows/ci.yml
Lib/blackrenderer/__init__.py
Lib/blackrenderer/__main__.py
Lib/blackrenderer/_version.py
Lib/blackrenderer/dumpCOLRv1Glyph.py
Lib/blackrenderer/font.py
Lib/blackrenderer/render.py
Lib/blackrenderer.egg-info/PKG-INFO
Lib/blackrenderer.egg-info/SOURCES.txt
Lib/blackrenderer.egg-info/dependency_links.txt
Lib/blackrenderer.egg-info/entry_points.txt
Lib/blackrenderer.egg-info/requires.txt
Lib/blackrenderer.egg-info/top_level.txt
Lib/blackrenderer/backends/__init__.py
Lib/blackrenderer/backends/base.py
Lib/blackrenderer/backends/cairo.py
Lib/blackrenderer/backends/coregraphics.py
Lib/blackrenderer/backends/pathCollector.py
Lib/blackrenderer/backends/skia.py
Lib/blackrenderer/backends/svg.py
Lib/blackrenderer/backends/sweepGradient.py
Tests/compareImages.py
Tests/test_canvas_api.py
Tests/test_dumpCOLRv1Glyph.py
Tests/test_font.py
Tests/test_glyph_render.py
Tests/test_import.py
Tests/test_mainprog.py
Tests/data/MutatorSans.ttf
Tests/data/TwemojiMozilla.subset.default.3299.ttf
Tests/data/more_samples-glyf_colr_1.ttf
Tests/data/noto-glyf_colr_1.ttf
Tests/data/samples-glyf_colr_1.ttf
Tests/expectedOutput/colorStops_PAD_0_1_cairo.png
Tests/expectedOutput/colorStops_PAD_0_1_coregraphics.png
Tests/expectedOutput/colorStops_PAD_0_1_skia.png
Tests/expectedOutput/colorStops_PAD_0_1_svg.svg
Tests/expectedOutput/colorStops_REFLECT_0_1_cairo.png
Tests/expectedOutput/colorStops_REFLECT_0_1_coregraphics.png
Tests/expectedOutput/colorStops_REFLECT_0_1_skia.png
Tests/expectedOutput/colorStops_REFLECT_0_1_svg.svg
Tests/expectedOutput/colorStops_REPEAT_0_1_cairo.png
Tests/expectedOutput/colorStops_REPEAT_0_1_coregraphics.png
Tests/expectedOutput/colorStops_REPEAT_0_1_skia.png
Tests/expectedOutput/colorStops_REPEAT_0_1_svg.svg
Tests/expectedOutput/compositeMode_CLEAR_cairo.png
Tests/expectedOutput/compositeMode_CLEAR_coregraphics.png
Tests/expectedOutput/compositeMode_CLEAR_skia.png
Tests/expectedOutput/compositeMode_CLEAR_svg.svg
Tests/expectedOutput/compositeMode_COLORBURN_cairo.png
Tests/expectedOutput/compositeMode_COLORBURN_coregraphics.png
Tests/expectedOutput/compositeMode_COLORBURN_skia.png
Tests/expectedOutput/compositeMode_COLORBURN_svg.svg
Tests/expectedOutput/compositeMode_COLORDODGE_cairo.png
Tests/expectedOutput/compositeMode_COLORDODGE_coregraphics.png
Tests/expectedOutput/compositeMode_COLORDODGE_skia.png
Tests/expectedOutput/compositeMode_COLORDODGE_svg.svg
Tests/expectedOutput/compositeMode_DARKEN_cairo.png
Tests/expectedOutput/compositeMode_DARKEN_coregraphics.png
Tests/expectedOutput/compositeMode_DARKEN_skia.png
Tests/expectedOutput/compositeMode_DARKEN_svg.svg
Tests/expectedOutput/compositeMode_DESTATOP_cairo.png
Tests/expectedOutput/compositeMode_DESTATOP_coregraphics.png
Tests/expectedOutput/compositeMode_DESTATOP_skia.png
Tests/expectedOutput/compositeMode_DESTATOP_svg.svg
Tests/expectedOutput/compositeMode_DESTIN_cairo.png
Tests/expectedOutput/compositeMode_DESTIN_coregraphics.png
Tests/expectedOutput/compositeMode_DESTIN_skia.png
Tests/expectedOutput/compositeMode_DESTIN_svg.svg
Tests/expectedOutput/compositeMode_DESTOUT_cairo.png
Tests/expectedOutput/compositeMode_DESTOUT_coregraphics.png
Tests/expectedOutput/compositeMode_DESTOUT_skia.png
Tests/expectedOutput/compositeMode_DESTOUT_svg.svg
Tests/expectedOutput/compositeMode_DESTOVER_cairo.png
Tests/expectedOutput/compositeMode_DESTOVER_coregraphics.png
Tests/expectedOutput/compositeMode_DESTOVER_skia.png
Tests/expectedOutput/compositeMode_DESTOVER_svg.svg
Tests/expectedOutput/compositeMode_DEST_cairo.png
Tests/expectedOutput/compositeMode_DEST_coregraphics.png
Tests/expectedOutput/compositeMode_DEST_skia.png
Tests/expectedOutput/compositeMode_DEST_svg.svg
Tests/expectedOutput/compositeMode_DIFFERENCE_cairo.png
Tests/expectedOutput/compositeMode_DIFFERENCE_coregraphics.png
Tests/expectedOutput/compositeMode_DIFFERENCE_skia.png
Tests/expectedOutput/compositeMode_DIFFERENCE_svg.svg
Tests/expectedOutput/compositeMode_EXCLUSION_cairo.png
Tests/expectedOutput/compositeMode_EXCLUSION_coregraphics.png
Tests/expectedOutput/compositeMode_EXCLUSION_skia.png
Tests/expectedOutput/compositeMode_EXCLUSION_svg.svg
Tests/expectedOutput/compositeMode_HARDLIGHT_cairo.png
Tests/expectedOutput/compositeMode_HARDLIGHT_coregraphics.png
Tests/expectedOutput/compositeMode_HARDLIGHT_skia.png
Tests/expectedOutput/compositeMode_HARDLIGHT_svg.svg
Tests/expectedOutput/compositeMode_HSLCOLOR_cairo.png
Tests/expectedOutput/compositeMode_HSLCOLOR_coregraphics.png
Tests/expectedOutput/compositeMode_HSLCOLOR_skia.png
Tests/expectedOutput/compositeMode_HSLCOLOR_svg.svg
Tests/expectedOutput/compositeMode_HSLHUE_cairo.png
Tests/expectedOutput/compositeMode_HSLHUE_coregraphics.png
Tests/expectedOutput/compositeMode_HSLHUE_skia.png
Tests/expectedOutput/compositeMode_HSLHUE_svg.svg
Tests/expectedOutput/compositeMode_HSLLUMINOSITY_cairo.png
Tests/expectedOutput/compositeMode_HSLLUMINOSITY_coregraphics.png
Tests/expectedOutput/compositeMode_HSLLUMINOSITY_skia.png
Tests/expectedOutput/compositeMode_HSLLUMINOSITY_svg.svg
Tests/expectedOutput/compositeMode_HSLSATURATION_cairo.png
Tests/expectedOutput/compositeMode_HSLSATURATION_coregraphics.png
Tests/expectedOutput/compositeMode_HSLSATURATION_skia.png
Tests/expectedOutput/compositeMode_HSLSATURATION_svg.svg
Tests/expectedOutput/compositeMode_LIGHTEN_cairo.png
Tests/expectedOutput/compositeMode_LIGHTEN_coregraphics.png
Tests/expectedOutput/compositeMode_LIGHTEN_skia.png
Tests/expectedOutput/compositeMode_LIGHTEN_svg.svg
Tests/expectedOutput/compositeMode_MULTIPLY_cairo.png
Tests/expectedOutput/compositeMode_MULTIPLY_coregraphics.png
Tests/expectedOutput/compositeMode_MULTIPLY_skia.png
Tests/expectedOutput/compositeMode_MULTIPLY_svg.svg
Tests/expectedOutput/compositeMode_OVERLAY_cairo.png
Tests/expectedOutput/compositeMode_OVERLAY_coregraphics.png
Tests/expectedOutput/compositeMode_OVERLAY_skia.png
Tests/expectedOutput/compositeMode_OVERLAY_svg.svg
Tests/expectedOutput/compositeMode_SCREEN_cairo.png
Tests/expectedOutput/compositeMode_SCREEN_coregraphics.png
Tests/expectedOutput/compositeMode_SCREEN_skia.png
Tests/expectedOutput/compositeMode_SCREEN_svg.svg
Tests/expectedOutput/compositeMode_SOFTLIGHT_cairo.png
Tests/expectedOutput/compositeMode_SOFTLIGHT_coregraphics.png
Tests/expectedOutput/compositeMode_SOFTLIGHT_skia.png
Tests/expectedOutput/compositeMode_SOFTLIGHT_svg.svg
Tests/expectedOutput/compositeMode_SRCATOP_cairo.png
Tests/expectedOutput/compositeMode_SRCATOP_coregraphics.png
Tests/expectedOutput/compositeMode_SRCATOP_skia.png
Tests/expectedOutput/compositeMode_SRCATOP_svg.svg
Tests/expectedOutput/compositeMode_SRCIN_cairo.png
Tests/expectedOutput/compositeMode_SRCIN_coregraphics.png
Tests/expectedOutput/compositeMode_SRCIN_skia.png
Tests/expectedOutput/compositeMode_SRCIN_svg.svg
Tests/expectedOutput/compositeMode_SRCOUT_cairo.png
Tests/expectedOutput/compositeMode_SRCOUT_coregraphics.png
Tests/expectedOutput/compositeMode_SRCOUT_skia.png
Tests/expectedOutput/compositeMode_SRCOUT_svg.svg
Tests/expectedOutput/compositeMode_SRCOVER_cairo.png
Tests/expectedOutput/compositeMode_SRCOVER_coregraphics.png
Tests/expectedOutput/compositeMode_SRCOVER_skia.png
Tests/expectedOutput/compositeMode_SRCOVER_svg.svg
Tests/expectedOutput/compositeMode_SRC_cairo.png
Tests/expectedOutput/compositeMode_SRC_coregraphics.png
Tests/expectedOutput/compositeMode_SRC_skia.png
Tests/expectedOutput/compositeMode_SRC_svg.svg
Tests/expectedOutput/compositeMode_XOR_cairo.png
Tests/expectedOutput/compositeMode_XOR_coregraphics.png
Tests/expectedOutput/compositeMode_XOR_skia.png
Tests/expectedOutput/compositeMode_XOR_svg.svg
Tests/expectedOutput/glyph_more_samples_composite_colr_glyph_cairo.png
Tests/expectedOutput/glyph_more_samples_composite_colr_glyph_coregraphics.png
Tests/expectedOutput/glyph_more_samples_composite_colr_glyph_skia.png
Tests/expectedOutput/glyph_more_samples_composite_colr_glyph_svg.svg
Tests/expectedOutput/glyph_more_samples_linear_repeat_0.2_0.8_cairo.png
Tests/expectedOutput/glyph_more_samples_linear_repeat_0.2_0.8_coregraphics.png
Tests/expectedOutput/glyph_more_samples_linear_repeat_0.2_0.8_skia.png
Tests/expectedOutput/glyph_more_samples_linear_repeat_0.2_0.8_svg.svg
Tests/expectedOutput/glyph_more_samples_linear_repeat_0.5_1.5_cairo.png
Tests/expectedOutput/glyph_more_samples_linear_repeat_0.5_1.5_coregraphics.png
Tests/expectedOutput/glyph_more_samples_linear_repeat_0.5_1.5_skia.png
Tests/expectedOutput/glyph_more_samples_linear_repeat_0.5_1.5_svg.svg
Tests/expectedOutput/glyph_more_samples_linear_repeat_0_1.5_cairo.png
Tests/expectedOutput/glyph_more_samples_linear_repeat_0_1.5_coregraphics.png
Tests/expectedOutput/glyph_more_samples_linear_repeat_0_1.5_skia.png
Tests/expectedOutput/glyph_more_samples_linear_repeat_0_1.5_svg.svg
Tests/expectedOutput/glyph_more_samples_linear_repeat_0_1_cairo.png
Tests/expectedOutput/glyph_more_samples_linear_repeat_0_1_coregraphics.png
Tests/expectedOutput/glyph_more_samples_linear_repeat_0_1_skia.png
Tests/expectedOutput/glyph_more_samples_linear_repeat_0_1_svg.svg
Tests/expectedOutput/glyph_more_samples_sweep_cairo.png
Tests/expectedOutput/glyph_more_samples_sweep_coregraphics.png
Tests/expectedOutput/glyph_more_samples_sweep_skia.png
Tests/expectedOutput/glyph_more_samples_sweep_svg.svg
Tests/expectedOutput/glyph_more_samples_transformed_sweep_cairo.png
Tests/expectedOutput/glyph_more_samples_transformed_sweep_coregraphics.png
Tests/expectedOutput/glyph_more_samples_transformed_sweep_skia.png
Tests/expectedOutput/glyph_more_samples_transformed_sweep_svg.svg
Tests/expectedOutput/glyph_mutator_B_cairo.png
Tests/expectedOutput/glyph_mutator_B_coregraphics.png
Tests/expectedOutput/glyph_mutator_B_skia.png
Tests/expectedOutput/glyph_mutator_B_svg.svg
Tests/expectedOutput/glyph_mutator_D_cairo.png
Tests/expectedOutput/glyph_mutator_D_coregraphics.png
Tests/expectedOutput/glyph_mutator_D_skia.png
Tests/expectedOutput/glyph_mutator_D_svg.svg
Tests/expectedOutput/glyph_noto_u1F30A_cairo.png
Tests/expectedOutput/glyph_noto_u1F30A_coregraphics.png
Tests/expectedOutput/glyph_noto_u1F30A_skia.png
Tests/expectedOutput/glyph_noto_u1F30A_svg.svg
Tests/expectedOutput/glyph_noto_u1F943_cairo.png
Tests/expectedOutput/glyph_noto_u1F943_coregraphics.png
Tests/expectedOutput/glyph_noto_u1F943_skia.png
Tests/expectedOutput/glyph_noto_u1F943_svg.svg
Tests/expectedOutput/glyph_noto_uni2693_cairo.png
Tests/expectedOutput/glyph_noto_uni2693_coregraphics.png
Tests/expectedOutput/glyph_noto_uni2693_skia.png
Tests/expectedOutput/glyph_noto_uni2693_svg.svg
Tests/expectedOutput/glyph_noto_uni2694_cairo.png
Tests/expectedOutput/glyph_noto_uni2694_coregraphics.png
Tests/expectedOutput/glyph_noto_uni2694_skia.png
Tests/expectedOutput/glyph_noto_uni2694_svg.svg
Tests/expectedOutput/glyph_twemoji_uni3299_cairo.png
Tests/expectedOutput/glyph_twemoji_uni3299_coregraphics.png
Tests/expectedOutput/glyph_twemoji_uni3299_skia.png
Tests/expectedOutput/glyph_twemoji_uni3299_svg.svg
Tests/expectedOutput/sweepGradient_PAD_0_0.5_0.5_0.6_1_cairo.png
Tests/expectedOutput/sweepGradient_PAD_0_0.5_0.5_0.6_1_coregraphics.png
Tests/expectedOutput/sweepGradient_PAD_0_0.5_0.5_0.6_1_skia.png
Tests/expectedOutput/sweepGradient_PAD_0_0.5_0.5_0.6_1_svg.svg
Tests/expectedOutput/sweepGradient_REFLECT_0_0.5_0.5_0.6_1_cairo.png
Tests/expectedOutput/sweepGradient_REFLECT_0_0.5_0.5_0.6_1_coregraphics.png
Tests/expectedOutput/sweepGradient_REFLECT_0_0.5_0.5_0.6_1_skia.png
Tests/expectedOutput/sweepGradient_REFLECT_0_0.5_0.5_0.6_1_svg.svg
Tests/expectedOutput/sweepGradient_REPEAT_0_0.5_0.5_0.6_1_cairo.png
Tests/expectedOutput/sweepGradient_REPEAT_0_0.5_0.5_0.6_1_coregraphics.png
Tests/expectedOutput/sweepGradient_REPEAT_0_0.5_0.5_0.6_1_skia.png
Tests/expectedOutput/sweepGradient_REPEAT_0_0.5_0.5_0.6_1_svg.svg