RFC removing the XPrimitive2D (and related) UNO classes

Tomaž Vajngerl quikee at gmail.com
Mon Apr 13 19:34:10 UTC 2020


Hi Noel,

On Mon, Apr 13, 2020 at 7:46 PM Noel Grandin <noelgrandin at gmail.com> wrote:

> Hi
>
> I notice when performance tuning that our drawinglayer stuff spends quite
> some time converting back and forth between XPrimitive2D and BasePrimitive
> stuff and copying sequence->vector and vector->sequence.
>
> Now as far as I can see (analysis below), the stuff exposed in our UNO
> layer is not usable from extensions because it doesn't tie into anything
> useful, so nothing should change as far as that goes.
>
> The benefit is that it becomes easier to optimise the copying and moving
> around of this stuff if it is C++ layers all the way down, with no UNO
> stuck in the middle of it.
>
> First stage of this change here:
> https://gerrit.libreoffice.org/c/core/+/92107
>
>
Yeah, that looks great to me, but I don't like that dynamic / static
loading of svgio library (like we already do in graphicfilter). Ideally
svgio shouldn't need to depend on vcl - it just creates the primitives from
the svg file, so vcl could just import svgio normally. For that also
drawinglayer needs to be free from vcl dependency, so it is not a simple
thing to do. I'm experimenting with this in feature/drawinglayercore branch
[1], where I made a drawinglayercore library (like svx and svxcore, which
is not ideal but necessary for simplicity), which will only have the core
drawinglayer stuff and basic primitives and basegfx as the dependency.

[1]
https://cgit.freedesktop.org/libreoffice/core/commit/?h=feature/drawinglayercore&id=3abc1847fb81c358737e1d4443f3e6bf83c7691d

Anyway, an alternative to this would also be to create a
XPrimtiive2DContainer UNO interface, which would allow to "transport" the
Primitive2DContainer unmodified and wouldn't require that we convert, only
on demand convert that to Sequence<XPrimitive2D>. Not sure if this solution
is any better...

Regards, Noel
>
>
Regards, Tomaž
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice/attachments/20200413/67c4ec09/attachment.htm>


More information about the LibreOffice mailing list