Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(290)

Side by Side Diff: core/include/fxcodec/fx_codec.h

Issue 1265503005: clang-format all pdfium code. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: sigh Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #ifndef CORE_INCLUDE_FXCODEC_FX_CODEC_H_ 7 #ifndef CORE_INCLUDE_FXCODEC_FX_CODEC_H_
8 #define CORE_INCLUDE_FXCODEC_FX_CODEC_H_ 8 #define CORE_INCLUDE_FXCODEC_FX_CODEC_H_
9 9
10 #include "../../../third_party/base/nonstd_unique_ptr.h" 10 #include "../../../third_party/base/nonstd_unique_ptr.h"
11 #include "../fxcrt/fx_basic.h" 11 #include "../fxcrt/fx_basic.h"
12 #include "fx_codec_def.h" 12 #include "fx_codec_def.h"
13 #include "fx_codec_provider.h" 13 #include "fx_codec_provider.h"
14 14
15 class CFX_DIBSource; 15 class CFX_DIBSource;
16 class ICodec_ScanlineDecoder; 16 class ICodec_ScanlineDecoder;
17 class ICodec_BasicModule; 17 class ICodec_BasicModule;
18 class ICodec_FaxModule; 18 class ICodec_FaxModule;
19 class ICodec_JpegModule; 19 class ICodec_JpegModule;
20 class ICodec_JpxModule; 20 class ICodec_JpxModule;
21 class ICodec_Jbig2Module; 21 class ICodec_Jbig2Module;
22 class ICodec_IccModule; 22 class ICodec_IccModule;
23 class ICodec_FlateModule; 23 class ICodec_FlateModule;
24 class ICodec_Jbig2Encoder; 24 class ICodec_Jbig2Encoder;
25 class ICodec_ScanlineDecoder; 25 class ICodec_ScanlineDecoder;
26 26
27 class CCodec_ModuleMgr 27 class CCodec_ModuleMgr {
28 { 28 public:
29 public: 29 CCodec_ModuleMgr();
30 CCodec_ModuleMgr(); 30 ICodec_Jbig2Encoder* CreateJbig2Encoder();
31 ICodec_Jbig2Encoder* CreateJbig2Encoder(); 31 ICodec_BasicModule* GetBasicModule() const { return m_pBasicModule.get(); }
32 ICodec_BasicModule* GetBasicModule() const { return m_pBasicModule.get(); } 32 ICodec_FaxModule* GetFaxModule() const { return m_pFaxModule.get(); }
33 ICodec_FaxModule* GetFaxModule() const { return m_pFaxModule.get(); } 33 ICodec_JpegModule* GetJpegModule() const { return m_pJpegModule.get(); }
34 ICodec_JpegModule* GetJpegModule() const { return m_pJpegModule.get(); } 34 ICodec_JpxModule* GetJpxModule() const { return m_pJpxModule.get(); }
35 ICodec_JpxModule* GetJpxModule() const { return m_pJpxModule.get(); } 35 ICodec_Jbig2Module* GetJbig2Module() const { return m_pJbig2Module.get(); }
36 ICodec_Jbig2Module* GetJbig2Module() const { return m_pJbig2Module.get(); } 36 ICodec_IccModule* GetIccModule() const { return m_pIccModule.get(); }
37 ICodec_IccModule* GetIccModule() const { return m_pIccModule.get(); } 37 ICodec_FlateModule* GetFlateModule() const { return m_pFlateModule.get(); }
38 ICodec_FlateModule* GetFlateModule() const { return m_pFlateModule.get(); } 38
39 39 protected:
40 protected: 40 nonstd::unique_ptr<ICodec_BasicModule> m_pBasicModule;
41 nonstd::unique_ptr<ICodec_BasicModule> m_pBasicModule; 41 nonstd::unique_ptr<ICodec_FaxModule> m_pFaxModule;
42 nonstd::unique_ptr<ICodec_FaxModule> m_pFaxModule; 42 nonstd::unique_ptr<ICodec_JpegModule> m_pJpegModule;
43 nonstd::unique_ptr<ICodec_JpegModule> m_pJpegModule; 43 nonstd::unique_ptr<ICodec_JpxModule> m_pJpxModule;
44 nonstd::unique_ptr<ICodec_JpxModule> m_pJpxModule; 44 nonstd::unique_ptr<ICodec_Jbig2Module> m_pJbig2Module;
45 nonstd::unique_ptr<ICodec_Jbig2Module> m_pJbig2Module; 45 nonstd::unique_ptr<ICodec_IccModule> m_pIccModule;
46 nonstd::unique_ptr<ICodec_IccModule> m_pIccModule; 46 nonstd::unique_ptr<ICodec_FlateModule> m_pFlateModule;
47 nonstd::unique_ptr<ICodec_FlateModule> m_pFlateModule; 47 };
48 }; 48 class ICodec_BasicModule {
49 class ICodec_BasicModule 49 public:
50 { 50 virtual ~ICodec_BasicModule() {}
51 public: 51 virtual FX_BOOL RunLengthEncode(const uint8_t* src_buf,
52 52 FX_DWORD src_size,
53 virtual ~ICodec_BasicModule() {} 53 uint8_t*& dest_buf,
54 virtual FX_BOOL» RunLengthEncode(const uint8_t* src_buf, FX_DWORD src_siz e, uint8_t*& dest_buf, 54 FX_DWORD& dest_size) = 0;
55 virtual FX_BOOL A85Encode(const uint8_t* src_buf,
56 FX_DWORD src_size,
57 uint8_t*& dest_buf,
58 FX_DWORD& dest_size) = 0;
59 virtual ICodec_ScanlineDecoder* CreateRunLengthDecoder(const uint8_t* src_buf,
60 FX_DWORD src_size,
61 int width,
62 int height,
63 int nComps,
64 int bpc) = 0;
65 };
66 class ICodec_ScanlineDecoder {
67 public:
68 virtual ~ICodec_ScanlineDecoder() {}
69
70 virtual FX_DWORD GetSrcOffset() = 0;
71
72 virtual void DownScale(int dest_width, int dest_height) = 0;
73
74 virtual uint8_t* GetScanline(int line) = 0;
75
76 virtual FX_BOOL SkipToScanline(int line, IFX_Pause* pPause) = 0;
77
78 virtual int GetWidth() = 0;
79
80 virtual int GetHeight() = 0;
81
82 virtual int CountComps() = 0;
83
84 virtual int GetBPC() = 0;
85
86 virtual FX_BOOL IsColorTransformed() = 0;
87
88 virtual void ClearImageData() = 0;
89 };
90 class ICodec_FlateModule {
91 public:
92 virtual ~ICodec_FlateModule() {}
93 virtual ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf,
94 FX_DWORD src_size,
95 int width,
96 int height,
97 int nComps,
98 int bpc,
99 int predictor,
100 int Colors,
101 int BitsPerComponent,
102 int Columns) = 0;
103 virtual FX_DWORD FlateOrLZWDecode(FX_BOOL bLZW,
104 const uint8_t* src_buf,
105 FX_DWORD src_size,
106 FX_BOOL bEarlyChange,
107 int predictor,
108 int Colors,
109 int BitsPerComponent,
110 int Columns,
111 FX_DWORD estimated_size,
112 uint8_t*& dest_buf,
55 FX_DWORD& dest_size) = 0; 113 FX_DWORD& dest_size) = 0;
56 virtual FX_BOOL A85Encode(const uint8_t* src_buf, FX_DWORD src_size, uin t8_t*& dest_buf, 114 virtual FX_BOOL Encode(const uint8_t* src_buf,
57 FX_DWORD& dest_size) = 0; 115 FX_DWORD src_size,
58 virtual ICodec_ScanlineDecoder* CreateRunLengthDecoder(const uint8_t* sr c_buf, FX_DWORD src_size, int width, int height, 116 int predictor,
59 int nComps, int bpc) = 0; 117 int Colors,
60 }; 118 int BitsPerComponent,
61 class ICodec_ScanlineDecoder 119 int Columns,
62 { 120 uint8_t*& dest_buf,
63 public: 121 FX_DWORD& dest_size) = 0;
64 122 virtual FX_BOOL Encode(const uint8_t* src_buf,
65 virtual ~ICodec_ScanlineDecoder() {} 123 FX_DWORD src_size,
66 124 uint8_t*& dest_buf,
67 virtual FX_DWORD GetSrcOffset() = 0; 125 FX_DWORD& dest_size) = 0;
68 126 };
69 virtual void DownScale(int dest_width, int dest_height) = 0; 127 class ICodec_FaxModule {
70 128 public:
71 virtual uint8_t* GetScanline(int line) = 0; 129 virtual ~ICodec_FaxModule() {}
72 130
73 virtual FX_BOOL SkipToScanline(int line, IFX_Pause* pPause) = 0; 131 virtual ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf,
74 132 FX_DWORD src_size,
75 virtual int GetWidth() = 0; 133 int width,
76 134 int height,
77 virtual int GetHeight() = 0; 135 int K,
78 136 FX_BOOL EndOfLine,
79 virtual int CountComps() = 0; 137 FX_BOOL EncodedByteAlign,
80 138 FX_BOOL BlackIs1,
81 virtual int GetBPC() = 0; 139 int Columns,
82 140 int Rows) = 0;
83 virtual FX_BOOL IsColorTransformed() = 0; 141
84 142 virtual FX_BOOL Encode(const uint8_t* src_buf,
85 virtual void ClearImageData() = 0; 143 int width,
86 }; 144 int height,
87 class ICodec_FlateModule 145 int pitch,
88 { 146 uint8_t*& dest_buf,
89 public: 147 FX_DWORD& dest_size) = 0;
90 148 };
91 virtual ~ICodec_FlateModule() {} 149 class ICodec_JpegModule {
92 virtual ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf, FX _DWORD src_size, int width, int height, 150 public:
93 int nComps, int bpc, int predictor, int Colors, int BitsPerComponent , int Columns) = 0; 151 virtual ~ICodec_JpegModule() {}
94 virtual FX_DWORD FlateOrLZWDecode(FX_BOOL bLZW, const uint8_t* src_buf, F X_DWORD src_size, FX_BOOL bEarlyChange, 152
95 int predictor, int Colors, int BitsPerC omponent, int Columns, 153 virtual void SetPovider(IFX_JpegProvider* pJP) = 0;
96 FX_DWORD estimated_size, uint8_t*& dest _buf, FX_DWORD& dest_size) = 0; 154
97 virtual FX_BOOL Encode(const uint8_t* src_buf, FX_DWORD src_size , 155 virtual ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf,
98 int predictor, int Colors, int BitsPerComponent, int Columns, 156 FX_DWORD src_size,
99 uint8_t*& dest_buf, FX_DWORD& dest_size) = 0; 157 int width,
100 virtual FX_BOOL Encode(const uint8_t* src_buf, FX_DWORD src_size , uint8_t*& dest_buf, FX_DWORD& dest_size) = 0; 158 int height,
101 }; 159 int nComps,
102 class ICodec_FaxModule 160 FX_BOOL ColorTransform) = 0;
103 { 161
104 public: 162 virtual FX_BOOL LoadInfo(const uint8_t* src_buf,
105 163 FX_DWORD src_size,
106 virtual ~ICodec_FaxModule() {} 164 int& width,
107 165 int& height,
108 virtual ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf, FX _DWORD src_size, int width, int height, 166 int& num_components,
109 int K, FX_BOOL EndOfLine, FX_BOOL EncodedByteAlign, FX_BOOL BlackIs1 , int Columns, int Rows) = 0; 167 int& bits_per_components,
110 168 FX_BOOL& color_transform,
111 169 uint8_t** icc_buf_ptr = NULL,
112 virtual FX_BOOL Encode(const uint8_t* src_buf, int width, int he ight, int pitch, 170 FX_DWORD* icc_length = NULL) = 0;
113 uint8_t*& dest_buf, FX_DWORD& dest_size) = 0; 171
114 }; 172 virtual FX_BOOL Encode(const class CFX_DIBSource* pSource,
115 class ICodec_JpegModule 173 uint8_t*& dest_buf,
116 { 174 FX_STRSIZE& dest_size,
117 public: 175 int quality = 75,
118 176 const uint8_t* icc_buf = NULL,
119 virtual ~ICodec_JpegModule() {} 177 FX_DWORD icc_length = 0) = 0;
120 178
121 virtual void SetPovider(IFX_JpegProvider* pJP) = 0; 179 virtual void* Start() = 0;
122 180
123 virtual ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf, FX _DWORD src_size, 181 virtual void Finish(void* pContext) = 0;
124 int width, int height, int nComps, FX_BOOL ColorTransform) = 0; 182
125 183 virtual void Input(void* pContext,
126 virtual FX_BOOL LoadInfo(const uint8_t* src_buf, FX_DWORD src_si ze, int& width, int& height, 184 const uint8_t* src_buf,
127 int& num_components, int& bits_per_components, FX_BOOL& color_transform, 185 FX_DWORD src_size) = 0;
128 uint8_t** icc_buf_ptr = NULL, FX_DWORD* icc_len gth = NULL) = 0; 186
129 187 virtual int ReadHeader(void* pContext,
130 virtual FX_BOOL Encode(const class CFX_DIBSource* pSource, uint8 _t*& dest_buf, FX_STRSIZE& dest_size, int quality = 75, 188 int* width,
131 const uint8_t* icc_buf = NULL, FX_DWORD icc_lengt h = 0) = 0; 189 int* height,
132 190 int* nComps) = 0;
133 virtual void* Start() = 0; 191
134 192 virtual int StartScanline(void* pContext, int down_scale) = 0;
135 virtual void Finish(void* pContext) = 0; 193
136 194 virtual FX_BOOL ReadScanline(void* pContext, uint8_t* dest_buf) = 0;
137 virtual void Input(void* pContext, const uint8_t* src_buf, FX _DWORD src_size) = 0; 195
138 196 virtual FX_DWORD GetAvailInput(void* pContext,
139 virtual int ReadHeader(void* pContext, int* width, int* heig ht, int* nComps) = 0; 197 uint8_t** avail_buf_ptr = NULL) = 0;
140 198 };
141 199 class ICodec_JpxModule {
142 virtual int StartScanline(void* pContext, int down_scale) = 0; 200 public:
143 201 virtual ~ICodec_JpxModule() {}
144 202
145 virtual FX_BOOL ReadScanline(void* pContext, uint8_t* dest_buf) = 0; 203 virtual void* CreateDecoder(const uint8_t* src_buf,
146 204 FX_DWORD src_size,
147 205 FX_BOOL useColorSpace = FALSE) = 0;
148 virtual FX_DWORD GetAvailInput(void* pContext, uint8_t** avail_buf_ptr = NULL) = 0; 206
149 }; 207 virtual void GetImageInfo(void* ctx,
150 class ICodec_JpxModule 208 FX_DWORD& width,
151 { 209 FX_DWORD& height,
152 public: 210 FX_DWORD& codestream_nComps,
153 211 FX_DWORD& output_nComps) = 0;
154 virtual ~ICodec_JpxModule() {} 212
155 213 virtual FX_BOOL Decode(void* ctx,
156 virtual void* CreateDecoder(const uint8_t* src_buf, FX_DWORD src_size, FX_BOOL useColorSpace = FALSE) = 0; 214 uint8_t* dest_data,
157 215 int pitch,
158 virtual void GetImageInfo(void* ctx, FX_DWORD& width, FX_DWOR D& height, 216 FX_BOOL bTranslateColor,
159 FX_DWORD& codestream_nComps, FX_DWORD& outp ut_nComps) = 0; 217 uint8_t* offsets) = 0;
160 218
161 virtual FX_BOOL Decode(void* ctx, uint8_t* dest_data, int pitch, 219 virtual void DestroyDecoder(void* ctx) = 0;
162 FX_BOOL bTranslateColor, uint8_t* offsets) = 0; 220 };
163 221 class ICodec_Jbig2Module {
164 virtual void DestroyDecoder(void* ctx) = 0; 222 public:
165 }; 223 virtual ~ICodec_Jbig2Module() {}
166 class ICodec_Jbig2Module 224
167 { 225 virtual FX_BOOL Decode(FX_DWORD width,
168 public: 226 FX_DWORD height,
169 227 const uint8_t* src_buf,
170 virtual ~ICodec_Jbig2Module() {} 228 FX_DWORD src_size,
171 229 const uint8_t* global_data,
172 virtual FX_BOOL Decode(FX_DWORD width, FX_DWORD height, const ui nt8_t* src_buf, FX_DWORD src_size, 230 FX_DWORD global_size,
173 const uint8_t* global_data, FX_DWORD global_size, uint8_t* dest_buf, FX_DWORD dest_pitch) = 0; 231 uint8_t* dest_buf,
174 232 FX_DWORD dest_pitch) = 0;
175 virtual FX_BOOL Decode(IFX_FileRead* file_ptr, FX_DWORD& width, FX_DWORD& height, 233
176 FX_DWORD& pitch, uint8_t*& dest_buf) = 0; 234 virtual FX_BOOL Decode(IFX_FileRead* file_ptr,
177 virtual void* CreateJbig2Context() = 0; 235 FX_DWORD& width,
178 236 FX_DWORD& height,
179 virtual FXCODEC_STATUS StartDecode(void* pJbig2Context, FX_DWOR D width, FX_DWORD height, const uint8_t* src_buf, FX_DWORD src_size, 237 FX_DWORD& pitch,
180 const uint8_t* global_data, FX_DWORD global_size, uint8_t* dest_buf, FX_DWORD dest_pitch, IFX_Pause* pPause) = 0; 238 uint8_t*& dest_buf) = 0;
181 239 virtual void* CreateJbig2Context() = 0;
182 virtual FXCODEC_STATUS StartDecode(void* pJbig2Context, IFX_Fil eRead* file_ptr, 240
183 FX_DWORD& width, FX_DWORD& height, F X_DWORD& pitch, uint8_t*& dest_buf, IFX_Pause* pPause) = 0; 241 virtual FXCODEC_STATUS StartDecode(void* pJbig2Context,
184 virtual FXCODEC_STATUS ContinueDecode(void* pJbig2Content, IFX_ Pause* pPause) = 0; 242 FX_DWORD width,
185 virtual void DestroyJbig2Context(void* pJbig2 Content) = 0; 243 FX_DWORD height,
186 }; 244 const uint8_t* src_buf,
187 class ICodec_Jbig2Encoder 245 FX_DWORD src_size,
188 { 246 const uint8_t* global_data,
189 public: 247 FX_DWORD global_size,
190 248 uint8_t* dest_buf,
191 virtual ~ICodec_Jbig2Encoder() {} 249 FX_DWORD dest_pitch,
192 }; 250 IFX_Pause* pPause) = 0;
193 class ICodec_IccModule 251
194 { 252 virtual FXCODEC_STATUS StartDecode(void* pJbig2Context,
195 public: 253 IFX_FileRead* file_ptr,
196 typedef enum { 254 FX_DWORD& width,
197 IccCS_Unknown = 0, 255 FX_DWORD& height,
198 IccCS_XYZ, 256 FX_DWORD& pitch,
199 IccCS_Lab, 257 uint8_t*& dest_buf,
200 IccCS_Luv, 258 IFX_Pause* pPause) = 0;
201 IccCS_YCbCr, 259 virtual FXCODEC_STATUS ContinueDecode(void* pJbig2Content,
202 IccCS_Yxy, 260 IFX_Pause* pPause) = 0;
203 IccCS_Hsv, 261 virtual void DestroyJbig2Context(void* pJbig2Content) = 0;
204 IccCS_Hls, 262 };
205 IccCS_Gray, 263 class ICodec_Jbig2Encoder {
206 IccCS_Rgb, 264 public:
207 IccCS_Cmyk, 265 virtual ~ICodec_Jbig2Encoder() {}
208 IccCS_Cmy 266 };
209 } IccCS; 267 class ICodec_IccModule {
210 typedef struct _IccParam { 268 public:
211 FX_DWORD Version; 269 typedef enum {
212 IccCS ColorSpace; 270 IccCS_Unknown = 0,
213 FX_DWORD dwProfileType; 271 IccCS_XYZ,
214 FX_DWORD dwFormat; 272 IccCS_Lab,
215 uint8_t* pProfileData; 273 IccCS_Luv,
216 FX_DWORD dwProfileSize; 274 IccCS_YCbCr,
217 double Gamma; 275 IccCS_Yxy,
218 } IccParam; 276 IccCS_Hsv,
219 277 IccCS_Hls,
220 virtual ~ICodec_IccModule() {} 278 IccCS_Gray,
221 279 IccCS_Rgb,
222 virtual IccCS GetProfileCS(const uint8_t* pProfileData , unsigned int dwProfileSize) = 0; 280 IccCS_Cmyk,
223 281 IccCS_Cmy
224 virtual IccCS GetProfileCS(IFX_FileRead* pFile) = 0; 282 } IccCS;
225 283 typedef struct _IccParam {
226 virtual void* CreateTransform(ICodec_IccModule::IccParam* pInputParam, 284 FX_DWORD Version;
227 ICodec_IccModule::IccParam* pOutputParam , 285 IccCS ColorSpace;
228 ICodec_IccModule::IccParam* pProofParam = NULL, 286 FX_DWORD dwProfileType;
229 FX_DWORD dwIntent = Icc_INTENT_PERCEPTUA L, 287 FX_DWORD dwFormat;
230 FX_DWORD dwFlag = Icc_FLAGS_DEFAULT, 288 uint8_t* pProfileData;
231 FX_DWORD dwPrfIntent = Icc_INTENT_ABSOLU TE_COLORIMETRIC, 289 FX_DWORD dwProfileSize;
232 FX_DWORD dwPrfFlag = Icc_FLAGS_SOFTPROOF ING 290 double Gamma;
233 ) = 0; 291 } IccParam;
234 292
235 293 virtual ~ICodec_IccModule() {}
236 virtual void* CreateTransform_sRGB(const uint8_t* pProfileData, FX_DWO RD dwProfileSize, int32_t& nComponents, int32_t intent = 0, 294
237 FX_DWORD dwSrcFormat = Icc_FORMAT_DEFAULT) = 0; 295 virtual IccCS GetProfileCS(const uint8_t* pProfileData,
238 296 unsigned int dwProfileSize) = 0;
239 virtual void* CreateTransform_CMYK(const uint8_t* pSrcProfileData, FX_ DWORD dwSrcProfileSize, int32_t& nSrcComponents, 297
240 const uint8_t* pDstProfileData, FX_DWORD dwDstProfileSize, int32_t i ntent = 0, 298 virtual IccCS GetProfileCS(IFX_FileRead* pFile) = 0;
241 FX_DWORD dwSrcFormat = Icc_FORMAT_DEFAULT, 299
242 FX_DWORD dwDstFormat = Icc_FORMAT_DEFAULT 300 virtual void* CreateTransform(
243 ) = 0; 301 ICodec_IccModule::IccParam* pInputParam,
244 302 ICodec_IccModule::IccParam* pOutputParam,
245 virtual void DestroyTransform(void* pTransform) = 0; 303 ICodec_IccModule::IccParam* pProofParam = NULL,
246 304 FX_DWORD dwIntent = Icc_INTENT_PERCEPTUAL,
247 virtual void Translate(void* pTransform, FX_FLOAT* pS rcValues, FX_FLOAT* pDestValues) = 0; 305 FX_DWORD dwFlag = Icc_FLAGS_DEFAULT,
248 306 FX_DWORD dwPrfIntent = Icc_INTENT_ABSOLUTE_COLORIMETRIC,
249 virtual void TranslateScanline(void* pTransform, uint 8_t* pDest, const uint8_t* pSrc, int pixels) = 0; 307 FX_DWORD dwPrfFlag = Icc_FLAGS_SOFTPROOFING) = 0;
250 virtual void SetComponents(FX_DWORD nComponents) = 0; 308
251 }; 309 virtual void* CreateTransform_sRGB(
252 void AdobeCMYK_to_sRGB(FX_FLOAT c, FX_FLOAT m, FX_FLOAT y, FX_FLOAT k, FX_FLOAT& R, FX_FLOAT& G, FX_FLOAT& B); 310 const uint8_t* pProfileData,
253 void AdobeCMYK_to_sRGB1(uint8_t c, uint8_t m, uint8_t y, uint8_t k, uint8_t& R, uint8_t& G, uint8_t& B); 311 FX_DWORD dwProfileSize,
312 int32_t& nComponents,
313 int32_t intent = 0,
314 FX_DWORD dwSrcFormat = Icc_FORMAT_DEFAULT) = 0;
315
316 virtual void* CreateTransform_CMYK(
317 const uint8_t* pSrcProfileData,
318 FX_DWORD dwSrcProfileSize,
319 int32_t& nSrcComponents,
320 const uint8_t* pDstProfileData,
321 FX_DWORD dwDstProfileSize,
322 int32_t intent = 0,
323 FX_DWORD dwSrcFormat = Icc_FORMAT_DEFAULT,
324 FX_DWORD dwDstFormat = Icc_FORMAT_DEFAULT) = 0;
325
326 virtual void DestroyTransform(void* pTransform) = 0;
327
328 virtual void Translate(void* pTransform,
329 FX_FLOAT* pSrcValues,
330 FX_FLOAT* pDestValues) = 0;
331
332 virtual void TranslateScanline(void* pTransform,
333 uint8_t* pDest,
334 const uint8_t* pSrc,
335 int pixels) = 0;
336 virtual void SetComponents(FX_DWORD nComponents) = 0;
337 };
338 void AdobeCMYK_to_sRGB(FX_FLOAT c,
339 FX_FLOAT m,
340 FX_FLOAT y,
341 FX_FLOAT k,
342 FX_FLOAT& R,
343 FX_FLOAT& G,
344 FX_FLOAT& B);
345 void AdobeCMYK_to_sRGB1(uint8_t c,
346 uint8_t m,
347 uint8_t y,
348 uint8_t k,
349 uint8_t& R,
350 uint8_t& G,
351 uint8_t& B);
254 FX_BOOL MD5ComputeID(const void* buf, FX_DWORD dwSize, uint8_t ID[16]); 352 FX_BOOL MD5ComputeID(const void* buf, FX_DWORD dwSize, uint8_t ID[16]);
255 353
256 #endif // CORE_INCLUDE_FXCODEC_FX_CODEC_H_ 354 #endif // CORE_INCLUDE_FXCODEC_FX_CODEC_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698