| 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" |
| 11 | 11 |
| 12 #include "core/fpdfapi/fpdf_page/cpdf_shadingpattern.h" | 12 #include "core/fpdfapi/fpdf_page/cpdf_shadingpattern.h" |
| 13 #include "core/fpdfapi/fpdf_page/pageint.h" | 13 #include "core/fpdfapi/fpdf_page/pageint.h" |
| 14 #include "core/fpdfapi/fpdf_parser/cpdf_array.h" | 14 #include "core/fpdfapi/fpdf_parser/cpdf_array.h" |
| 15 #include "core/fpdfapi/fpdf_parser/cpdf_dictionary.h" | 15 #include "core/fpdfapi/fpdf_parser/cpdf_dictionary.h" |
| 16 #include "core/fpdfapi/fpdf_parser/cpdf_stream_acc.h" | 16 #include "core/fpdfapi/fpdf_parser/cpdf_stream_acc.h" |
| 17 #include "core/fxge/cfx_fxgedevice.h" | 17 #include "core/fxge/cfx_fxgedevice.h" |
| 18 #include "core/fxge/cfx_gemodule.h" | 18 #include "core/fxge/cfx_gemodule.h" |
| 19 #include "core/fxge/cfx_graphstatedata.h" | 19 #include "core/fxge/cfx_graphstatedata.h" |
| 20 #include "core/fxge/cfx_pathdata.h" | 20 #include "core/fxge/cfx_pathdata.h" |
| 21 #include "core/fxge/cfx_renderdevice.h" | 21 #include "core/fxge/cfx_renderdevice.h" |
| 22 #include "core/fxge/skia/fx_skia_device.h" | 22 #include "core/fxge/skia/fx_skia_device.h" |
| 23 | 23 #include "third_party/base/ptr_util.h" |
| 24 #include "third_party/skia/include/core/SkCanvas.h" | 24 #include "third_party/skia/include/core/SkCanvas.h" |
| 25 #include "third_party/skia/include/core/SkColorFilter.h" | 25 #include "third_party/skia/include/core/SkColorFilter.h" |
| 26 #include "third_party/skia/include/core/SkColorPriv.h" | 26 #include "third_party/skia/include/core/SkColorPriv.h" |
| 27 #include "third_party/skia/include/core/SkMaskFilter.h" | 27 #include "third_party/skia/include/core/SkMaskFilter.h" |
| 28 #include "third_party/skia/include/core/SkPaint.h" | 28 #include "third_party/skia/include/core/SkPaint.h" |
| 29 #include "third_party/skia/include/core/SkPath.h" | 29 #include "third_party/skia/include/core/SkPath.h" |
| 30 #include "third_party/skia/include/core/SkPictureRecorder.h" | 30 #include "third_party/skia/include/core/SkPictureRecorder.h" |
| 31 #include "third_party/skia/include/core/SkShader.h" | 31 #include "third_party/skia/include/core/SkShader.h" |
| 32 #include "third_party/skia/include/core/SkStream.h" | 32 #include "third_party/skia/include/core/SkStream.h" |
| 33 #include "third_party/skia/include/core/SkTypeface.h" | 33 #include "third_party/skia/include/core/SkTypeface.h" |
| (...skipping 1545 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1579 } | 1579 } |
| 1580 | 1580 |
| 1581 void CFX_FxgeDevice::Clear(uint32_t color) { | 1581 void CFX_FxgeDevice::Clear(uint32_t color) { |
| 1582 CFX_SkiaDeviceDriver* skDriver = | 1582 CFX_SkiaDeviceDriver* skDriver = |
| 1583 static_cast<CFX_SkiaDeviceDriver*>(GetDeviceDriver()); | 1583 static_cast<CFX_SkiaDeviceDriver*>(GetDeviceDriver()); |
| 1584 skDriver->Clear(color); | 1584 skDriver->Clear(color); |
| 1585 } | 1585 } |
| 1586 | 1586 |
| 1587 SkPictureRecorder* CFX_FxgeDevice::CreateRecorder(int size_x, int size_y) { | 1587 SkPictureRecorder* CFX_FxgeDevice::CreateRecorder(int size_x, int size_y) { |
| 1588 CFX_SkiaDeviceDriver* skDriver = new CFX_SkiaDeviceDriver(size_x, size_y); | 1588 CFX_SkiaDeviceDriver* skDriver = new CFX_SkiaDeviceDriver(size_x, size_y); |
| 1589 SetDeviceDriver(WrapUnique(skDriver)); | 1589 SetDeviceDriver(pdfium::WrapUnique(skDriver)); |
| 1590 return skDriver->GetRecorder(); | 1590 return skDriver->GetRecorder(); |
| 1591 } | 1591 } |
| 1592 | 1592 |
| 1593 bool CFX_FxgeDevice::Attach(CFX_DIBitmap* pBitmap, | 1593 bool CFX_FxgeDevice::Attach(CFX_DIBitmap* pBitmap, |
| 1594 bool bRgbByteOrder, | 1594 bool bRgbByteOrder, |
| 1595 CFX_DIBitmap* pOriDevice, | 1595 CFX_DIBitmap* pOriDevice, |
| 1596 bool bGroupKnockout) { | 1596 bool bGroupKnockout) { |
| 1597 if (!pBitmap) | 1597 if (!pBitmap) |
| 1598 return false; | 1598 return false; |
| 1599 SetBitmap(pBitmap); | 1599 SetBitmap(pBitmap); |
| 1600 SetDeviceDriver(WrapUnique(new CFX_SkiaDeviceDriver( | 1600 SetDeviceDriver(pdfium::MakeUnique<CFX_SkiaDeviceDriver>( |
| 1601 pBitmap, bRgbByteOrder, pOriDevice, bGroupKnockout))); | 1601 pBitmap, bRgbByteOrder, pOriDevice, bGroupKnockout)); |
| 1602 return true; | 1602 return true; |
| 1603 } | 1603 } |
| 1604 | 1604 |
| 1605 bool CFX_FxgeDevice::AttachRecorder(SkPictureRecorder* recorder) { | 1605 bool CFX_FxgeDevice::AttachRecorder(SkPictureRecorder* recorder) { |
| 1606 if (!recorder) | 1606 if (!recorder) |
| 1607 return false; | 1607 return false; |
| 1608 SetDeviceDriver(WrapUnique(new CFX_SkiaDeviceDriver(recorder))); | 1608 SetDeviceDriver(pdfium::MakeUnique<CFX_SkiaDeviceDriver>(recorder)); |
| 1609 return true; | 1609 return true; |
| 1610 } | 1610 } |
| 1611 | 1611 |
| 1612 bool CFX_FxgeDevice::Create(int width, | 1612 bool CFX_FxgeDevice::Create(int width, |
| 1613 int height, | 1613 int height, |
| 1614 FXDIB_Format format, | 1614 FXDIB_Format format, |
| 1615 CFX_DIBitmap* pOriDevice) { | 1615 CFX_DIBitmap* pOriDevice) { |
| 1616 m_bOwnedBitmap = TRUE; | 1616 m_bOwnedBitmap = TRUE; |
| 1617 CFX_DIBitmap* pBitmap = new CFX_DIBitmap; | 1617 CFX_DIBitmap* pBitmap = new CFX_DIBitmap; |
| 1618 if (!pBitmap->Create(width, height, format)) { | 1618 if (!pBitmap->Create(width, height, format)) { |
| 1619 delete pBitmap; | 1619 delete pBitmap; |
| 1620 return false; | 1620 return false; |
| 1621 } | 1621 } |
| 1622 SetBitmap(pBitmap); | 1622 SetBitmap(pBitmap); |
| 1623 SetDeviceDriver( | 1623 SetDeviceDriver(pdfium::MakeUnique<CFX_SkiaDeviceDriver>(pBitmap, FALSE, |
| 1624 WrapUnique(new CFX_SkiaDeviceDriver(pBitmap, FALSE, pOriDevice, FALSE))); | 1624 pOriDevice, FALSE)); |
| 1625 return true; | 1625 return true; |
| 1626 } | 1626 } |
| 1627 | 1627 |
| 1628 CFX_FxgeDevice::~CFX_FxgeDevice() { | 1628 CFX_FxgeDevice::~CFX_FxgeDevice() { |
| 1629 Flush(); | 1629 Flush(); |
| 1630 // call destructor of CFX_RenderDevice / CFX_SkiaDeviceDriver immediately | 1630 // call destructor of CFX_RenderDevice / CFX_SkiaDeviceDriver immediately |
| 1631 if (m_bOwnedBitmap && GetBitmap()) | 1631 if (m_bOwnedBitmap && GetBitmap()) |
| 1632 delete GetBitmap(); | 1632 delete GetBitmap(); |
| 1633 } | 1633 } |
| 1634 | 1634 |
| (...skipping 37 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 |