Announcement

Collapse
No announcement yet.

GTK4's Broadway HTML5 Backend Coming Back To Ubuntu, Debian

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • GTK4's Broadway HTML5 Backend Coming Back To Ubuntu, Debian

    Phoronix: GTK4's Broadway HTML5 Backend Coming Back To Ubuntu, Debian

    For the past decade going back to the early GTK3 days there has been the "Broadway" back-end that allows for GTK interfaces to be rendered within HTML5 web browsers. Aside from demos and other toys, there hasn't been too much widespread use reported with this GTK HTML5 back-end and some distributions like Ubuntu and Debian haven't been shipping the Broadway support with the newer GTK4. However, that is changing now for Debian and with this autumn's release of Ubuntu 22.10...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    Running graphical Emacs as a "webapp" is something which I have actually found useful on more than one occasion (e.g. locked down computer with only browser and https connections whitelisted). Here's an example:

    Comment


    • #3
      I can confirm that it works well enough with all the GTK stuff I tried. I was mostly experimenting with it because it seemed like a way to enable seamless DPI scaling on Xorg (using browser zoom). And yes, it does work, but sadly it's just drawing bitmaps so it's blurry when you zoom in or out. So I'm back to scaling the whole monitor with xrandr.

      Comment


      • #4
        Then you may be interested in https://blogs.gnome.org/alexl/2019/0...tures-in-gtk4/

        TLDR: In GTK4 the Broadway backend uses much more divs rather than bitmaps

        Comment


        • #5
          Deckard the Glade runner. There should be an award for that.

          Comment


          • #6
            So is it like a wasm backend, or does it still require a native binary? If it requires a native binary, I guess it is just a weird webserver. Cool, but hard to imagine many use-cases for.

            Comment


            • #7
              Originally posted by carewolf View Post
              So is it like a wasm backend, or does it still require a native binary? If it requires a native binary, I guess it is just a weird webserver. Cool, but hard to imagine many use-cases for.
              It is all native. Your application talks via some gtk specific proxy (in order to support more than one application) to your browser.

              I used it ages ago to run an instance of pidgin on my home server. That way I could connect from the office and from at home to the same application and have a shared chat log.

              Comment


              • #8
                Originally posted by lb90 View Post
                Then you may be interested in https://blogs.gnome.org/alexl/2019/0...tures-in-gtk4/

                TLDR: In GTK4 the Broadway backend uses much more divs rather than bitmaps
                Also, looking at the examples they seem very heavy in terms of images, as all the text are images. However, in a typical frame most of the render tree is identical to the previous frame, meaning any label that was used in the last frame need not be sent again. In fact, even if it changes position in the tree due to a parent node changing (scrolling, cube-switching, etc) it can still be reused as-is.

                However, text is clearly the weak point in here. Unfortunately HTML/CSS has no low-level text rendering APIs we could use. I’m considering generating a texture atlas with pre-rendered glyphs that can be reused (like CSS sprites) when rendering text, that would mean we will have to download less data at least. If anyone has other ideas I would love to hear about it.
                Alas, without the browser rendering the text it cannot be used as a workaround for the GTK4 subpixel rendering regression.

                Comment

                Working...
                X