Hi Noel, On Mon, Apr 13, 2020 at 7:46 PM Noel Grandin <noelgran...@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ž
_______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice