<div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif">Hi</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">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.</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">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.</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">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.</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">First stage of this change here:</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><a href="https://gerrit.libreoffice.org/c/core/+/92107" target="_blank">https://gerrit.libreoffice.org/c/core/+/92107</a><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">Regards, Noel</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div>offapi/com/sun/star/graphic/XPrimitive2D.idl<br>    exports method<br>        sequence< XPrimitive2D > getDecomposition()<br>    exports methods<br>        css::geometry::RealRectangle2D getRange()<br><br>offapi/com/sun/star/graphic/XPrimitive2DRenderer.idl<br>    exports method<br>        com::sun::star::rendering::XBitmap rasterize()<br><br>offapi/com/sun/star/graphic/Primitive2DTools.idl<br>    service which provides<br>        XPrimitive2DRenderer<br><br>offapi/com/sun/star/graphic/XEmfParser.idl<br>    exports method<br>        sequence< XPrimitive2D > getDecomposition()<br><br>offapi/com/sun/star/graphic/XPdfDecomposer.idl<br>    exports method<br>        sequence< XPrimitive2D > getDecomposition()<br><br>offapi/com/sun/star/graphic/XSvgParser.idl<br>    exports method<br>        sequence< XPrimitive2D > getDecomposition()<br>    exports method<br>        any getDrawCommands()<br><br>offapi/com/sun/star/graphic/XPrimitiveFactory2D.idl<br>    exports method<br>        sequence< XPrimitive2D > createPrimitivesFromXShape(<br>            [in] ::com::sun::star::drawing::XShape xShape,<br>    exports method<br>        sequence< XPrimitive2D > createPrimitivesFromXDrawPage(<br>            [in] ::com::sun::star::drawing::XDrawPage xDrawPage,<br><div class="gmail_default" style="font-family:tahoma,sans-serif"> </div></div>