Gosub Browser Progress, pt48
We spend a few weeks on getting the engine back to a useful state. The modularity is working again (with ModuleConfig and RenderConfig), and we have different examples that can be compiled on different systems (Linux and mac are the two I can test myself).
The main goal besides getting the engine back together, was trying to render some sites. Thanks to lot of the work we did over the last years, a lot of work on getting sites rendered is a matter of implementing CSS things here and there.
At this moment, we have an engine that can render the gosub.io website without any problems. And this site does include some "advanced" CSS things: transparent and sticky navbar, @font-face webfonts, inline elements, background gradients, background (svg) images etc. And these things are all implemented in such a way that we have a rendered image that is pretty much on par with renderings from FireFox.
Also, a lot of work has been done in the scrolling. There were a lot of issues by unoptimized code which we cleaned up so scrolling is a fast operation on any render backend (both CPU and GPU renderings). We even added the "animated" scroll where a scroll eases in and out so it behaves pretty much like a regular browser. And.. it's fast..
Pretty much all the examples (at least, in release mode), are really responsive and seem like a real browser. There is still much work to be done.. but i'm really happy with the current progress. It feels like we are really working on a browser again!
The next few weeks I will spend on cleaning up and reviewing parts of the engine. We had a lot of help with Claude, and we want to make sure that everything is set up in such a way that the ownership we claim to have, is indeed there. I believe this is the case, but it can never hurt to go over the code once in a while (even a subpart of it), and do a run through.
When this is completed, I think we can do a major campaign on promoting the current work to the public. It is so much easier when you can actually show things to the outside world, instead of just telling that you have created all these loose components.