7#ifndef CORE_FPDFAPI_PAGE_CPDF_MESHSTREAM_H_
8#define CORE_FPDFAPI_PAGE_CPDF_MESHSTREAM_H_
16#include "core/fpdfapi/page/cpdf_shadingpattern.h"
17#include "core/fxcrt/retain_ptr.h"
18#include "core/fxge/dib/fx_dib.h"
41 const std::vector<std::unique_ptr<CPDF_Function>>& funcs,
42 RetainPtr<
const CPDF_Stream> pShadingStream,
69 static constexpr uint32_t kMaxComponents = 8;
72 const std::vector<std::unique_ptr<CPDF_Function>>& m_funcs;
73 RetainPtr<
const CPDF_Stream>
const m_pShadingStream;
75 uint32_t m_nCoordBits = 0;
76 uint32_t m_nComponentBits = 0;
77 uint32_t m_nFlagBits = 0;
78 uint32_t m_nComponents = 0;
79 uint32_t m_CoordMax = 0;
80 uint32_t m_ComponentMax = 0;
86 std::unique_ptr<CFX_BitStream> m_BitStream;
87 std::array<
float, kMaxComponents> m_ColorMin = {};
88 std::array<
float, kMaxComponents> m_ColorMax = {};
std::vector< RetainPtr< CPDF_Object > >::const_iterator const_iterator
std::map< ByteString, RetainPtr< CPDF_Object >, std::less<> > DictMap
CFX_PointF ReadCoords() const
uint32_t ComponentBits() const
uint32_t ReadFlag() const
uint32_t Components() const
bool CanReadCoords() const
bool ReadVertex(const CFX_Matrix &pObject2Bitmap, CPDF_MeshVertex *vertex, uint32_t *flag)
void SkipBits(uint32_t nbits)
FX_RGB_STRUCT< float > ReadColor() const
bool CanReadColor() const
CPDF_MeshStream(ShadingType type, const std::vector< std::unique_ptr< CPDF_Function > > &funcs, RetainPtr< const CPDF_Stream > pShadingStream, RetainPtr< CPDF_ColorSpace > pCS)
std::vector< CPDF_MeshVertex > ReadVertexRow(const CFX_Matrix &pObject2Bitmap, int count)
FX_RGB_STRUCT< float > rgb
CPDF_MeshVertex(const CPDF_MeshVertex &)
@ kTensorProductPatchMeshShading
@ kLatticeFormGouraudTriangleMeshShading
@ kFreeFormGouraudTriangleMeshShading
CFX_PTemplate< float > CFX_PointF