ANN: ongoing emf+ parser & rendering rework

Chris Sherlock chris.sherlock79 at gmail.com
Wed Aug 23 01:58:37 UTC 2017


On Tue, Aug 22, 2017 at 11:30 PM, Armin Le Grand <armin_le_grand at me.com>
wrote:

> 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)



How hard would it be to move the workbench example in VCL to use this?

https://cgit.freedesktop.org/libreoffice/core/tree/vcl/workben/mtfdemo.cxx



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=ebc
>> 11ae0b132eefd3b1b1a837a8d0ad3ba73b460
>>
>> , 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)
>
> _______________________________________________
> LibreOffice mailing list
> LibreOffice at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/libreoffice
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice/attachments/20170823/29acf029/attachment.html>


More information about the LibreOffice mailing list