summaryrefslogtreecommitdiff
path: root/core/fpdfapi/page/cpdf_color.h
blob: cb7352806e3cb600509cae404b41e81e62771c62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Copyright 2016 PDFium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com

#ifndef CORE_FPDFAPI_PAGE_CPDF_COLOR_H_
#define CORE_FPDFAPI_PAGE_CPDF_COLOR_H_

#include "core/fpdfapi/page/cpdf_colorspace.h"
#include "core/fxcrt/fx_system.h"

class CPDF_Pattern;

class CPDF_Color {
 public:
  CPDF_Color();
  ~CPDF_Color();

  bool IsNull() const { return !m_pBuffer; }
  bool IsPattern() const;

  void Copy(const CPDF_Color* pSrc);

  void SetColorSpace(CPDF_ColorSpace* pCS);
  void SetValue(float* comp);
  void SetValue(CPDF_Pattern* pPattern, float* comp, uint32_t ncomps);

  bool GetRGB(int* R, int* G, int* B) const;
  CPDF_Pattern* GetPattern() const;
  const CPDF_ColorSpace* GetColorSpace() const { return m_pCS; }

 protected:
  void ReleaseBuffer();
  void ReleaseColorSpace();

  CPDF_ColorSpace* m_pCS;
  float* m_pBuffer;
};

#endif  // CORE_FPDFAPI_PAGE_CPDF_COLOR_H_