| Index: core/fxge/include/fx_dib.h
|
| diff --git a/core/fxge/include/fx_dib.h b/core/fxge/include/fx_dib.h
|
| index 4a9b29533afaab1dc657445beb58d6bec8290cb0..6c281fd5ba499c894d767cdc4ffe66eb58f4fc64 100644
|
| --- a/core/fxge/include/fx_dib.h
|
| +++ b/core/fxge/include/fx_dib.h
|
| @@ -7,6 +7,8 @@
|
| #ifndef CORE_FXGE_INCLUDE_FX_DIB_H_
|
| #define CORE_FXGE_INCLUDE_FX_DIB_H_
|
|
|
| +#include <memory>
|
| +
|
| #include "core/fxcrt/include/fx_basic.h"
|
| #include "core/fxcrt/include/fx_coordinates.h"
|
|
|
| @@ -574,37 +576,41 @@ class CFX_BitmapStorer : public IFX_ScanlineComposer {
|
|
|
| class CFX_ImageStretcher {
|
| public:
|
| - CFX_ImageStretcher();
|
| + CFX_ImageStretcher(IFX_ScanlineComposer* pDest,
|
| + const CFX_DIBSource* pSource,
|
| + int dest_width,
|
| + int dest_height,
|
| + const FX_RECT& bitmap_rect,
|
| + uint32_t flags);
|
| ~CFX_ImageStretcher();
|
|
|
| - FX_BOOL Start(IFX_ScanlineComposer* pDest,
|
| - const CFX_DIBSource* pBitmap,
|
| - int dest_width,
|
| - int dest_height,
|
| - const FX_RECT& bitmap_rect,
|
| - uint32_t flags);
|
| -
|
| + FX_BOOL Start();
|
| FX_BOOL Continue(IFX_Pause* pPause);
|
| +
|
| + const CFX_DIBSource* source() { return m_pSource; }
|
| +
|
| + private:
|
| FX_BOOL StartQuickStretch();
|
| FX_BOOL StartStretch();
|
| FX_BOOL ContinueQuickStretch(IFX_Pause* pPause);
|
| FX_BOOL ContinueStretch(IFX_Pause* pPause);
|
|
|
| - IFX_ScanlineComposer* m_pDest;
|
| - const CFX_DIBSource* m_pSource;
|
| - CStretchEngine* m_pStretchEngine;
|
| - uint32_t m_Flags;
|
| + IFX_ScanlineComposer* const m_pDest;
|
| + const CFX_DIBSource* const m_pSource;
|
| + std::unique_ptr<CStretchEngine> m_pStretchEngine;
|
| + uint8_t* m_pScanline;
|
| + uint8_t* m_pMaskScanline;
|
| + const uint32_t m_Flags;
|
| FX_BOOL m_bFlipX;
|
| FX_BOOL m_bFlipY;
|
| int m_DestWidth;
|
| int m_DestHeight;
|
| FX_RECT m_ClipRect;
|
| + const FXDIB_Format m_DestFormat;
|
| + const int m_DestBPP;
|
| int m_LineIndex;
|
| - int m_DestBPP;
|
| - uint8_t* m_pScanline;
|
| - uint8_t* m_pMaskScanline;
|
| - FXDIB_Format m_DestFormat;
|
| };
|
| +
|
| class CFX_ImageTransformer {
|
| public:
|
| CFX_ImageTransformer();
|
| @@ -624,11 +630,12 @@ class CFX_ImageTransformer {
|
| int m_ResultWidth;
|
| int m_ResultHeight;
|
| CFX_Matrix m_dest2stretch;
|
| - CFX_ImageStretcher m_Stretcher;
|
| + std::unique_ptr<CFX_ImageStretcher> m_Stretcher;
|
| CFX_BitmapStorer m_Storer;
|
| uint32_t m_Flags;
|
| int m_Status;
|
| };
|
| +
|
| class CFX_ImageRenderer {
|
| public:
|
| CFX_ImageRenderer();
|
| @@ -655,7 +662,7 @@ class CFX_ImageRenderer {
|
| uint32_t m_MaskColor;
|
| CFX_Matrix m_Matrix;
|
| CFX_ImageTransformer* m_pTransformer;
|
| - CFX_ImageStretcher m_Stretcher;
|
| + std::unique_ptr<CFX_ImageStretcher> m_Stretcher;
|
| CFX_BitmapComposer m_Composer;
|
| int m_Status;
|
| FX_RECT m_ClipBox;
|
|
|