Improve speed of rendering esp. on big screens
We need to improve the rendering to be faster on big displays, currenly redraw is too much slow in > 2500px
My proposal is in 3 point targeted to diferent milestones:
Milestone 1.1
- Multitreading: The way I like more to get a multithreading is make a tiled multicanvas enviroment, because for 1.1 I want to move the split canvas feature to a dual canvas splited in a Gtk::Paned, we can get this to use for a dynamic split. Using the same canvas is a big problem because we "write" canvas data simultaneusly and this is not cairo friendly, AFIK.
Milestone 1.0
- Limit cache to viewbox:
We cache and and render elements that cross with canvas widget to a mas of 2:1 size of canvas, the idea is smooth using it but realy in the normal operations:
- Panning: this is not used
- Scrool: this is not used
- Zoom: This is not used
- Drag/edit inside canvas: This is not used
- Drag/edit overflowing canvas: We can get some improvements but normaly on small objects that render faster So potentialy we can gain lot up in rendering on zoom/panning/scroll/edit inside when some objects overflow canvas.
Milestone undefined
- Not render hidden objects:
To do this I want to find in reverse order previously to render the last secuential element that cover the backgound and don`t have opacity, filters or blending mode. And don't render elements previously to it
Edited by Jabier Arraiza