From dd2a629f9ede484e0e570ce09d1e9d8906aa11be Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Fri, 20 Apr 2018 19:14:53 +0000 Subject: Add CPDF_PatternCS::GetPatternRGB(const PatternValue& value). Currently, one gets data from CPDF_PatternCS via its parent class's GetRGB(const float* pBuf) method. To squeeze through this interface, the caller has to pass in a float*, and CPDF_PatternCS::GetRGB() has to cast it to PatternValue*. Instead of doing casting, add a specialized GetPatternRGB() method to CPDF_PatternCS. In its parent class, CPDF_ColorSpace, add AsPatternCS() so callers can get a CPDF_PatternCS* from a CPDF_ColorSpace*. Change existing callers to use these new methods. Change-Id: Id476c9ece7ce8d3499a718acc682bc25036a5407 Reviewed-on: https://pdfium-review.googlesource.com/31030 Reviewed-by: Henrique Nakashima Commit-Queue: Lei Zhang --- core/fpdfapi/page/cpdf_colorspace.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'core/fpdfapi/page/cpdf_colorspace.h') diff --git a/core/fpdfapi/page/cpdf_colorspace.h b/core/fpdfapi/page/cpdf_colorspace.h index b9879d135c..71722224aa 100644 --- a/core/fpdfapi/page/cpdf_colorspace.h +++ b/core/fpdfapi/page/cpdf_colorspace.h @@ -30,6 +30,7 @@ class CPDF_Array; class CPDF_Document; class CPDF_Object; +class CPDF_PatternCS; constexpr size_t kMaxPatternColorComps = 16; @@ -84,6 +85,18 @@ class CPDF_ColorSpace { bool bTransMask) const; virtual void EnableStdConversion(bool bEnabled); + // Only call these 3 methods below if GetFamily() returns |PDFCS_PATTERN|. + + // Returns |this| as a CPDF_PatternCS* if |this| is a pattern. + virtual CPDF_PatternCS* AsPatternCS(); + virtual const CPDF_PatternCS* AsPatternCS() const; + + // Use instead of GetRGB() for patterns. + virtual bool GetPatternRGB(const PatternValue& value, + float* R, + float* G, + float* B) const; + CPDF_Array* GetArray() const { return m_pArray.Get(); } CPDF_Document* GetDocument() const { return m_pDocument.Get(); } -- cgit v1.2.3