| 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 "../../../include/fxge/fx_ge.h" | 7 #include "../../../include/fxge/fx_ge.h" | 
| 8 #include "../../../include/fxcodec/fx_codec.h" | 8 #include "../../../include/fxcodec/fx_codec.h" | 
| 9 #include "dib_int.h" | 9 #include "dib_int.h" | 
| 10 const uint8_t _color_sqrt[256] = { | 10 const uint8_t _color_sqrt[256] = { | 
| (...skipping 4038 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4049   } | 4049   } | 
| 4050   return TRUE; | 4050   return TRUE; | 
| 4051 } | 4051 } | 
| 4052 inline void _ScanlineCompositor_InitSourcePalette(FXDIB_Format src_format, | 4052 inline void _ScanlineCompositor_InitSourcePalette(FXDIB_Format src_format, | 
| 4053                                                   FXDIB_Format dest_format, | 4053                                                   FXDIB_Format dest_format, | 
| 4054                                                   FX_DWORD*& pDestPalette, | 4054                                                   FX_DWORD*& pDestPalette, | 
| 4055                                                   FX_DWORD* pSrcPalette, | 4055                                                   FX_DWORD* pSrcPalette, | 
| 4056                                                   void* icc_module, | 4056                                                   void* icc_module, | 
| 4057                                                   void* pIccTransform) { | 4057                                                   void* pIccTransform) { | 
| 4058   ICodec_IccModule* pIccModule = (ICodec_IccModule*)icc_module; | 4058   ICodec_IccModule* pIccModule = (ICodec_IccModule*)icc_module; | 
| 4059   FX_BOOL isSrcCmyk = src_format & 0x0400 ? TRUE : FALSE; | 4059   FX_BOOL isSrcCmyk = !!(src_format & 0x0400); | 
| 4060   FX_BOOL isDstCmyk = dest_format & 0x0400 ? TRUE : FALSE; | 4060   FX_BOOL isDstCmyk = !!(dest_format & 0x0400); | 
| 4061   pDestPalette = NULL; | 4061   pDestPalette = NULL; | 
| 4062   if (pIccTransform) { | 4062   if (pIccTransform) { | 
| 4063     if (pSrcPalette) { | 4063     if (pSrcPalette) { | 
| 4064       if ((dest_format & 0xff) == 8) { | 4064       if ((dest_format & 0xff) == 8) { | 
| 4065         int pal_count = 1 << (src_format & 0xff); | 4065         int pal_count = 1 << (src_format & 0xff); | 
| 4066         uint8_t* gray_pal = FX_Alloc(uint8_t, pal_count); | 4066         uint8_t* gray_pal = FX_Alloc(uint8_t, pal_count); | 
| 4067         pDestPalette = (FX_DWORD*)gray_pal; | 4067         pDestPalette = (FX_DWORD*)gray_pal; | 
| 4068         for (int i = 0; i < pal_count; i++) { | 4068         for (int i = 0; i < pal_count; i++) { | 
| 4069           FX_DWORD color = isSrcCmyk ? FXCMYK_TODIB(pSrcPalette[i]) | 4069           FX_DWORD color = isSrcCmyk ? FXCMYK_TODIB(pSrcPalette[i]) | 
| 4070                                      : FXARGB_TODIB(pSrcPalette[i]); | 4070                                      : FXARGB_TODIB(pSrcPalette[i]); | 
| (...skipping 834 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4905                          color_p[2], color_p[1], color_p[0]); | 4905                          color_p[2], color_p[1], color_p[0]); | 
| 4906     else if (!(alpha_flag >> 8) && IsCmykImage()) { | 4906     else if (!(alpha_flag >> 8) && IsCmykImage()) { | 
| 4907       return FALSE; | 4907       return FALSE; | 
| 4908     } | 4908     } | 
| 4909   } | 4909   } | 
| 4910   if (!IsCmykImage()) { | 4910   if (!IsCmykImage()) { | 
| 4911     color_p[3] = (uint8_t)src_alpha; | 4911     color_p[3] = (uint8_t)src_alpha; | 
| 4912   } | 4912   } | 
| 4913   int Bpp = m_bpp / 8; | 4913   int Bpp = m_bpp / 8; | 
| 4914   FX_BOOL bAlpha = HasAlpha(); | 4914   FX_BOOL bAlpha = HasAlpha(); | 
| 4915   FX_BOOL bArgb = GetFormat() == FXDIB_Argb ? TRUE : FALSE; | 4915   FX_BOOL bArgb = GetFormat() == FXDIB_Argb; | 
| 4916   if (src_alpha == 255) { | 4916   if (src_alpha == 255) { | 
| 4917     for (int row = rect.top; row < rect.bottom; row++) { | 4917     for (int row = rect.top; row < rect.bottom; row++) { | 
| 4918       uint8_t* dest_scan = m_pBuffer + row * m_Pitch + rect.left * Bpp; | 4918       uint8_t* dest_scan = m_pBuffer + row * m_Pitch + rect.left * Bpp; | 
| 4919       uint8_t* dest_scan_alpha = | 4919       uint8_t* dest_scan_alpha = | 
| 4920           m_pAlphaMask ? (uint8_t*)m_pAlphaMask->GetScanline(row) + rect.left | 4920           m_pAlphaMask ? (uint8_t*)m_pAlphaMask->GetScanline(row) + rect.left | 
| 4921                        : NULL; | 4921                        : NULL; | 
| 4922       if (dest_scan_alpha) { | 4922       if (dest_scan_alpha) { | 
| 4923         FXSYS_memset(dest_scan_alpha, 0xff, width); | 4923         FXSYS_memset(dest_scan_alpha, 0xff, width); | 
| 4924       } | 4924       } | 
| 4925       if (Bpp == 4) { | 4925       if (Bpp == 4) { | 
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5189   } | 5189   } | 
| 5190   src_alpha_scan = m_pScanlineAlphaV; | 5190   src_alpha_scan = m_pScanlineAlphaV; | 
| 5191   dest_alpha_scan = dest_alpha_buf; | 5191   dest_alpha_scan = dest_alpha_buf; | 
| 5192   if (dest_alpha_scan) { | 5192   if (dest_alpha_scan) { | 
| 5193     for (i = 0; i < m_DestHeight; i++) { | 5193     for (i = 0; i < m_DestHeight; i++) { | 
| 5194       *dest_alpha_scan = *src_alpha_scan++; | 5194       *dest_alpha_scan = *src_alpha_scan++; | 
| 5195       dest_alpha_scan += y_alpha_step; | 5195       dest_alpha_scan += y_alpha_step; | 
| 5196     } | 5196     } | 
| 5197   } | 5197   } | 
| 5198 } | 5198 } | 
| OLD | NEW | 
|---|