~eliasnaur/gio

Gio News August 2020

Details
Message ID
<C4N9ZSRB761J.EGVHQQ5EHCJM@themachine>
DKIM signature
pass
Download raw message
Community call recording

The recording for the July community call is at

https://youtu.be/-LIbXfuzfS0

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


Loader

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

https://git.sr.ht/~eliasnaur/gio/tree/master/example/kitchen/kitchen.go#L336


Borders

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

https://git.sr.ht/~eliasnaur/gio/tree/master/example/kitchen/kitchen.go#L259

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:

https://github.com/reactivego/ivg


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:

https://github.com/Nik-U/gioexamples/blob/master/fonts


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:

https://todo.sr.ht/~eliasnaur/gio/146

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)