Apache OpenOffice (AOO) Bugzilla – Issue 112117
Sample chart rendering very slow
Last modified: 2017-05-20 11:41:45 UTC
AW: Got a chart which renders very slow.
Created attachment 69800 [details] Bugdoc showing the very slow rendering of a simple chart
AW: The chart is slow due to two reasons: (a) When the Metafile is converted to primitives, the transparent grid lines which are transported in the Metafile as MetaFloatTransparentAction (Metafiles have very limited possibilities to transport transparence information) are by error embedded into a MastPrimitive each by error. This happens since the main graphic state during processing has a ClipRegion and the Sub-Metafile content used in MetaFloatTransparentAction is interpreted using this. This is wrong; a sub-content need to start wit a freshly initialized (to defaults) graphic content. Problem is that this collides with #i111235# from aw081. (b) Each transparent hairline is embedded into a UnifiedTransparencePrimitive2D. This is correct, but can be optimized in the pixel renderer by detecting those cases and drawing transparent hairlines directly. This would need #i101378# which is in CWS vcl112. As can be seen, the preconditions are not good. With OOo3.3 closing coming nearer, i will do what i can.
AW: To fix (a), i have now merged in CWS aw081 completely. AW: Added needed stack handling to metafileprimitive2d.cxx. This alone makes the chart render pretty fast since only very small (area-wise) sub-VDevs are created to handle the transparence of the Hairlines. AW: Also added code already to fix (b), but curently can only detect those cases, but not yet paint them using VCL (as said, need another fix from there). Best will be to do this fixes as far as possible and to make a F'up task for direct rendering of transparent hairlines.
AW: Added #i112118# as F'up for (b). AW: Commited changes, done.
AW: Re-checked in pro build. AW->WG: Please verify in CWS. Just use testfile, is much faster now.
Verified in CWS.