On 2013-08-30 13:37:00, Sebastian Ramacher wrote:
> On 2013-08-08 20:43:12, Sebastian Ramacher wrote:
> > There are of course other ways to fix this. One of them would be to
> > abort the rendering of the page if it becomes invisible and leaves the
> > cache. However, implementing the necessary message passing for this is
> > less trivial than just exposing this one function to check if a page is
> > cached or not.
> I'm currently working on a different render infrastructure in the
> features/renderer-take-2 branch. The setup is currently the following:
>  - There is a ZathuraRenderer object that renders a page in a separate
>    thread.
>  - Every page widget holds a ZathuraRenderRequest object to manage
>    render requests. Widgets use this object to request a page to be
>    renderer and can also abort an request.
>  - ZathuraRenderRequest emits a signal as soon as the page is ready.
> There are somethings that are not done yet. The sorting of the render
> requests is currently broken.
> In the end I hope it's enough to cancel pending requests in the caching
> code and remove the workaround again.

I've worked on this a bit the last few days and finally merged into develop.
The caching logic is now in ZathuraRenderer and pages are notified via their
associated ZathuraRenderRequest if they are cached or got removed from the
cache. Pages will now release the surface themselves once they are not cached
and not visible.

There are still some workarounds that I'm not fully happy with and I'll probably
end up implementing some signals for the visibility stuff to make things easier.

Feedback is very welcome.

Sebastian Ramacher
zathura mailing list

Reply via email to