diff options
author | Tom Sepez <tsepez@chromium.org> | 2017-03-27 13:51:46 -0700 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-03-28 14:14:50 +0000 |
commit | 0004f29bf6ee3c6060a272c79f14993e92e053c7 (patch) | |
tree | b82385e4853a157e10148af8d95ebb6bae4fb4c7 /core/fxge/ifx_renderdevicedriver.h | |
parent | 369fe1f7f9f3a424ee3cf8f992c3128db27fa479 (diff) | |
download | pdfium-0004f29bf6ee3c6060a272c79f14993e92e053c7.tar.xz |
Refcount all CFX_DIBSources (and subclasses) all the time.
There are currently several ownership models for these objects,
including ad-hoc logic for sharing and deletion, and the
now-redundant CFX_DIBitmapRef externally-counted handle to the DIBs.
Replace them all with the internal refcount scheme.
Change-Id: I2db399dfc19219eda384f94cc989353b78ce2872
Reviewed-on: https://pdfium-review.googlesource.com/3166
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'core/fxge/ifx_renderdevicedriver.h')
-rw-r--r-- | core/fxge/ifx_renderdevicedriver.h | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/core/fxge/ifx_renderdevicedriver.h b/core/fxge/ifx_renderdevicedriver.h index 3dd4730f9b..87e38fa5f0 100644 --- a/core/fxge/ifx_renderdevicedriver.h +++ b/core/fxge/ifx_renderdevicedriver.h @@ -7,6 +7,7 @@ #ifndef CORE_FXGE_IFX_RENDERDEVICEDRIVER_H_ #define CORE_FXGE_IFX_RENDERDEVICEDRIVER_H_ +#include "core/fxcrt/cfx_retain_ptr.h" #include "core/fxcrt/fx_system.h" class CFX_DIBitmap; @@ -57,15 +58,17 @@ class IFX_RenderDeviceDriver { int blend_type); virtual bool GetClipBox(FX_RECT* pRect) = 0; - virtual bool GetDIBits(CFX_DIBitmap* pBitmap, int left, int top); - virtual CFX_DIBitmap* GetBackDrop(); - virtual bool SetDIBits(const CFX_DIBSource* pBitmap, + virtual bool GetDIBits(const CFX_RetainPtr<CFX_DIBitmap>& pBitmap, + int left, + int top); + virtual CFX_RetainPtr<CFX_DIBitmap> GetBackDrop(); + virtual bool SetDIBits(const CFX_RetainPtr<CFX_DIBSource>& pBitmap, uint32_t color, const FX_RECT* pSrcRect, int dest_left, int dest_top, int blend_type) = 0; - virtual bool StretchDIBits(const CFX_DIBSource* pBitmap, + virtual bool StretchDIBits(const CFX_RetainPtr<CFX_DIBSource>& pBitmap, uint32_t color, int dest_left, int dest_top, @@ -74,7 +77,7 @@ class IFX_RenderDeviceDriver { const FX_RECT* pClipRect, uint32_t flags, int blend_type) = 0; - virtual bool StartDIBits(const CFX_DIBSource* pBitmap, + virtual bool StartDIBits(const CFX_RetainPtr<CFX_DIBSource>& pBitmap, int bitmap_alpha, uint32_t color, const CFX_Matrix* pMatrix, @@ -97,8 +100,8 @@ class IFX_RenderDeviceDriver { const FX_RECT& clip_rect, int alpha, bool bAlphaMode); - virtual bool SetBitsWithMask(const CFX_DIBSource* pBitmap, - const CFX_DIBSource* pMask, + virtual bool SetBitsWithMask(const CFX_RetainPtr<CFX_DIBSource>& pBitmap, + const CFX_RetainPtr<CFX_DIBSource>& pMask, int left, int top, int bitmap_alpha, |