|Performance issue on redundant painting of fully covered figures [message #654580]
||Wed, 16 February 2011 11:56
| Thomas Beyer
Registered: July 2009
I am running into performance issues with large scaled diagrams.
I have developed a visual editor for describing human machine interfaces
I have made marginal adaptions to GMF'ss ShapeCompartmentFigure and
Draw2DSs FreeformViewport to allow a child figure to fully cover (not
overlap) a compartment figure.
http://img262.imageshack.us/i/diagramw.png/ shows the resulting diagram.
The tabs are also ImageFigures and created via screen scraping in
java-swing. The diagram inside the lightblue figure is some screenshot,
shown via the Draw2Ds ImageFigure. It shall demonstrate, that the
figures must be able to hold images.
http://img819.imageshack.us/i/modeltree.png/ shows, the Fragment
"SubEntity" actually fully covers Fragment "SubEntity 2".
The example is very simple. The uses cases of my clients require quiet a
lot more fully covered/ing elements than in the example over more than
In the end, the editor holds - lets say - 200 elements within a
hierarchy, however only 20 are actually seen within the editor, because
they are in front. The other 180 are fully covered in the background.
They can of course be brought to front via the zorder-commands.
After digging into the code, I realized, that the entire 200 elements
get painted all the time (implementation of Draw2D's figure), when
updates occur. Working within the editor actually causes shiver when
scrolling due to the painting jobs. For my clients this is an
unacceptable performance problem.
Is there a way, that I can tell the editor or the figure hierarchy
itself to only paint what really is in front and skip covered figures?
It seems very ineffective to paint the figure hierarchy from the element
in the backmost position to the elements in the front while painting
over the same regions a lot of times.
I don't want to make use of transparency, so all my figures are opaque.
Any help or suggestions is very much appreciated?
TIA & regards Thomas
Powered by FUDForum
. Page generated in 0.02036 seconds