OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "core/src/fpdfapi/fpdf_render/render_int.h" | 7 #include "core/fpdfapi/fpdf_render/render_int.h" |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <memory> | 10 #include <memory> |
11 #include <vector> | 11 #include <vector> |
12 | 12 |
| 13 #include "core/fpdfapi/fpdf_page/pageint.h" |
13 #include "core/include/fpdfapi/cpdf_array.h" | 14 #include "core/include/fpdfapi/cpdf_array.h" |
14 #include "core/include/fpdfapi/cpdf_dictionary.h" | 15 #include "core/include/fpdfapi/cpdf_dictionary.h" |
15 #include "core/include/fpdfapi/cpdf_document.h" | 16 #include "core/include/fpdfapi/cpdf_document.h" |
16 #include "core/include/fpdfapi/fpdf_module.h" | 17 #include "core/include/fpdfapi/fpdf_module.h" |
17 #include "core/include/fpdfapi/fpdf_pageobj.h" | 18 #include "core/include/fpdfapi/fpdf_pageobj.h" |
18 #include "core/include/fpdfapi/fpdf_render.h" | 19 #include "core/include/fpdfapi/fpdf_render.h" |
19 #include "core/include/fxcodec/fx_codec.h" | 20 #include "core/include/fxcodec/fx_codec.h" |
20 #include "core/include/fxcrt/fx_safe_types.h" | 21 #include "core/include/fxcrt/fx_safe_types.h" |
21 #include "core/include/fxge/fx_ge.h" | 22 #include "core/include/fxge/fx_ge.h" |
22 #include "core/src/fpdfapi/fpdf_page/pageint.h" | |
23 | 23 |
24 namespace { | 24 namespace { |
25 | 25 |
26 unsigned int GetBits8(const uint8_t* pData, uint64_t bitpos, size_t nbits) { | 26 unsigned int GetBits8(const uint8_t* pData, uint64_t bitpos, size_t nbits) { |
27 ASSERT(nbits == 1 || nbits == 2 || nbits == 4 || nbits == 8 || nbits == 16); | 27 ASSERT(nbits == 1 || nbits == 2 || nbits == 4 || nbits == 8 || nbits == 16); |
28 ASSERT((bitpos & (nbits - 1)) == 0); | 28 ASSERT((bitpos & (nbits - 1)) == 0); |
29 unsigned int byte = pData[bitpos / 8]; | 29 unsigned int byte = pData[bitpos / 8]; |
30 if (nbits == 8) { | 30 if (nbits == 8) { |
31 return byte; | 31 return byte; |
32 } else if (nbits == 16) { | 32 } else if (nbits == 16) { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 value = std::max<T>(0, value); | 64 value = std::max<T>(0, value); |
65 return value; | 65 return value; |
66 } | 66 } |
67 | 67 |
68 // Wrapper class to use with std::unique_ptr for CJPX_Decoder. | 68 // Wrapper class to use with std::unique_ptr for CJPX_Decoder. |
69 class JpxBitMapContext { | 69 class JpxBitMapContext { |
70 public: | 70 public: |
71 explicit JpxBitMapContext(ICodec_JpxModule* jpx_module) | 71 explicit JpxBitMapContext(ICodec_JpxModule* jpx_module) |
72 : jpx_module_(jpx_module), decoder_(nullptr) {} | 72 : jpx_module_(jpx_module), decoder_(nullptr) {} |
73 | 73 |
74 ~JpxBitMapContext() { | 74 ~JpxBitMapContext() { jpx_module_->DestroyDecoder(decoder_); } |
75 jpx_module_->DestroyDecoder(decoder_); | |
76 } | |
77 | 75 |
78 // Takes ownership of |decoder|. | 76 // Takes ownership of |decoder|. |
79 void set_decoder(CJPX_Decoder* decoder) { decoder_ = decoder; } | 77 void set_decoder(CJPX_Decoder* decoder) { decoder_ = decoder; } |
80 | 78 |
81 CJPX_Decoder* decoder() { return decoder_; } | 79 CJPX_Decoder* decoder() { return decoder_; } |
82 | 80 |
83 private: | 81 private: |
84 ICodec_JpxModule* const jpx_module_; // Weak pointer. | 82 ICodec_JpxModule* const jpx_module_; // Weak pointer. |
85 CJPX_Decoder* decoder_; // Decoder, owned. | 83 CJPX_Decoder* decoder_; // Decoder, owned. |
86 | 84 |
(...skipping 1560 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1647 IFX_Pause* pPause) { | 1645 IFX_Pause* pPause) { |
1648 return LoadHandle->Continue(pPause); | 1646 return LoadHandle->Continue(pPause); |
1649 } | 1647 } |
1650 | 1648 |
1651 CPDF_ImageLoader::~CPDF_ImageLoader() { | 1649 CPDF_ImageLoader::~CPDF_ImageLoader() { |
1652 if (!m_bCached) { | 1650 if (!m_bCached) { |
1653 delete m_pBitmap; | 1651 delete m_pBitmap; |
1654 delete m_pMask; | 1652 delete m_pMask; |
1655 } | 1653 } |
1656 } | 1654 } |
OLD | NEW |