OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "core/fxge/dib/dib_int.h" | 7 #include "core/fxge/dib/dib_int.h" |
8 | 8 |
9 #include "core/fxge/include/fx_dib.h" | 9 #include "core/fxge/include/fx_dib.h" |
10 | 10 |
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
386 int stretch_height = (int)FXSYS_ceil(FXSYS_sqrt2(m_pMatrix->c, m_pMatrix->d)); | 386 int stretch_height = (int)FXSYS_ceil(FXSYS_sqrt2(m_pMatrix->c, m_pMatrix->d)); |
387 CFX_Matrix stretch2dest(1.0f, 0.0f, 0.0f, -1.0f, 0.0f, | 387 CFX_Matrix stretch2dest(1.0f, 0.0f, 0.0f, -1.0f, 0.0f, |
388 (FX_FLOAT)(stretch_height)); | 388 (FX_FLOAT)(stretch_height)); |
389 stretch2dest.Concat( | 389 stretch2dest.Concat( |
390 m_pMatrix->a / stretch_width, m_pMatrix->b / stretch_width, | 390 m_pMatrix->a / stretch_width, m_pMatrix->b / stretch_width, |
391 m_pMatrix->c / stretch_height, m_pMatrix->d / stretch_height, | 391 m_pMatrix->c / stretch_height, m_pMatrix->d / stretch_height, |
392 m_pMatrix->e, m_pMatrix->f); | 392 m_pMatrix->e, m_pMatrix->f); |
393 m_dest2stretch.SetReverse(stretch2dest); | 393 m_dest2stretch.SetReverse(stretch2dest); |
394 CFX_FloatRect clip_rect_f(result_clip); | 394 CFX_FloatRect clip_rect_f(result_clip); |
395 clip_rect_f.Transform(&m_dest2stretch); | 395 clip_rect_f.Transform(&m_dest2stretch); |
396 m_StretchClip = clip_rect_f.GetOutterRect(); | 396 m_StretchClip = clip_rect_f.GetOuterRect(); |
397 m_StretchClip.Intersect(0, 0, stretch_width, stretch_height); | 397 m_StretchClip.Intersect(0, 0, stretch_width, stretch_height); |
398 m_Stretcher.reset(new CFX_ImageStretcher(&m_Storer, m_pSrc, stretch_width, | 398 m_Stretcher.reset(new CFX_ImageStretcher(&m_Storer, m_pSrc, stretch_width, |
399 stretch_height, m_StretchClip, | 399 stretch_height, m_StretchClip, |
400 m_Flags)); | 400 m_Flags)); |
401 m_Stretcher->Start(); | 401 m_Stretcher->Start(); |
402 m_Status = 3; | 402 m_Status = 3; |
403 return TRUE; | 403 return TRUE; |
404 } | 404 } |
405 | 405 |
406 FX_BOOL CFX_ImageTransformer::Continue(IFX_Pause* pPause) { | 406 FX_BOOL CFX_ImageTransformer::Continue(IFX_Pause* pPause) { |
(...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
946 } | 946 } |
947 } | 947 } |
948 } | 948 } |
949 m_Storer.Replace(std::move(pTransformed)); | 949 m_Storer.Replace(std::move(pTransformed)); |
950 return FALSE; | 950 return FALSE; |
951 } | 951 } |
952 | 952 |
953 std::unique_ptr<CFX_DIBitmap> CFX_ImageTransformer::DetachBitmap() { | 953 std::unique_ptr<CFX_DIBitmap> CFX_ImageTransformer::DetachBitmap() { |
954 return m_Storer.Detach(); | 954 return m_Storer.Detach(); |
955 } | 955 } |
OLD | NEW |