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 #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 "../fxcrt/fx_ext.h" | 10 #include "../fxcrt/fx_ext.h" |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 ICodec_GifModule* m_pGifModule; | 107 ICodec_GifModule* m_pGifModule; |
108 ICodec_BmpModule* m_pBmpModule; | 108 ICodec_BmpModule* m_pBmpModule; |
109 ICodec_TiffModule* m_pTiffModule; | 109 ICodec_TiffModule* m_pTiffModule; |
110 | 110 |
111 }; | 111 }; |
112 class ICodec_BasicModule | 112 class ICodec_BasicModule |
113 { | 113 { |
114 public: | 114 public: |
115 | 115 |
116 virtual ~ICodec_BasicModule() {} | 116 virtual ~ICodec_BasicModule() {} |
117 virtual FX_BOOL» RunLengthEncode(const FX_BYTE* src_buf, FX_DWORD src_siz
e, FX_LPBYTE& dest_buf, | 117 virtual FX_BOOL» RunLengthEncode(const uint8_t* src_buf, FX_DWORD src_siz
e, FX_LPBYTE& dest_buf, |
118 FX_DWORD& dest_size) = 0; | 118 FX_DWORD& dest_size) = 0; |
119 virtual FX_BOOL» A85Encode(const FX_BYTE* src_buf, FX_DWORD src_size, FX_
LPBYTE& dest_buf, | 119 virtual FX_BOOL» A85Encode(const uint8_t* src_buf, FX_DWORD src_size, FX_
LPBYTE& dest_buf, |
120 FX_DWORD& dest_size) = 0; | 120 FX_DWORD& dest_size) = 0; |
121 virtual ICodec_ScanlineDecoder* CreateRunLengthDecoder(FX_LPCBYTE src_bu
f, FX_DWORD src_size, int width, int height, | 121 virtual ICodec_ScanlineDecoder* CreateRunLengthDecoder(FX_LPCBYTE src_bu
f, FX_DWORD src_size, int width, int height, |
122 int nComps, int bpc) = 0; | 122 int nComps, int bpc) = 0; |
123 }; | 123 }; |
124 class ICodec_ScanlineDecoder | 124 class ICodec_ScanlineDecoder |
125 { | 125 { |
126 public: | 126 public: |
127 | 127 |
128 virtual ~ICodec_ScanlineDecoder() {} | 128 virtual ~ICodec_ScanlineDecoder() {} |
129 | 129 |
(...skipping 17 matching lines...) Expand all Loading... |
147 | 147 |
148 virtual void ClearImageData() = 0; | 148 virtual void ClearImageData() = 0; |
149 }; | 149 }; |
150 class ICodec_FlateModule | 150 class ICodec_FlateModule |
151 { | 151 { |
152 public: | 152 public: |
153 | 153 |
154 virtual ~ICodec_FlateModule() {} | 154 virtual ~ICodec_FlateModule() {} |
155 virtual ICodec_ScanlineDecoder* CreateDecoder(FX_LPCBYTE src_buf, FX_DWO
RD src_size, int width, int height, | 155 virtual ICodec_ScanlineDecoder* CreateDecoder(FX_LPCBYTE src_buf, FX_DWO
RD src_size, int width, int height, |
156 int nComps, int bpc, int predictor, int Colors, int BitsPerComponent
, int Columns) = 0; | 156 int nComps, int bpc, int predictor, int Colors, int BitsPerComponent
, int Columns) = 0; |
157 virtual FX_DWORD» FlateOrLZWDecode(FX_BOOL bLZW, const FX_BYTE* src_buf, F
X_DWORD src_size, FX_BOOL bEarlyChange, | 157 virtual FX_DWORD» FlateOrLZWDecode(FX_BOOL bLZW, const uint8_t* src_buf, F
X_DWORD src_size, FX_BOOL bEarlyChange, |
158 int predictor, int Colors, int BitsPerC
omponent, int Columns, | 158 int predictor, int Colors, int BitsPerC
omponent, int Columns, |
159 FX_DWORD estimated_size, FX_LPBYTE& des
t_buf, FX_DWORD& dest_size) = 0; | 159 FX_DWORD estimated_size, FX_LPBYTE& des
t_buf, FX_DWORD& dest_size) = 0; |
160 virtual FX_BOOL» » Encode(const FX_BYTE* src_buf, FX_DWORD src_size
, | 160 virtual FX_BOOL» » Encode(const uint8_t* src_buf, FX_DWORD src_size
, |
161 int predictor, int Colors, int BitsPerComponent,
int Columns, | 161 int predictor, int Colors, int BitsPerComponent,
int Columns, |
162 FX_LPBYTE& dest_buf, FX_DWORD& dest_size) = 0; | 162 FX_LPBYTE& dest_buf, FX_DWORD& dest_size) = 0; |
163 virtual FX_BOOL Encode(FX_LPCBYTE src_buf, FX_DWORD src_size, FX
_LPBYTE& dest_buf, FX_DWORD& dest_size) = 0; | 163 virtual FX_BOOL Encode(FX_LPCBYTE src_buf, FX_DWORD src_size, FX
_LPBYTE& dest_buf, FX_DWORD& dest_size) = 0; |
164 }; | 164 }; |
165 class ICodec_FaxModule | 165 class ICodec_FaxModule |
166 { | 166 { |
167 public: | 167 public: |
168 | 168 |
169 virtual ~ICodec_FaxModule() {} | 169 virtual ~ICodec_FaxModule() {} |
170 | 170 |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 virtual ~ICodec_GifModule() {} | 251 virtual ~ICodec_GifModule() {} |
252 | 252 |
253 virtual void* Start(void* pModule) = 0; | 253 virtual void* Start(void* pModule) = 0; |
254 | 254 |
255 virtual void Finish(void* pContext) = 0; | 255 virtual void Finish(void* pContext) = 0; |
256 | 256 |
257 virtual FX_DWORD GetAvailInput(void* pContext, FX_LPBYTE* avail_buf_ptr =
NULL) = 0; | 257 virtual FX_DWORD GetAvailInput(void* pContext, FX_LPBYTE* avail_buf_ptr =
NULL) = 0; |
258 | 258 |
259 virtual void Input(void* pContext, FX_LPCBYTE src_buf, FX_DWO
RD src_size) = 0; | 259 virtual void Input(void* pContext, FX_LPCBYTE src_buf, FX_DWO
RD src_size) = 0; |
260 | 260 |
261 virtual FX_INT32» ReadHeader(void* pContext, int* width, int* height, | 261 virtual int32_t» ReadHeader(void* pContext, int* width, int* height, |
262 int* pal_num, void** pal_pp, int* bg_index, C
FX_DIBAttribute* pAttribute = NULL) = 0; | 262 int* pal_num, void** pal_pp, int* bg_index, C
FX_DIBAttribute* pAttribute = NULL) = 0; |
263 | 263 |
264 virtual FX_INT32» LoadFrameInfo(void* pContext, int* frame_num) = 0; | 264 virtual int32_t» LoadFrameInfo(void* pContext, int* frame_num) = 0; |
265 | 265 |
266 void (*RecordCurrentPositionCallback)(void* p
Module, FX_DWORD& cur_pos); | 266 void (*RecordCurrentPositionCallback)(void* p
Module, FX_DWORD& cur_pos); |
267 | 267 |
268 FX_LPBYTE» » » (*AskLocalPaletteBufCallback)(void* pModule, FX_
INT32 frame_num, FX_INT32 pal_size); | 268 FX_LPBYTE» » » (*AskLocalPaletteBufCallback)(void* pModule, int
32_t frame_num, int32_t pal_size); |
269 | 269 |
270 virtual FX_INT32» LoadFrame(void* pContext, int frame_num, CFX_DIBAttribut
e* pAttribute = NULL) = 0; | 270 virtual int32_t» LoadFrame(void* pContext, int frame_num, CFX_DIBAttribut
e* pAttribute = NULL) = 0; |
271 | 271 |
272 FX_BOOL (*InputRecordPositionBufCallback)(void*
pModule, FX_DWORD rcd_pos, const FX_RECT& img_rc, | 272 FX_BOOL (*InputRecordPositionBufCallback)(void*
pModule, FX_DWORD rcd_pos, const FX_RECT& img_rc, |
273 FX_INT32 pal_num, void* pal_ptr, | 273 int32_t pal_num, void* pal_ptr, |
274 FX_INT32 delay_time, FX_BOOL user_input, | 274 int32_t delay_time, FX_BOOL user_input, |
275 FX_INT32 trans_index, FX_INT32 disposal_method, FX_BOOL interlace); | 275 int32_t trans_index, int32_t disposal_method, FX_BOOL interlace); |
276 | 276 |
277 void» » » » (*ReadScanlineCallback)(void* pModule, F
X_INT32 row_num, FX_LPBYTE row_buf); | 277 void» » » » (*ReadScanlineCallback)(void* pModule, i
nt32_t row_num, FX_LPBYTE row_buf); |
278 }; | 278 }; |
279 class ICodec_BmpModule | 279 class ICodec_BmpModule |
280 { | 280 { |
281 public: | 281 public: |
282 | 282 |
283 virtual ~ICodec_BmpModule() {} | 283 virtual ~ICodec_BmpModule() {} |
284 | 284 |
285 virtual void* Start(void* pModule) = 0; | 285 virtual void* Start(void* pModule) = 0; |
286 | 286 |
287 virtual void Finish(void* pContext) = 0; | 287 virtual void Finish(void* pContext) = 0; |
288 | 288 |
289 virtual FX_DWORD GetAvailInput(void* pContext, FX_LPBYTE* avail_buf_ptr =
NULL) = 0; | 289 virtual FX_DWORD GetAvailInput(void* pContext, FX_LPBYTE* avail_buf_ptr =
NULL) = 0; |
290 | 290 |
291 virtual void Input(void* pContext, FX_LPCBYTE src_buf, FX_DWO
RD src_size) = 0; | 291 virtual void Input(void* pContext, FX_LPCBYTE src_buf, FX_DWO
RD src_size) = 0; |
292 | 292 |
293 virtual FX_INT32» ReadHeader(void* pContext, FX_INT32* width, FX_INT32* he
ight, FX_BOOL* tb_flag, FX_INT32* components, | 293 virtual int32_t» ReadHeader(void* pContext, int32_t* width, int32_t* heig
ht, FX_BOOL* tb_flag, int32_t* components, |
294 int* pal_num, FX_DWORD** pal_pp, CFX_DIBAttri
bute* pAttribute = NULL) = 0; | 294 int* pal_num, FX_DWORD** pal_pp, CFX_DIBAttri
bute* pAttribute = NULL) = 0; |
295 | 295 |
296 virtual FX_INT32» LoadImage(void* pContext) = 0; | 296 virtual int32_t» LoadImage(void* pContext) = 0; |
297 | 297 |
298 FX_BOOL (*InputImagePositionBufCallback)(void* p
Module, FX_DWORD rcd_pos); | 298 FX_BOOL (*InputImagePositionBufCallback)(void* p
Module, FX_DWORD rcd_pos); |
299 | 299 |
300 void» » » » (*ReadScanlineCallback)(void* pModule, F
X_INT32 row_num, FX_LPBYTE row_buf); | 300 void» » » » (*ReadScanlineCallback)(void* pModule, i
nt32_t row_num, FX_LPBYTE row_buf); |
301 }; | 301 }; |
302 class ICodec_TiffModule | 302 class ICodec_TiffModule |
303 { | 303 { |
304 public: | 304 public: |
305 | 305 |
306 virtual ~ICodec_TiffModule() {} | 306 virtual ~ICodec_TiffModule() {} |
307 | 307 |
308 virtual FX_LPVOID CreateDecoder(IFX_FileRead* file_ptr) = 0; | 308 virtual FX_LPVOID CreateDecoder(IFX_FileRead* file_ptr) = 0; |
309 | 309 |
310 | 310 |
311 virtual void» » GetFrames(FX_LPVOID ctx, FX_INT32& frames) = 0; | 311 virtual void» » GetFrames(FX_LPVOID ctx, int32_t& frames) = 0; |
312 | 312 |
313 virtual FX_BOOL» » LoadFrameInfo(FX_LPVOID ctx, FX_INT32 frame, FX_
DWORD& width, FX_DWORD& height, FX_DWORD& comps, FX_DWORD& bpc, CFX_DIBAttribute
* pAttribute = NULL) = 0; | 313 virtual FX_BOOL» » LoadFrameInfo(FX_LPVOID ctx, int32_t frame, FX_D
WORD& width, FX_DWORD& height, FX_DWORD& comps, FX_DWORD& bpc, CFX_DIBAttribute*
pAttribute = NULL) = 0; |
314 | 314 |
315 | 315 |
316 virtual FX_BOOL Decode(FX_LPVOID ctx, class CFX_DIBitmap* pDIBit
map) = 0; | 316 virtual FX_BOOL Decode(FX_LPVOID ctx, class CFX_DIBitmap* pDIBit
map) = 0; |
317 | 317 |
318 virtual void DestroyDecoder(FX_LPVOID ctx) = 0; | 318 virtual void DestroyDecoder(FX_LPVOID ctx) = 0; |
319 }; | 319 }; |
320 class ICodec_Jbig2Module | 320 class ICodec_Jbig2Module |
321 { | 321 { |
322 public: | 322 public: |
323 | 323 |
(...skipping 17 matching lines...) Expand all Loading... |
341 class ICodec_ProgressiveDecoder | 341 class ICodec_ProgressiveDecoder |
342 { | 342 { |
343 public: | 343 public: |
344 | 344 |
345 virtual ~ICodec_ProgressiveDecoder() {} | 345 virtual ~ICodec_ProgressiveDecoder() {} |
346 | 346 |
347 virtual FXCODEC_STATUS LoadImageInfo(IFX_FileRead* pFile, FXCOD
EC_IMAGE_TYPE imageType = FXCODEC_IMAGE_UNKNOWN, CFX_DIBAttribute* pAttribute =
NULL) = 0; | 347 virtual FXCODEC_STATUS LoadImageInfo(IFX_FileRead* pFile, FXCOD
EC_IMAGE_TYPE imageType = FXCODEC_IMAGE_UNKNOWN, CFX_DIBAttribute* pAttribute =
NULL) = 0; |
348 | 348 |
349 virtual FXCODEC_IMAGE_TYPE GetType() = 0; | 349 virtual FXCODEC_IMAGE_TYPE GetType() = 0; |
350 | 350 |
351 virtual FX_INT32» » » GetWidth() = 0; | 351 virtual int32_t» » » GetWidth() = 0; |
352 | 352 |
353 virtual FX_INT32» » » GetHeight() = 0; | 353 virtual int32_t» » » GetHeight() = 0; |
354 | 354 |
355 virtual FX_INT32» » » GetNumComponents() = 0; | 355 virtual int32_t» » » GetNumComponents() = 0; |
356 | 356 |
357 virtual FX_INT32» » » GetBPC() = 0; | 357 virtual int32_t» » » GetBPC() = 0; |
358 | 358 |
359 virtual void SetClipBox(FX_RECT* clip) = 0; | 359 virtual void SetClipBox(FX_RECT* clip) = 0; |
360 | 360 |
361 virtual FXCODEC_STATUS» » GetFrames(FX_INT32& frames, IFX_Pause* p
Pause = NULL) = 0; | 361 virtual FXCODEC_STATUS» » GetFrames(int32_t& frames, IFX_Pause* pP
ause = NULL) = 0; |
362 | 362 |
363 virtual FXCODEC_STATUS StartDecode(class CFX_DIBitmap* pDIBitma
p, | 363 virtual FXCODEC_STATUS StartDecode(class CFX_DIBitmap* pDIBitma
p, |
364 FX_INT32 start_x, FX_INT32 start_y,
FX_INT32 size_x, FX_INT32 size_y, | 364 int32_t start_x, int32_t start_y, in
t32_t size_x, int32_t size_y, |
365 FX_INT32 frames = 0, FX_BOOL bInterp
ol = TRUE) = 0; | 365 int32_t frames = 0, FX_BOOL bInterpo
l = TRUE) = 0; |
366 | 366 |
367 virtual FXCODEC_STATUS ContinueDecode(IFX_Pause* pPause = NULL)
= 0; | 367 virtual FXCODEC_STATUS ContinueDecode(IFX_Pause* pPause = NULL)
= 0; |
368 }; | 368 }; |
369 class ICodec_Jbig2Encoder | 369 class ICodec_Jbig2Encoder |
370 { | 370 { |
371 public: | 371 public: |
372 | 372 |
373 virtual ~ICodec_Jbig2Encoder() {} | 373 virtual ~ICodec_Jbig2Encoder() {} |
374 }; | 374 }; |
375 class ICodec_IccModule | 375 class ICodec_IccModule |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
408 virtual FX_LPVOID CreateTransform(ICodec_IccModule::IccParam* pInputParam, | 408 virtual FX_LPVOID CreateTransform(ICodec_IccModule::IccParam* pInputParam, |
409 ICodec_IccModule::IccParam* pOutputParam
, | 409 ICodec_IccModule::IccParam* pOutputParam
, |
410 ICodec_IccModule::IccParam* pProofParam
= NULL, | 410 ICodec_IccModule::IccParam* pProofParam
= NULL, |
411 FX_DWORD dwIntent = Icc_INTENT_PERCEPTUA
L, | 411 FX_DWORD dwIntent = Icc_INTENT_PERCEPTUA
L, |
412 FX_DWORD dwFlag = Icc_FLAGS_DEFAULT, | 412 FX_DWORD dwFlag = Icc_FLAGS_DEFAULT, |
413 FX_DWORD dwPrfIntent = Icc_INTENT_ABSOLU
TE_COLORIMETRIC, | 413 FX_DWORD dwPrfIntent = Icc_INTENT_ABSOLU
TE_COLORIMETRIC, |
414 FX_DWORD dwPrfFlag = Icc_FLAGS_SOFTPROOF
ING | 414 FX_DWORD dwPrfFlag = Icc_FLAGS_SOFTPROOF
ING |
415 ) = 0; | 415 ) = 0; |
416 | 416 |
417 | 417 |
418 virtual FX_LPVOID» CreateTransform_sRGB(FX_LPCBYTE pProfileData, FX_DWORD d
wProfileSize, FX_INT32& nComponents, FX_INT32 intent = 0, | 418 virtual FX_LPVOID» CreateTransform_sRGB(FX_LPCBYTE pProfileData, FX_DWORD d
wProfileSize, int32_t& nComponents, int32_t intent = 0, |
419 FX_DWORD dwSrcFormat = Icc_FORMAT_DEFAULT) = 0; | 419 FX_DWORD dwSrcFormat = Icc_FORMAT_DEFAULT) = 0; |
420 | 420 |
421 virtual FX_LPVOID» CreateTransform_CMYK(FX_LPCBYTE pSrcProfileData, FX_DWOR
D dwSrcProfileSize, FX_INT32& nSrcComponents, | 421 virtual FX_LPVOID» CreateTransform_CMYK(FX_LPCBYTE pSrcProfileData, FX_DWOR
D dwSrcProfileSize, int32_t& nSrcComponents, |
422 FX_LPCBYTE pDstProfileData, FX_DWORD dwDstProfileSize, FX_INT32 inte
nt = 0, | 422 FX_LPCBYTE pDstProfileData, FX_DWORD dwDstProfileSize, int32_t inten
t = 0, |
423 FX_DWORD dwSrcFormat = Icc_FORMAT_DEFAULT, | 423 FX_DWORD dwSrcFormat = Icc_FORMAT_DEFAULT, |
424 FX_DWORD dwDstFormat = Icc_FORMAT_DEFAULT | 424 FX_DWORD dwDstFormat = Icc_FORMAT_DEFAULT |
425 ) = 0; | 425 ) = 0; |
426 | 426 |
427 virtual void DestroyTransform(FX_LPVOID pTransform) =
0; | 427 virtual void DestroyTransform(FX_LPVOID pTransform) =
0; |
428 | 428 |
429 virtual void Translate(FX_LPVOID pTransform, FX_FLOAT
* pSrcValues, FX_FLOAT* pDestValues) = 0; | 429 virtual void Translate(FX_LPVOID pTransform, FX_FLOAT
* pSrcValues, FX_FLOAT* pDestValues) = 0; |
430 | 430 |
431 virtual void TranslateScanline(FX_LPVOID pTransform,
FX_LPBYTE pDest, FX_LPCBYTE pSrc, int pixels) = 0; | 431 virtual void TranslateScanline(FX_LPVOID pTransform,
FX_LPBYTE pDest, FX_LPCBYTE pSrc, int pixels) = 0; |
432 virtual void SetComponents(FX_DWORD nComponents) = 0; | 432 virtual void SetComponents(FX_DWORD nComponents) = 0; |
433 }; | 433 }; |
| 434 |
434 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); | 435 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); |
435 void AdobeCMYK_to_sRGB1(FX_BYTE c, FX_BYTE m, FX_BYTE y, FX_BYTE k, FX_BYTE& R,
FX_BYTE& G, FX_BYTE& B); | 436 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); |
436 FX_BOOL MD5ComputeID(FX_LPCVOID buf, FX_DWORD dwSize, FX_BYTE ID[16]); | 437 FX_BOOL MD5ComputeID(FX_LPCVOID buf, FX_DWORD dwSize, uint8_t ID[16]); |
437 class CFX_DIBAttribute | 438 class CFX_DIBAttribute |
438 { | 439 { |
439 public: | 440 public: |
440 CFX_DIBAttribute(); | 441 CFX_DIBAttribute(); |
441 ~CFX_DIBAttribute(); | 442 ~CFX_DIBAttribute(); |
442 | 443 |
443 FX_INT32» » m_nXDPI; | 444 int32_t» » m_nXDPI; |
444 | 445 |
445 FX_INT32» » m_nYDPI; | 446 int32_t» » m_nYDPI; |
446 | 447 |
447 FX_FLOAT m_fAspectRatio; | 448 FX_FLOAT m_fAspectRatio; |
448 | 449 |
449 FX_WORD m_wDPIUnit; | 450 FX_WORD m_wDPIUnit; |
450 | 451 |
451 CFX_ByteString m_strAuthor; | 452 CFX_ByteString m_strAuthor; |
452 | 453 |
453 FX_BYTE» » » m_strTime[20]; | 454 uint8_t» » » m_strTime[20]; |
454 | 455 |
455 FX_INT32» » m_nGifLeft; | 456 int32_t» » m_nGifLeft; |
456 FX_INT32» » m_nGifTop; | 457 int32_t» » m_nGifTop; |
457 | 458 |
458 FX_DWORD* m_pGifLocalPalette; | 459 FX_DWORD* m_pGifLocalPalette; |
459 | 460 |
460 FX_DWORD m_nGifLocalPalNum; | 461 FX_DWORD m_nGifLocalPalNum; |
461 | 462 |
462 FX_INT32» » m_nBmpCompressType; | 463 int32_t» » m_nBmpCompressType; |
463 class IFX_DIBAttributeExif* m_pExif; | 464 class IFX_DIBAttributeExif* m_pExif; |
464 }; | 465 }; |
465 class IFX_DIBAttributeExif | 466 class IFX_DIBAttributeExif |
466 { | 467 { |
467 public: | 468 public: |
468 virtual ~IFX_DIBAttributeExif() {}; | 469 virtual ~IFX_DIBAttributeExif() {}; |
469 virtual FX_BOOL GetInfo(FX_WORD tag, FX_LPVOID val) = 0; | 470 virtual FX_BOOL GetInfo(FX_WORD tag, FX_LPVOID val) = 0; |
470 }; | 471 }; |
471 | 472 |
472 #endif // CORE_INCLUDE_FXCODEC_FX_CODEC_H_ | 473 #endif // CORE_INCLUDE_FXCODEC_FX_CODEC_H_ |
OLD | NEW |