From c38cd6eb274429a5755e04d2e22a606375851717 Mon Sep 17 00:00:00 2001 From: weili Date: Thu, 21 Jul 2016 14:44:17 -0700 Subject: Use smart pointers for graphics device classes Use unique_ptr for class owned member variables. Also clean up some style issues such as removing unused functions and casting to raw pointer. BUG=pdfium:518 Review-Url: https://codereview.chromium.org/2163103002 --- core/fxge/include/fx_dib.h | 16 ++++++++-------- core/fxge/include/fx_ge.h | 10 ++++++---- 2 files changed, 14 insertions(+), 12 deletions(-) (limited to 'core/fxge/include') diff --git a/core/fxge/include/fx_dib.h b/core/fxge/include/fx_dib.h index c2ca859585..540996cfc1 100644 --- a/core/fxge/include/fx_dib.h +++ b/core/fxge/include/fx_dib.h @@ -8,6 +8,7 @@ #define CORE_FXGE_INCLUDE_FX_DIB_H_ #include +#include #include "core/fxcrt/include/fx_basic.h" #include "core/fxcrt/include/fx_coordinates.h" @@ -381,10 +382,10 @@ class CFX_DIBExtractor { explicit CFX_DIBExtractor(const CFX_DIBSource* pSrc); ~CFX_DIBExtractor(); - operator CFX_DIBitmap*() { return m_pBitmap; } + CFX_DIBitmap* GetBitmap() { return m_pBitmap.get(); } private: - CFX_DIBitmap* m_pBitmap; + std::unique_ptr m_pBitmap; }; typedef CFX_CountRef CFX_DIBitmapRef; @@ -399,8 +400,8 @@ class CFX_FilteredDIB : public CFX_DIBSource { virtual uint32_t* GetDestPalette() = 0; - virtual void TranslateScanline(uint8_t* dest_buf, - const uint8_t* src_buf) const = 0; + virtual void TranslateScanline(const uint8_t* src_buf, + std::vector* dest_buf) const = 0; virtual void TranslateDownSamples(uint8_t* dest_buf, const uint8_t* src_buf, @@ -419,10 +420,8 @@ class CFX_FilteredDIB : public CFX_DIBSource { int clip_width) const override; const CFX_DIBSource* m_pSrc; - FX_BOOL m_bAutoDropSrc; - - uint8_t* m_pScanline; + mutable std::vector m_Scanline; }; class IFX_ScanlineComposer { @@ -438,6 +437,7 @@ class IFX_ScanlineComposer { FXDIB_Format src_format, uint32_t* pSrcPalette) = 0; }; + class CFX_ScanlineCompositor { public: CFX_ScanlineCompositor(); @@ -663,7 +663,7 @@ class CFX_ImageRenderer { int m_BitmapAlpha; uint32_t m_MaskColor; CFX_Matrix m_Matrix; - CFX_ImageTransformer* m_pTransformer; + std::unique_ptr m_pTransformer; std::unique_ptr m_Stretcher; CFX_BitmapComposer m_Composer; int m_Status; diff --git a/core/fxge/include/fx_ge.h b/core/fxge/include/fx_ge.h index dbc4fd0a43..aceaa76a94 100644 --- a/core/fxge/include/fx_ge.h +++ b/core/fxge/include/fx_ge.h @@ -214,9 +214,11 @@ class CFX_RenderDevice { CFX_RenderDevice(); virtual ~CFX_RenderDevice(); - void Flush(); - void SetDeviceDriver(IFX_RenderDeviceDriver* pDriver); - IFX_RenderDeviceDriver* GetDeviceDriver() const { return m_pDeviceDriver; } + // Take ownership of |pDriver|. + void SetDeviceDriver(std::unique_ptr pDriver); + IFX_RenderDeviceDriver* GetDeviceDriver() const { + return m_pDeviceDriver.get(); + } FX_BOOL StartRendering(); void EndRendering(); @@ -400,7 +402,7 @@ class CFX_RenderDevice { int m_RenderCaps; int m_DeviceClass; FX_RECT m_ClipBox; - IFX_RenderDeviceDriver* m_pDeviceDriver; + std::unique_ptr m_pDeviceDriver; }; class CFX_FxgeDevice : public CFX_RenderDevice { -- cgit v1.2.3