Apache OpenOffice (AOO) Bugzilla – Issue 121387
mirrored picture is drawn to wrong position
Last modified: 2022-10-28 12:54:21 UTC
Created attachment 79941 [details] Original file Steps to reproduce: Start with a new Draw document. Insert picture from file, embedding it. Set picture line from invisible to e.g. red. Mirror the picture over its diagonal. Notice, that the line is mirrored correctly, but the picture is drawn on wrong position. You can refresh drawing (Ctrl-Shift-R) to get the whole drawing visible. I'll attach the document before and after mirroring. It contains a blue rectangle to mark the original position and the picture itself. The mirroring was OK in OOo3.2.1
Created attachment 79942 [details] File after mirroring
ALG: Clearly one for me, taking over (btw: all that transformation stuff will be much more reliable when aw080 will be done :-))...
ALG: Error is in GraphicManager; it seems to be not capable/to have an error when mirroring and rotation is mixed. This can be checked by forcing to the own renderer in vclprocessor2d.cxx ln 427 (true == bForceUseOfOwnTransformer). Taking a look at GraphicObject::Draw...
ALG: Has to do with fix of #118824# eventually. After fixing this I need to check that task, too.
ALG: Corrected RenderBitmapPrimitive2D_GraphicManager. Problem is that the transformation is completely correct, but extractiong the parameters for the aged GraphicObject::Draw command with the GraphicAttr parameter containing rotation and mirroring is cude. I needed to add another correction when mirroring and rotation are combined; the position of (pos/size) given to the :draw call needs to be adapted to old behaviour. This works, also checked that #118824# is still fixed. All in all the GraphicManager does not give a good quality on this kind of bitmap painting at all; thus I will check to also adapt default bitmap paint behaviour to the qualitatively better own bitmap transformer...
"alg" committed SVN revision 1414687 into trunk: #121387# Corrected RenderBitmapPrimitive2D_GraphicManager to correctly handle...
Okay, done and comitted.
"alg" committed SVN revision 1414736 into trunk: #121387# Corrected wrong flag usages in RenderPolygonHairlinePrimitive2D