On 4/1/25 06:15, Ivan Vučica wrote:
On Sun, Mar 2, 2025 at 12:49 AM Ethan C <[email protected]> wrote:
Ok, I contacted the WPE devs on their Matrix channel
(#wpe:matrix.org <https://matrix.to/#/%23wpe:matrix.org>, #wpe on
OFTC if you like IRC better). One of them said that it's pretty
unlikely that we can use the existing WebKit.framework because it
probably has lots of dependencies on XNU/Mach/etc. He pointed me
to the example of integrating with QtQuick (the QML-based OpenGL
GUI library in Qt6, plasmashell is written in it and so are most
of the newer KDE apps and all of KDE's mobile apps):
https://github.com/WebKit/WebKit/tree/main/Source/WebKit/UIProcess/API/wpe/qt6.
He said we should use their new WPEPlatform API, but that we would
need to build WPE from source rather than using release builds.
Overall, it seems like this is a good way to get a browser engine
integrated.
[snip screenshot]
I vaguely recall that the student working on the GNUstep port also got
some feedback that they don't want the GNUstep port inside WebKit
without a strong commitment to continued maintenance.
Yes, this is why I thought we should use WPE instead.
Regarding SVG, if anyone is up for a fun time, just Core Animation
itself should be a decent base for implementing a renderer. For just
the renderer, this does not require any AppKit integration. There
would still be a lot of work (the more you go into "oh this has most
of HTML in it", the more trouble you'll end up with), but the basics
should be doable:
- CA is renderable into any OpenGL context (shaders needed to enable
shadow blur, framebuffers needed for render-to-texture to avoid a
needless pixel copy),
- some animation stuff in CA is very reminiscent of SVG
- drawing paths is in Opal / Core Graphics
CA implementation does not deal with animating content changes, which
is needed, notably, if anyone wants to implement an iPhoneOS
2-through-iOS6 era UINavigationController correctly; I have no
opinions on how it works with the flat iOS 7 look. This is what would
hurt the ability to implement something like macSVG (homepage has
"path animation with stroke-dasharray" as a demo; I don't expect that
to be trivial with just CG+CA, especially the cut-down ~compatibility
~layers that are in GS right now).
Oh, interesting!