[go: up one dir, main page]

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