ANN: ongoing emf+ parser & rendering rework

Armin Le Grand armin_le_grand at me.com
Tue Aug 22 13:30:04 UTC 2017


Hiho,

here are some cleanup start points:

- m_bUseCanvas: no longer needed, no longetr interesting from outside 
Metafile
- ImplPlayWithRenderer: should be removed. Adding a warning in 
Metafile::Play for comments with GDIPLUS which guides to use primitive 
renderer for better handling would be nice to add
- MtfRenderer: The hard part. com\sun\star\rendering\MtfRenderer.idl and 
com\sun\star\rendering\MtfRenderer.idl and their should be removed. It's 
not an official API and should be safe to remove
- there may be more as consequence of these...as always ;-)

Of course some UnitTests would be nice, too, best with EMF+ test data 
files which make use of the new stuff.

As Thorsten already stated: Help much appreciated!

Regards,

Armin (alg)


Am 22.08.2017 um 12:48 schrieb Thorsten Behrens:
> I wrote:
>> Next steps (again, help much appreciated!):
>>
>> - add more GraphicPrimitive generators, complete up to a state that
>>    the filter at least covers what the current direct canvas renderer
>>    delivers:
>>     * clip regions
>>     * text rendering - it's parsed, but graphic primitive generation is
>>       missing
>>     * gradients/hatches
>>
> That's now done to a point where we're ~on par with the old renderer's
> functionality - thx to Patrick, Noel and Armin for all the nice work!
>
>> - once this works, cut over to new impl, bin the old code in cppcanvas
>>    (there's sadly a small amount of duplicate code now in the parsers)
>> - iteratively expand, to cover near-100% of EMF+ (mostly lacking around
>>    gradients & effects):
>>     * more complex fill types like bitmaps/tiles
>>     * path gradient
>>     * xor & stuff
>>
> That cut-over has now happened with
>
> https://cgit.freedesktop.org/libreoffice/core/commit/?id=ebc11ae0b132eefd3b1b1a837a8d0ad3ba73b460
>
> , also killing the functionality to compare the two renderers - if you
> still need that, it's a rather smallish revert for now.
>
> Next up is cleansing the old renderer under cppcanvas, I suspect
> there's some easy wins there for easy hackers. :)
>
> Cheers,
>
> -- Thorsten

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



More information about the LibreOffice mailing list