RFC removing the XPrimitive2D (and related) UNO classes
quikee at gmail.com
Mon Apr 13 19:34:10 UTC 2020
On Mon, Apr 13, 2020 at 7:46 PM Noel Grandin <noelgrandin at gmail.com> wrote:
> 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:
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
, 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.
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...
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the LibreOffice