From 41872fa5ac7448a50f66ad56d7bde8d1aa77db4b Mon Sep 17 00:00:00 2001 From: dsinclair Date: Tue, 4 Oct 2016 11:29:35 -0700 Subject: Move core/fpdfapi/fpdf_page to core/fpdfapi/page BUG=pdfium:603 Review-Url: https://codereview.chromium.org/2386423004 --- core/fpdfapi/page/cpdf_meshstream.h | 76 +++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 core/fpdfapi/page/cpdf_meshstream.h (limited to 'core/fpdfapi/page/cpdf_meshstream.h') diff --git a/core/fpdfapi/page/cpdf_meshstream.h b/core/fpdfapi/page/cpdf_meshstream.h new file mode 100644 index 0000000000..a2ac9ae868 --- /dev/null +++ b/core/fpdfapi/page/cpdf_meshstream.h @@ -0,0 +1,76 @@ +// 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_MESHSTREAM_H_ +#define CORE_FPDFAPI_PAGE_CPDF_MESHSTREAM_H_ + +#include +#include + +#include "core/fpdfapi/fpdf_parser/cpdf_stream_acc.h" +#include "core/fpdfapi/page/cpdf_shadingpattern.h" +#include "core/fxcrt/fx_basic.h" +#include "core/fxcrt/fx_system.h" + +struct CPDF_MeshVertex { + FX_FLOAT x; + FX_FLOAT y; + FX_FLOAT r; + FX_FLOAT g; + FX_FLOAT b; +}; + +class CFX_Matrix; +class CPDF_ColorSpace; +class CPDF_Function; +class CPDF_Stream; + +class CPDF_MeshStream { + public: + CPDF_MeshStream(ShadingType type, + const std::vector>& funcs, + CPDF_Stream* pShadingStream, + CPDF_ColorSpace* pCS); + + bool Load(); + + uint32_t GetFlag(); + void GetCoords(FX_FLOAT& x, FX_FLOAT& y); + void GetColor(FX_FLOAT& r, FX_FLOAT& g, FX_FLOAT& b); + + uint32_t GetVertex(CPDF_MeshVertex& vertex, CFX_Matrix* pObject2Bitmap); + FX_BOOL GetVertexRow(CPDF_MeshVertex* vertex, + int count, + CFX_Matrix* pObject2Bitmap); + + CFX_BitStream* BitStream() { return &m_BitStream; } + uint32_t ComponentBits() const { return m_nComponentBits; } + uint32_t Components() const { return m_nComponents; } + + private: + static const uint32_t kMaxComponents = 8; + + const ShadingType m_type; + const std::vector>& m_funcs; + CPDF_Stream* const m_pShadingStream; + CPDF_ColorSpace* const m_pCS; + uint32_t m_nCoordBits; + uint32_t m_nComponentBits; + uint32_t m_nFlagBits; + uint32_t m_nComponents; + uint32_t m_CoordMax; + uint32_t m_ComponentMax; + FX_FLOAT m_xmin; + FX_FLOAT m_xmax; + FX_FLOAT m_ymin; + FX_FLOAT m_ymax; + FX_FLOAT m_ColorMin[kMaxComponents]; + FX_FLOAT m_ColorMax[kMaxComponents]; + CPDF_StreamAcc m_Stream; + CFX_BitStream m_BitStream; +}; + +#endif // CORE_FPDFAPI_PAGE_CPDF_MESHSTREAM_H_ -- cgit v1.2.3