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]
