Gio News August 2020

Message ID
DKIM signature
Download raw message
Community call recording

The recording for the July community call is at


It includes a presentation by Chris Waldon about his Arbor chat
system, its Sprig Gio client and his work on implementing material
design components. Viktor Ogeman also presents his ongoing work on the
low-level GPU vector rendering. He's is the author of affine
transformations in Gio and is working on a new renderer based on
compute shaders.

* Material components - https://git.sr.ht/~whereswaldon/materials
* Arbor - https://arbor.chat
* Sprig (Arbor GUI client) - https://git.sr.ht/~whereswaldon/sprig

* Compute shaders on the CPU - https://github.com/vron/compute


The new widget.Loader can display an animated indeterminate loader.
The Loader is simple to use and require no state:



The widget.Border widget is useful for drawing borders around other
widgets or areas. It's used the same way as layouts:


The widget is based on the lower level clip.Border for constructing the
border outline.

Native IconVG icons

Gio displays icons by first converting them to images, and then
transfer them to the GPU for drawing. While simple, the process is
slow and memory-heavy.

René Post is working on converting IconVG icons directly to Gio
drawing and clipping operations:


Font collections

Nik U contributed font fallback to Gio, so missing glyphs from a
primary font can be provided by secondary fonts. There's a "Hello,
World" example is many languages in his repository:


Complex script layout

Supporting multiple fonts is just one step on the way to supporting
layout of complex scripts such as Arabic or Hebrew. Nik also did a
great deal of research to assess the options for supporting them:


The main issue is that the usual library for text layout, HarfBuzz,
is written in C++ and thus difficult to integrate with Gio's static
binaries and minimal dependencies.
Export thread (mbox)