~eliasnaur/gio

Gio News, May 2021

Details
Message ID
<CAFcc3FTyqMKofES7L3kC-OjhkqkgVtbHsN4TMb6fws=OUKACAA@mail.gmail.com>
DKIM signature
pass
Download raw message
Hello Gioverse!

It's been another month of exciting development across the ecosystem.
Check it out:

========
core gio
========

Elias spent the month primarily working on the Swiftshader-based CPU
fallback for machines that lack compute shader support. He also
refactored the gioui.org/app package so that it is easier than ever to
mix Gio interface components with OpenGL.

Other changes in core:

- Elias:
  - changed the headless render output to use a transparent background
by default.
  - restricted CGo symbol visibility in internal/gl.
  - switched macOS to loosely depend on OpenGL in preparation for a
future compute shader backend built atop Metal and updated macOS/iOS
GL extensively to accommodate these changes.
  - changed the default window size to use scale-independent units.
  - added better support for blending sRGB Gio interfaces atop OpenGL content.
  - fixed a bug on Windows in which window destroy events might not be
dispatched properly before the window actually disappeared.
  - updated Gio's minimum Go version to 1.16 to support certain
features building for iOS.
  - added app.CustomRenderer to support mixing Gio and OpenGL easily.
  - exposed the app.ViewEvent for every platform and made it useful
for platforms that support app.CustomRenderer to bind together Gio and
external GL code.
  - added app.Window.Run, a method that allows running functions
against the native window. This is primarily useful for applications
that need granular control over their rendering.
  - bumped the supported android SDK version to 30.
  - changed material.Loader to draw entirely within its own boundaries.
- Pierre Curto
  - helped Elias find and fix some macOS deadlocks.
  - added support for the io.Seeker, io.Reader, and io.WriterTo
methods on widget.Editor.

=====
gio-x
=====

A lot happened in gio-x over the past month:

- I merged tooltip support into gioui.org/x/component.
- Vladimír Magyar implemented a package for rendering rich text (text
containing multiple styles and fonts). You can find it at
gioui.org/x/richtext. Be warned that the API is particularly unstable
on this, as we're still iterating to support all of the features we
want out of it.
- Werner Laurensse has opened a PR to gio-x adding their
implementation of a colorpicker (which looks much better than the old
one). It isn't merged yet, but the curious can find the PR here:
https://github.com/gioui/gio-x/pull/2
- Jack Mordaunt added an additional helper method to animation types
in component.

===========
gio-example
===========

Elias updated the glfw example to take advantage of the new
mixed-rendering helpers, and also added an example for OpenGL
rendering called `opengl`.

==============
community call
==============

This month's community call couldn't be recorded due to an outage in
Jitsi's recording functionality.

Jack and I have reconstructed some of the content in this video, but
it is re-enactment rather than footage from the actual call.

https://youtu.be/grLXZiTNBm8

======
photon
======

This month I learned about the Photon RSS reader, which builds a
slick, lightweight feed reader application atop Gio.

You can check out Photon here: https://gitlab.com/microo8/photon

========
markdown
========

I am in the process of developing a markdown rendering package built
atop the richtext package mentioned above. It is not ready for use (I
promise I will break the API several times in the next month), but you
can find a current iteration on the `markdown` branch of gio-x.

https://git.sr.ht/~whereswaldon/gio-x/log/markdown

You can see a demo of its output in the community call video linked above.

==============
opencollective
==============

If Gio provides value to you, please consider sponsoring its
development on OpenCollective:

https://opencollective.com/gioui

======================
call for presentations
======================

If you'd like to present any of your Gio-related work during the
next Gio community call, please reach out to me.

You can find recordings of previous Gio community calls here:

https://www.youtube.com/channel/UCzuKUnKK5gAFJKNyA1imIHw

=======
the end
=======

Thanks for reading! Please reach out if you'd like your work included
in future newsletters.

Cheers,
Chris Waldon
Reply to thread Export thread (mbox)