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 |