FYI: stripping away some of the chart2 rendering complexity

Armin Le Grand armin_le_grand at
Wed Dec 29 10:29:27 UTC 2021

Hi Noel,

AFAIR the XShapes/SdrObject(s) are needed to allow interaction/clicks in
activated chart, so when you do not create these it may be necessary to
completely rewrite the Chart View's interactions (Select, move, resize,
etc...) *without* SdrObject(s)/SdrView stuff. Also AFAIR there is/was a
feature added to also draw any SdrObject(s) - like in the other apps -
freely and additionally to the existing, Chart-created ones. All this
needs - unfortunately - the Sdr* DrawingLayer stuff, thus also the
SdrObject(s), SdrViews, etc...

To not get to misunderstandings again: I would love to have direct
geometry creation in Chart and to speed it up, just mentioning how the
structure currently is. I made suggestions how to speed it up, too.

One idea I had (recently - not talked about yet) was to implement a new
SdrObject that may contain/host seq<primitives>, so a kind of
SdrPrimitiveObject. That may then be added/implemented to all that UI
interaction stuff we need in drawinglayer (not the module, the 'old'
stack) to make it interactively available as e.g.
Circle/Ellipse/Rectangle - you name it. Since only used/constructed in
Chart it would not need load/save, geometry conversion would be free -
get the primitive content :-)

Just my 2ct..

On 12/29/21 9:04 AM, Noel Grandin wrote:
> Actually I left out a step. 
> Before I even do that, I am going to switch the code from creating
> abstract UNO objects 
>     e.g. uno::Reference<drawing::XShape>
> to creating explicit types
>    e.g. rtl::Reference<SvxShapePolyPolygon>
> Just to make it obvious what is happening, and easier to fix regressions.

ALG (PGP: EE1C 4B3F E751 D8BC C485 DEC1 3C59 F953 D81C F4A2)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the LibreOffice mailing list