| 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 #if defined(_SKIA_SUPPORT_) | 5 #if defined(_SKIA_SUPPORT_) |
| 6 #include <algorithm> | 6 #include <algorithm> |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "core/fxcodec/fx_codec.h" | 9 #include "core/fxcodec/fx_codec.h" |
| 10 #include "core/fxcrt/fx_memory.h" | 10 #include "core/fxcrt/fx_memory.h" |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 } | 142 } |
| 143 | 143 |
| 144 // use when pdf's y-axis points up insead of down | 144 // use when pdf's y-axis points up insead of down |
| 145 SkMatrix ToFlippedSkMatrix(const CFX_Matrix& m, SkScalar flip) { | 145 SkMatrix ToFlippedSkMatrix(const CFX_Matrix& m, SkScalar flip) { |
| 146 SkMatrix skMatrix; | 146 SkMatrix skMatrix; |
| 147 skMatrix.setAll(m.a * flip, -m.c * flip, m.e, m.b * flip, -m.d * flip, m.f, 0, | 147 skMatrix.setAll(m.a * flip, -m.c * flip, m.e, m.b * flip, -m.d * flip, m.f, 0, |
| 148 0, 1); | 148 0, 1); |
| 149 return skMatrix; | 149 return skMatrix; |
| 150 } | 150 } |
| 151 | 151 |
| 152 SkXfermode::Mode GetSkiaBlendMode(int blend_type) { | 152 SkBlendMode GetSkiaBlendMode(int blend_type) { |
| 153 switch (blend_type) { | 153 switch (blend_type) { |
| 154 case FXDIB_BLEND_MULTIPLY: | 154 case FXDIB_BLEND_MULTIPLY: |
| 155 return SkXfermode::kMultiply_Mode; | 155 return SkBlendMode::kMultiply; |
| 156 case FXDIB_BLEND_SCREEN: | 156 case FXDIB_BLEND_SCREEN: |
| 157 return SkXfermode::kScreen_Mode; | 157 return SkBlendMode::kScreen; |
| 158 case FXDIB_BLEND_OVERLAY: | 158 case FXDIB_BLEND_OVERLAY: |
| 159 return SkXfermode::kOverlay_Mode; | 159 return SkBlendMode::kOverlay; |
| 160 case FXDIB_BLEND_DARKEN: | 160 case FXDIB_BLEND_DARKEN: |
| 161 return SkXfermode::kDarken_Mode; | 161 return SkBlendMode::kDarken; |
| 162 case FXDIB_BLEND_LIGHTEN: | 162 case FXDIB_BLEND_LIGHTEN: |
| 163 return SkXfermode::kLighten_Mode; | 163 return SkBlendMode::kLighten; |
| 164 case FXDIB_BLEND_COLORDODGE: | 164 case FXDIB_BLEND_COLORDODGE: |
| 165 return SkXfermode::kColorDodge_Mode; | 165 return SkBlendMode::kColorDodge; |
| 166 case FXDIB_BLEND_COLORBURN: | 166 case FXDIB_BLEND_COLORBURN: |
| 167 return SkXfermode::kColorBurn_Mode; | 167 return SkBlendMode::kColorBurn; |
| 168 case FXDIB_BLEND_HARDLIGHT: | 168 case FXDIB_BLEND_HARDLIGHT: |
| 169 return SkXfermode::kHardLight_Mode; | 169 return SkBlendMode::kHardLight; |
| 170 case FXDIB_BLEND_SOFTLIGHT: | 170 case FXDIB_BLEND_SOFTLIGHT: |
| 171 return SkXfermode::kSoftLight_Mode; | 171 return SkBlendMode::kSoftLight; |
| 172 case FXDIB_BLEND_DIFFERENCE: | 172 case FXDIB_BLEND_DIFFERENCE: |
| 173 return SkXfermode::kDifference_Mode; | 173 return SkBlendMode::kDifference; |
| 174 case FXDIB_BLEND_EXCLUSION: | 174 case FXDIB_BLEND_EXCLUSION: |
| 175 return SkXfermode::kExclusion_Mode; | 175 return SkBlendMode::kExclusion; |
| 176 case FXDIB_BLEND_HUE: | 176 case FXDIB_BLEND_HUE: |
| 177 return SkXfermode::kHue_Mode; | 177 return SkBlendMode::kHue; |
| 178 case FXDIB_BLEND_SATURATION: | 178 case FXDIB_BLEND_SATURATION: |
| 179 return SkXfermode::kSaturation_Mode; | 179 return SkBlendMode::kSaturation; |
| 180 case FXDIB_BLEND_COLOR: | 180 case FXDIB_BLEND_COLOR: |
| 181 return SkXfermode::kColor_Mode; | 181 return SkBlendMode::kColor; |
| 182 case FXDIB_BLEND_LUMINOSITY: | 182 case FXDIB_BLEND_LUMINOSITY: |
| 183 return SkXfermode::kLuminosity_Mode; | 183 return SkBlendMode::kLuminosity; |
| 184 case FXDIB_BLEND_NORMAL: | 184 case FXDIB_BLEND_NORMAL: |
| 185 default: | 185 default: |
| 186 return SkXfermode::kSrcOver_Mode; | 186 return SkBlendMode::kSrcOver; |
| 187 } | 187 } |
| 188 } | 188 } |
| 189 | 189 |
| 190 bool AddColors(const CPDF_ExpIntFunc* pFunc, SkTDArray<SkColor>* skColors) { | 190 bool AddColors(const CPDF_ExpIntFunc* pFunc, SkTDArray<SkColor>* skColors) { |
| 191 if (pFunc->CountInputs() != 1) | 191 if (pFunc->CountInputs() != 1) |
| 192 return false; | 192 return false; |
| 193 if (pFunc->m_Exponent != 1) | 193 if (pFunc->m_Exponent != 1) |
| 194 return false; | 194 return false; |
| 195 if (pFunc->m_nOrigOutputs != 3) | 195 if (pFunc->m_nOrigOutputs != 3) |
| 196 return false; | 196 return false; |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 383 uint32_t argb, | 383 uint32_t argb, |
| 384 int bitmap_alpha, | 384 int bitmap_alpha, |
| 385 int blend_type, | 385 int blend_type, |
| 386 SkPaint* paint) { | 386 SkPaint* paint) { |
| 387 paint->setAntiAlias(true); | 387 paint->setAntiAlias(true); |
| 388 if (isAlphaMask) { | 388 if (isAlphaMask) { |
| 389 paint->setColorFilter( | 389 paint->setColorFilter( |
| 390 SkColorFilter::MakeModeFilter(argb, SkXfermode::kSrc_Mode)); | 390 SkColorFilter::MakeModeFilter(argb, SkXfermode::kSrc_Mode)); |
| 391 } | 391 } |
| 392 // paint->setFilterQuality(kHigh_SkFilterQuality); | 392 // paint->setFilterQuality(kHigh_SkFilterQuality); |
| 393 paint->setXfermodeMode(GetSkiaBlendMode(blend_type)); | 393 paint->setBlendMode(GetSkiaBlendMode(blend_type)); |
| 394 paint->setAlpha(bitmap_alpha); | 394 paint->setAlpha(bitmap_alpha); |
| 395 } | 395 } |
| 396 | 396 |
| 397 bool Upsample(const CFX_DIBSource* pSource, | 397 bool Upsample(const CFX_DIBSource* pSource, |
| 398 std::unique_ptr<uint8_t, FxFreeDeleter>& dst8Storage, | 398 std::unique_ptr<uint8_t, FxFreeDeleter>& dst8Storage, |
| 399 std::unique_ptr<uint32_t, FxFreeDeleter>& dst32Storage, | 399 std::unique_ptr<uint32_t, FxFreeDeleter>& dst32Storage, |
| 400 SkColorTable** ctPtr, | 400 SkColorTable** ctPtr, |
| 401 SkBitmap* skBitmap, | 401 SkBitmap* skBitmap, |
| 402 int* widthPtr, | 402 int* widthPtr, |
| 403 int* heightPtr, | 403 int* heightPtr, |
| (...skipping 785 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1189 int blend_type) { | 1189 int blend_type) { |
| 1190 return FALSE; | 1190 return FALSE; |
| 1191 } | 1191 } |
| 1192 | 1192 |
| 1193 FX_BOOL CFX_SkiaDeviceDriver::FillRectWithBlend(const FX_RECT* pRect, | 1193 FX_BOOL CFX_SkiaDeviceDriver::FillRectWithBlend(const FX_RECT* pRect, |
| 1194 uint32_t fill_color, | 1194 uint32_t fill_color, |
| 1195 int blend_type) { | 1195 int blend_type) { |
| 1196 SkPaint spaint; | 1196 SkPaint spaint; |
| 1197 spaint.setAntiAlias(true); | 1197 spaint.setAntiAlias(true); |
| 1198 spaint.setColor(fill_color); | 1198 spaint.setColor(fill_color); |
| 1199 spaint.setXfermodeMode(GetSkiaBlendMode(blend_type)); | 1199 spaint.setBlendMode(GetSkiaBlendMode(blend_type)); |
| 1200 | 1200 |
| 1201 m_pCanvas->drawRect( | 1201 m_pCanvas->drawRect( |
| 1202 SkRect::MakeLTRB(pRect->left, pRect->top, pRect->right, pRect->bottom), | 1202 SkRect::MakeLTRB(pRect->left, pRect->top, pRect->right, pRect->bottom), |
| 1203 spaint); | 1203 spaint); |
| 1204 return TRUE; | 1204 return TRUE; |
| 1205 } | 1205 } |
| 1206 | 1206 |
| 1207 FX_BOOL CFX_SkiaDeviceDriver::DrawShading(const CPDF_ShadingPattern* pPattern, | 1207 FX_BOOL CFX_SkiaDeviceDriver::DrawShading(const CPDF_ShadingPattern* pPattern, |
| 1208 const CFX_Matrix* pMatrix, | 1208 const CFX_Matrix* pMatrix, |
| 1209 const FX_RECT& clip_rect, | 1209 const FX_RECT& clip_rect, |
| (...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1672 SkA32Assert(a); | 1672 SkA32Assert(a); |
| 1673 SkASSERT(r <= a); | 1673 SkASSERT(r <= a); |
| 1674 SkASSERT(g <= a); | 1674 SkASSERT(g <= a); |
| 1675 SkASSERT(b <= a); | 1675 SkASSERT(b <= a); |
| 1676 } | 1676 } |
| 1677 } | 1677 } |
| 1678 #endif | 1678 #endif |
| 1679 } | 1679 } |
| 1680 | 1680 |
| 1681 #endif | 1681 #endif |
| OLD | NEW |