| Index: core/fxge/skia/fx_skia_device.cpp
|
| diff --git a/core/fxge/skia/fx_skia_device.cpp b/core/fxge/skia/fx_skia_device.cpp
|
| index 6b2e2a2623d93a8651e10f8e59007df44304d0f3..c7ed400739c4459d60c17a67cd30afc33dcc9e2b 100644
|
| --- a/core/fxge/skia/fx_skia_device.cpp
|
| +++ b/core/fxge/skia/fx_skia_device.cpp
|
| @@ -5,6 +5,9 @@
|
| #include "core/fxge/include/fx_ge.h"
|
|
|
| #if defined(_SKIA_SUPPORT_)
|
| +#include <algorithm>
|
| +#include <vector>
|
| +
|
| #include "core/fxcodec/include/fx_codec.h"
|
|
|
| #include "core/fpdfapi/fpdf_page/cpdf_shadingpattern.h"
|
| @@ -591,9 +594,7 @@ FX_BOOL CFX_SkiaDeviceDriver::DrawDeviceText(int nChars,
|
| CFX_FontCache* pCache,
|
| const CFX_Matrix* pObject2Device,
|
| FX_FLOAT font_size,
|
| - uint32_t color,
|
| - int alpha_flag,
|
| - void* pIccTransform) {
|
| + uint32_t color) {
|
| sk_sp<SkTypeface> typeface(SkSafeRef(pCache->GetDeviceCache(pFont)));
|
| SkPaint paint;
|
| paint.setAntiAlias(true);
|
| @@ -709,8 +710,6 @@ FX_BOOL CFX_SkiaDeviceDriver::DrawPath(
|
| uint32_t fill_color, // fill color
|
| uint32_t stroke_color, // stroke color
|
| int fill_mode, // fill mode, WINDING or ALTERNATE. 0 for not filled
|
| - int alpha_flag,
|
| - void* pIccTransform,
|
| int blend_type) {
|
| SkIRect rect;
|
| rect.set(0, 0, GetDeviceCaps(FXDC_PIXEL_WIDTH),
|
| @@ -722,9 +721,7 @@ FX_BOOL CFX_SkiaDeviceDriver::DrawPath(
|
| skMatrix.setIdentity();
|
| SkPaint skPaint;
|
| skPaint.setAntiAlias(true);
|
| - int stroke_alpha = FXGETFLAG_COLORTYPE(alpha_flag)
|
| - ? FXGETFLAG_ALPHA_STROKE(alpha_flag)
|
| - : FXARGB_A(stroke_color);
|
| + int stroke_alpha = FXARGB_A(stroke_color);
|
| if (pGraphState && stroke_alpha)
|
| PaintStroke(&skPaint, pGraphState, skMatrix);
|
| SkPath skPath = BuildPath(pPathData);
|
| @@ -762,11 +759,9 @@ FX_BOOL CFX_SkiaDeviceDriver::DrawPath(
|
| return TRUE;
|
| }
|
|
|
| -FX_BOOL CFX_SkiaDeviceDriver::FillRect(const FX_RECT* pRect,
|
| - uint32_t fill_color,
|
| - int alpha_flag,
|
| - void* pIccTransform,
|
| - int blend_type) {
|
| +FX_BOOL CFX_SkiaDeviceDriver::FillRectWithBlend(const FX_RECT* pRect,
|
| + uint32_t fill_color,
|
| + int blend_type) {
|
| SkPaint spaint;
|
| spaint.setAntiAlias(true);
|
| spaint.setColor(fill_color);
|
| @@ -924,22 +919,10 @@ FX_BOOL CFX_SkiaDeviceDriver::GetClipBox(FX_RECT* pRect) {
|
|
|
| FX_BOOL CFX_SkiaDeviceDriver::GetDIBits(CFX_DIBitmap* pBitmap,
|
| int left,
|
| - int top,
|
| - void* pIccTransform,
|
| - FX_BOOL bDEdge) {
|
| + int top) {
|
| if (!m_pBitmap || !m_pBitmap->GetBuffer())
|
| return TRUE;
|
| - if (bDEdge) {
|
| - if (m_bRgbByteOrder) {
|
| - RgbByteOrderTransferBitmap(pBitmap, 0, 0, pBitmap->GetWidth(),
|
| - pBitmap->GetHeight(), m_pBitmap, left, top);
|
| - } else {
|
| - return pBitmap->TransferBitmap(0, 0, pBitmap->GetWidth(),
|
| - pBitmap->GetHeight(), m_pBitmap, left, top,
|
| - pIccTransform);
|
| - }
|
| - return TRUE;
|
| - }
|
| +
|
| FX_RECT rect(left, top, left + pBitmap->GetWidth(),
|
| top + pBitmap->GetHeight());
|
| CFX_DIBitmap* pBack;
|
| @@ -947,6 +930,7 @@ FX_BOOL CFX_SkiaDeviceDriver::GetDIBits(CFX_DIBitmap* pBitmap,
|
| pBack = m_pOriDevice->Clone(&rect);
|
| if (!pBack)
|
| return TRUE;
|
| +
|
| pBack->CompositeBitmap(0, 0, pBack->GetWidth(), pBack->GetHeight(),
|
| m_pBitmap, 0, 0);
|
| } else {
|
| @@ -954,15 +938,16 @@ FX_BOOL CFX_SkiaDeviceDriver::GetDIBits(CFX_DIBitmap* pBitmap,
|
| if (!pBack)
|
| return TRUE;
|
| }
|
| +
|
| FX_BOOL bRet = TRUE;
|
| - left = left >= 0 ? 0 : left;
|
| - top = top >= 0 ? 0 : top;
|
| + left = std::min(left, 0);
|
| + top = std::min(top, 0);
|
| if (m_bRgbByteOrder) {
|
| RgbByteOrderTransferBitmap(pBitmap, 0, 0, rect.Width(), rect.Height(),
|
| pBack, left, top);
|
| } else {
|
| bRet = pBitmap->TransferBitmap(0, 0, rect.Width(), rect.Height(), pBack,
|
| - left, top, pIccTransform);
|
| + left, top, nullptr);
|
| }
|
| delete pBack;
|
| return bRet;
|
| @@ -973,17 +958,14 @@ FX_BOOL CFX_SkiaDeviceDriver::SetDIBits(const CFX_DIBSource* pBitmap,
|
| const FX_RECT* pSrcRect,
|
| int left,
|
| int top,
|
| - int blend_type,
|
| - int alpha_flag,
|
| - void* pIccTransform) {
|
| + int blend_type) {
|
| if (!m_pBitmap || !m_pBitmap->GetBuffer())
|
| return TRUE;
|
|
|
| CFX_Matrix m(pBitmap->GetWidth(), 0, 0, -pBitmap->GetHeight(), left,
|
| top + pBitmap->GetHeight());
|
| void* dummy;
|
| - return this->StartDIBits(pBitmap, 0xFF, argb, &m, 0, dummy, alpha_flag,
|
| - pIccTransform, blend_type);
|
| + return StartDIBits(pBitmap, 0xFF, argb, &m, 0, dummy, blend_type);
|
| }
|
|
|
| FX_BOOL CFX_SkiaDeviceDriver::StretchDIBits(const CFX_DIBSource* pSource,
|
| @@ -994,8 +976,6 @@ FX_BOOL CFX_SkiaDeviceDriver::StretchDIBits(const CFX_DIBSource* pSource,
|
| int dest_height,
|
| const FX_RECT* pClipRect,
|
| uint32_t flags,
|
| - int alpha_flag,
|
| - void* pIccTransform,
|
| int blend_type) {
|
| if (!m_pBitmap->GetBuffer())
|
| return TRUE;
|
| @@ -1007,8 +987,7 @@ FX_BOOL CFX_SkiaDeviceDriver::StretchDIBits(const CFX_DIBSource* pSource,
|
| pClipRect->right, pClipRect->top);
|
| m_pCanvas->clipRect(skClipRect);
|
| void* dummy;
|
| - FX_BOOL result = this->StartDIBits(pSource, 0xFF, argb, &m, 0, dummy,
|
| - alpha_flag, pIccTransform, blend_type);
|
| + FX_BOOL result = StartDIBits(pSource, 0xFF, argb, &m, 0, dummy, blend_type);
|
| m_pCanvas->restore();
|
|
|
| return result;
|
| @@ -1020,8 +999,6 @@ FX_BOOL CFX_SkiaDeviceDriver::StartDIBits(const CFX_DIBSource* pSource,
|
| const CFX_Matrix* pMatrix,
|
| uint32_t render_flags,
|
| void*& handle,
|
| - int alpha_flag,
|
| - void* pIccTransform,
|
| int blend_type) {
|
| DebugValidate(m_pBitmap, m_pOriDevice);
|
| SkColorType colorType = pSource->IsAlphaMask()
|
| @@ -1181,7 +1158,7 @@ CFX_FxgeDevice::~CFX_FxgeDevice() {
|
| }
|
|
|
| void CFX_FxgeDevice::PreMultiply() {
|
| - (static_cast<CFX_SkiaDeviceDriver*>(this->GetDeviceDriver()))->PreMultiply();
|
| + (static_cast<CFX_SkiaDeviceDriver*>(GetDeviceDriver()))->PreMultiply();
|
| }
|
|
|
| #endif
|
|
|