To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=105243





------- Additional comments from [email protected] Fri Dec  4 18:00:30 +0000 
2009 -------
AW->OD: No, this is not the correct solution from my POV. The
BeginGroup/EndGroup parathneses for PDF export are needed (at least as long as
this is done using a Metafile and not primitives), but GraphicObject::Draw(..)
was and is not the correct place to do so.

We have two different graphic objects in SW and the rest of the office. It may
be that SW uses only GraphicObject::Draw(..) to draw it's graphic, but this is
not the case for the DrawingLayer graphics. Dependent on if the transformation
of the graphic uses a rotation or even a shear, there are three versions (see
VclProcessor2D::RenderBitmapPrimitive2D):

(1) RenderBitmapPrimitive2D_BitmapEx uses OutputDevice::DrawBitmapEx(..)
(2) RenderBitmapPrimitive2D_GraphicManager uses GraphicObject::Draw(..)
(3) RenderBitmapPrimitive2D_self credates an own pixel transformation to paint a
created BitmapEx

Method (3) e.g. is especially used for sheared graphics what is possible anytime
with primitives. Method (2) when only rotated, and (1) when neither shear nor
rotate.

The embedding itself is not even based on BitmapPrimitive2D, but on
GraphicPrimitive2D (which hold a Graphic), which is embedded into these
parantheses by not using GraphicPrimitive2D but it's decomposition and whatever
output method these will use (see 'case PRIMITIVE2D_ID_GRAPHICPRIMITIVE2D' in
VclMetafileProcessor2D::processBasePrimitive2D).

In short: Creating those parantheses should not be part of the Paint method, but
around it's call. It should happen before and after the call to
GraphicObject::Draw(..). The idea behind this is that there are more than this
way (not in SW currently) to actually paint that GraphicObject's content.

When doing the fix as proposed above, the Drawinglayer GraphicObjects (all
except SW's) will be double embedded in these parantheses since the
BeginGroup/EndGroup cannot be directly removed in 'case
PRIMITIVE2D_ID_GRAPHICPRIMITIVE2D' because any of the three visualisations (and
NOT only GraphicObject::Draw(..)) may be choosen in the decomposition.

If You want, i could add that embedding in SW, but You should know better where
to do it. The pattern is the same as in 'case 
PRIMITIVE2D_ID_GRAPHICPRIMITIVE2D'.

HTH!

---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to