vclprocessor2d.cxx (2af35ee2) vclprocessor2d.cxx (6de8cae6)
1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance

--- 402 unchanged lines hidden (view full) ---

411
412 bPainted = true;
413 }
414 }
415
416 if(!bPainted)
417 {
418 static bool bForceUseOfOwnTransformer(false);
1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance

--- 402 unchanged lines hidden (view full) ---

411
412 bPainted = true;
413 }
414 }
415
416 if(!bPainted)
417 {
418 static bool bForceUseOfOwnTransformer(false);
419 static bool bUseGraphicManager(true);
420
421 // decompose matrix to check for shear, rotate and mirroring
422 basegfx::B2DVector aScale, aTranslate;
423 double fRotate, fShearX;
424 aLocalTransform.decompose(aScale, aTranslate, fRotate, fShearX);
425
426 // #121387# when mirrored and rotated, avoid the GraphicManager output which has low quality
427 const bool bRotated(!basegfx::fTools::equalZero(fRotate));
428 const bool bSheared(!basegfx::fTools::equalZero(fShearX));
419
420 // decompose matrix to check for shear, rotate and mirroring
421 basegfx::B2DVector aScale, aTranslate;
422 double fRotate, fShearX;
423 aLocalTransform.decompose(aScale, aTranslate, fRotate, fShearX);
424
425 // #121387# when mirrored and rotated, avoid the GraphicManager output which has low quality
426 const bool bRotated(!basegfx::fTools::equalZero(fRotate));
427 const bool bSheared(!basegfx::fTools::equalZero(fShearX));
429 const bool bMirrored(aScale.getX() < 0.0 || aScale.getY() < 0.0);
430 const bool bMirroredAndRotated(bRotated && bMirrored);
428 //const bool bMirrored(aScale.getX() < 0.0 || aScale.getY() < 0.0);
429 // const bool bMirroredAndRotated(bRotated && bMirrored);
431
430
432 if(!bForceUseOfOwnTransformer && !bSheared && !bMirroredAndRotated)
431 if(!bForceUseOfOwnTransformer && !bRotated && !bSheared) // && !bMirrored)
433 {
432 {
434 if(!bUseGraphicManager && !bRotated)
435 {
436 RenderBitmapPrimitive2D_BitmapEx(*mpOutputDevice, aBitmapEx, aLocalTransform);
437 }
438 else
439 {
440 RenderBitmapPrimitive2D_GraphicManager(*mpOutputDevice, aBitmapEx, aLocalTransform);
441 }
433 RenderBitmapPrimitive2D_BitmapEx(*mpOutputDevice, aBitmapEx, aLocalTransform);
442 }
443 else
444 {
445 if(!aBitmapEx.IsTransparent() && (bSheared || bRotated))
446 {
447 // parts will be uncovered, extend aBitmapEx with a mask bitmap
448 const Bitmap aContent(aBitmapEx.GetBitmap());
449 aBitmapEx = BitmapEx(aContent, Bitmap(aContent.GetSizePixel(), 1));

--- 1176 unchanged lines hidden ---
434 }
435 else
436 {
437 if(!aBitmapEx.IsTransparent() && (bSheared || bRotated))
438 {
439 // parts will be uncovered, extend aBitmapEx with a mask bitmap
440 const Bitmap aContent(aBitmapEx.GetBitmap());
441 aBitmapEx = BitmapEx(aContent, Bitmap(aContent.GetSizePixel(), 1));

--- 1176 unchanged lines hidden ---