Matthias Clasen
0a2f3673b9
[paint] Use tags for image formats
...
This fits better with the rest of the
HarfBuzz API.
2022-12-23 13:37:59 -07:00
Matthias Clasen
4c728e952b
[colr] Add a todo
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
4b0285bae6
[colr] Use slant_xy
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
b9314400ec
[colr] Hook up color-line variation
2022-12-23 13:37:59 -07:00
Matthias Clasen
a935e4b0c2
[paint] Add synthetic slant to root transform
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
edf2738263
[colr] Try fixing bot build
...
I don't get the error. Let's see.
../../src/harfbuzz/src/hb-ot-color-colr-table.hh:574:66: error: incomplete definition of type 'OT::NoVariable<OT::ColorLine<OT::NoVariable>>'
2022-12-23 13:37:59 -07:00
Matthias Clasen
686e627bdf
[paint] Set up root transform in one place
...
Instead of spreading this in all the tables,
make hb_paint_funcs_t provide a push/pop_root_transform
that does all the setup.
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
c6dd56cc64
[colr] Simplify color-stop handling
2022-12-23 13:37:59 -07:00
Matthias Clasen
485ba9beb3
[paint] Spell out rectangle in the API
...
No need to abbreviate this.
2022-12-23 13:37:59 -07:00
Matthias Clasen
37f3f0fcc2
[paint] Change the image callback
...
Instead of passing the glyph ID, give
it the image blob, a mimetype, and
glyph extents (if available).
Update all callers.
2022-12-23 13:37:59 -07:00
Matthias Clasen
ea48d6c292
Move hb_glyph_extents_t definition
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
b722039c48
[colr] Simplify
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
452cfb9599
[colr] Simplify loop using iterators
...
Or complexify?!
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
601a596ca0
[paint] Fix include path
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
8a9069d55f
[colr] Fix radial gradient
...
Broke it when adding variations.
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
e799c33bb5
[paint] Fix function prototype
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
1953d26a8a
[colr] Limit recursion depth
2022-12-23 13:37:59 -07:00
Matthias Clasen
378bbeea01
Add more docs
2022-12-23 13:37:59 -07:00
Matthias Clasen
9876e30c6e
test: Support png images via paint_image
2022-12-23 13:37:59 -07:00
Matthias Clasen
6079173a52
Try paint_glyph for more tables
...
If the COLR table does not paint the glyph,
try SVG, CBDT and sbix too, before giving up
on color.
2022-12-23 13:37:59 -07:00
Matthias Clasen
e6c5a616aa
SVG Implement paint-glyph
2022-12-23 13:37:59 -07:00
Matthias Clasen
23c60fd9b2
sbix: Implement paint_glyph
2022-12-23 13:37:59 -07:00
Matthias Clasen
7996ae4c3d
CBDT: Implement paint glyph
2022-12-23 13:37:59 -07:00
Matthias Clasen
82e23f322a
paint: Add a paint-image callback
...
This will be used for image blobs like pngs and svgs.
FIXME: nail down and document sizing.
2022-12-23 13:37:59 -07:00
Matthias Clasen
56b02b6599
Update the docs
...
Mention that the color index will always be 0xFFFF
when using hb_paint API with fonts that don't have
color palettes.
And add an outline about which kinds of glyphs
require which callbacks.
2022-12-23 13:37:59 -07:00
Matthias Clasen
9461ab7088
Try paint_glyph for more tables
...
If the COLR table can't paint the glyph,
try glyf, cff1 and cff2 too.
2022-12-23 13:37:59 -07:00
Matthias Clasen
3e39dd492b
cff2: Implement paint_glyph
2022-12-23 13:37:59 -07:00
Matthias Clasen
df89b52130
cff1: Implement paint_glyph
2022-12-23 13:37:59 -07:00
Matthias Clasen
2edd771cf5
glyf: Implement paint_glyph
2022-12-23 13:37:59 -07:00
Matthias Clasen
0b33b35eb0
COLRv1: Return bool from paint_glyph
...
This will let hb_ot_font_paint_glyph() try
multiple tables in turn.
2022-12-23 13:37:59 -07:00
Matthias Clasen
0d890061d1
Rename 'solid' to 'color'
...
'solid' does not really describe well what
the function does, and there is no strong
reason to stick 1:1 to the terminology used
in the spec.
2022-12-23 13:37:59 -07:00
Matthias Clasen
2c07828603
test: More debug spew
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
46286275f7
[colr] More dispatch functionality
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
81f232afb5
[colr] Use dispatch machinery for paint_glyph context
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
a96300d42c
[colr] Hide internal symbols
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
fdf17dbf34
Try fixing bots
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
b4cab86d94
Fix autotools build
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
0757519092
[colr] Add variation to rest of the paints
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
5bce005346
[colr] Flesh out variations for a few paints
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
9d3440b742
[colr] Add variation infrastructure to paint_glyph
...
No paint applies variations yet.
2022-12-23 13:37:59 -07:00
Matthias Clasen
5c6329555e
Apply root transform
...
This commit applies scale, slant is still missing.
2022-12-23 13:37:59 -07:00
Matthias Clasen
5afca91ff2
Add some docs
2022-12-23 13:37:59 -07:00
Matthias Clasen
44c68594f1
Some docs
2022-12-23 13:37:59 -07:00
Matthias Clasen
d7c2eacf45
Handle COLRv0 layers in paint_glyph
2022-12-23 13:37:59 -07:00
Matthias Clasen
55ca6ed230
minor fixes
2022-12-23 13:37:59 -07:00
Matthias Clasen
794fa4c3c1
sweep gradients etc
2022-12-23 13:37:59 -07:00
Matthias Clasen
1880e54753
Assorted fixes
2022-12-23 13:37:59 -07:00
Matthias Clasen
684df8a82a
add some todos
2022-12-23 13:37:59 -07:00
Matthias Clasen
a6f813b680
Implement hb_color_line_get_extend
2022-12-23 13:37:59 -07:00
Matthias Clasen
d07fdc69dd
test: dump color lines
2022-12-23 13:37:59 -07:00