yambar/particles
Daniel Eklöf a5bbf0b769
particle/string: use fcft_text_run_rasterize() when available
This enables support for text shaping, and is required to render
e.g. 👩‍👩‍👧‍👧 correctly.

Since text-shaping is a fairly expensive operation, and since many
times the text is unchanged, we cache the last *rendered* string.

That is, we hash the instantiated string, and cache it along with the
text-run from fcft in the *particle* object (i.e. not the exposable).

This means two things:

* we only need to call fcft_text_run_rasterize() once per string
* if the string is the same as last time, we don’t have to call it at
  all.
2021-05-24 17:38:43 +02:00
..
dynlist.c cairo: replace cairo with pixman in decos, particles and modules 2019-09-22 01:56:58 +02:00
dynlist.h particle/dynlist: link particle-sdk PRIVATE:ly 2019-01-13 21:45:49 +01:00
empty.c cairo: replace cairo with pixman in decos, particles and modules 2019-09-22 01:56:58 +02:00
list.c particle/list: assert sub particles where instantiated correctly 2020-11-25 20:41:09 +01:00
map.c particle/map: don’t return NULL from instantiate() 2020-11-25 20:41:09 +01:00
meson.build meson: particles: data-driven foreach loop, and link map against dynlist 2020-11-25 20:41:09 +01:00
progress-bar.c particle/progress-bar: handle tag_for_name() failing 2020-11-25 20:41:10 +01:00
ramp.c particle/ramp: clamp min/max/value 2021-04-22 11:44:09 +02:00
string.c particle/string: use fcft_text_run_rasterize() when available 2021-05-24 17:38:43 +02:00