| // Copyright 2015 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_FXCODEC_JBIG2_JBIG2_GRRDPROC_H_ |
| #define CORE_FXCODEC_JBIG2_JBIG2_GRRDPROC_H_ |
| |
| #include <memory> |
| |
| #include "core/fxcrt/fx_system.h" |
| |
| class CJBig2_ArithDecoder; |
| class CJBig2_Image; |
| struct JBig2ArithCtx; |
| |
| class CJBig2_GRRDProc { |
| public: |
| std::unique_ptr<CJBig2_Image> decode(CJBig2_ArithDecoder* pArithDecoder, |
| JBig2ArithCtx* grContext); |
| |
| uint32_t GRW; |
| uint32_t GRH; |
| bool GRTEMPLATE; |
| CJBig2_Image* GRREFERENCE; |
| int32_t GRREFERENCEDX; |
| int32_t GRREFERENCEDY; |
| bool TPGRON; |
| int8_t GRAT[4]; |
| |
| private: |
| std::unique_ptr<CJBig2_Image> decode_Template0_unopt( |
| CJBig2_ArithDecoder* pArithDecoder, |
| JBig2ArithCtx* grContext); |
| uint32_t decode_Template0_unopt_CalculateContext(const CJBig2_Image& GRREG, |
| const uint32_t* lines, |
| uint32_t w, |
| uint32_t h) const; |
| void decode_Template0_unopt_SetPixel(CJBig2_Image* GRREG, |
| uint32_t* lines, |
| uint32_t w, |
| uint32_t h, |
| int bVal); |
| |
| std::unique_ptr<CJBig2_Image> decode_Template0_opt( |
| CJBig2_ArithDecoder* pArithDecoder, |
| JBig2ArithCtx* grContext); |
| |
| std::unique_ptr<CJBig2_Image> decode_Template1_unopt( |
| CJBig2_ArithDecoder* pArithDecoder, |
| JBig2ArithCtx* grContext); |
| |
| std::unique_ptr<CJBig2_Image> decode_Template1_opt( |
| CJBig2_ArithDecoder* pArithDecoder, |
| JBig2ArithCtx* grContext); |
| }; |
| |
| #endif // CORE_FXCODEC_JBIG2_JBIG2_GRRDPROC_H_ |