| 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 "core/fxge/agg/fx_agg_driver.h" | 7 #include "core/fxge/agg/fx_agg_driver.h" |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 stroke.width(width); | 182 stroke.width(width); |
| 183 rasterizer.add_path_transformed(stroke, pObject2Device); | 183 rasterizer.add_path_transformed(stroke, pObject2Device); |
| 184 } | 184 } |
| 185 } | 185 } |
| 186 | 186 |
| 187 IFX_RenderDeviceDriver* IFX_RenderDeviceDriver::CreateFxgeDriver( | 187 IFX_RenderDeviceDriver* IFX_RenderDeviceDriver::CreateFxgeDriver( |
| 188 CFX_DIBitmap* pBitmap, | 188 CFX_DIBitmap* pBitmap, |
| 189 FX_BOOL bRgbByteOrder, | 189 FX_BOOL bRgbByteOrder, |
| 190 CFX_DIBitmap* pOriDevice, | 190 CFX_DIBitmap* pOriDevice, |
| 191 FX_BOOL bGroupKnockout) { | 191 FX_BOOL bGroupKnockout) { |
| 192 return new CFX_AggDeviceDriver(pBitmap, 0, bRgbByteOrder, pOriDevice, | 192 return new CFX_AggDeviceDriver(pBitmap, bRgbByteOrder, pOriDevice, |
| 193 bGroupKnockout); | 193 bGroupKnockout); |
| 194 } | 194 } |
| 195 | 195 |
| 196 CFX_AggDeviceDriver::CFX_AggDeviceDriver(CFX_DIBitmap* pBitmap, | 196 CFX_AggDeviceDriver::CFX_AggDeviceDriver(CFX_DIBitmap* pBitmap, |
| 197 int dither_bits, | |
| 198 FX_BOOL bRgbByteOrder, | 197 FX_BOOL bRgbByteOrder, |
| 199 CFX_DIBitmap* pOriDevice, | 198 CFX_DIBitmap* pOriDevice, |
| 200 FX_BOOL bGroupKnockout) { | 199 FX_BOOL bGroupKnockout) { |
| 201 m_pBitmap = pBitmap; | 200 m_pBitmap = pBitmap; |
| 202 m_DitherBits = dither_bits; | |
| 203 m_pClipRgn = nullptr; | 201 m_pClipRgn = nullptr; |
| 204 m_pPlatformBitmap = nullptr; | 202 m_pPlatformBitmap = nullptr; |
| 205 m_pPlatformGraphics = nullptr; | 203 m_pPlatformGraphics = nullptr; |
| 206 m_pDwRenderTartget = nullptr; | 204 m_pDwRenderTartget = nullptr; |
| 207 m_bRgbByteOrder = bRgbByteOrder; | 205 m_bRgbByteOrder = bRgbByteOrder; |
| 208 m_pOriDevice = pOriDevice; | 206 m_pOriDevice = pOriDevice; |
| 209 m_bGroupKnockout = bGroupKnockout; | 207 m_bGroupKnockout = bGroupKnockout; |
| 210 m_FillFlags = 0; | 208 m_FillFlags = 0; |
| 211 InitPlatform(); | 209 InitPlatform(); |
| 212 } | 210 } |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 263 flags |= FXRC_BITMASK_OUTPUT; | 261 flags |= FXRC_BITMASK_OUTPUT; |
| 264 } else { | 262 } else { |
| 265 flags |= FXRC_BYTEMASK_OUTPUT; | 263 flags |= FXRC_BYTEMASK_OUTPUT; |
| 266 } | 264 } |
| 267 } | 265 } |
| 268 if (m_pBitmap->IsCmykImage()) { | 266 if (m_pBitmap->IsCmykImage()) { |
| 269 flags |= FXRC_CMYK_OUTPUT; | 267 flags |= FXRC_CMYK_OUTPUT; |
| 270 } | 268 } |
| 271 return flags; | 269 return flags; |
| 272 } | 270 } |
| 273 case FXDC_DITHER_BITS: | |
| 274 return m_DitherBits; | |
| 275 } | 271 } |
| 276 return 0; | 272 return 0; |
| 277 } | 273 } |
| 278 | 274 |
| 279 void CFX_AggDeviceDriver::SaveState() { | 275 void CFX_AggDeviceDriver::SaveState() { |
| 280 CFX_ClipRgn* pClip = nullptr; | 276 CFX_ClipRgn* pClip = nullptr; |
| 281 if (m_pClipRgn) { | 277 if (m_pClipRgn) { |
| 282 pClip = new CFX_ClipRgn(*m_pClipRgn); | 278 pClip = new CFX_ClipRgn(*m_pClipRgn); |
| 283 } | 279 } |
| 284 m_StateStack.Add(pClip); | 280 m_StateStack.Add(pClip); |
| (...skipping 1491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1776 return; | 1772 return; |
| 1777 } | 1773 } |
| 1778 delete (CFX_ImageRenderer*)pHandle; | 1774 delete (CFX_ImageRenderer*)pHandle; |
| 1779 } | 1775 } |
| 1780 | 1776 |
| 1781 #ifndef _SKIA_SUPPORT_ | 1777 #ifndef _SKIA_SUPPORT_ |
| 1782 CFX_FxgeDevice::CFX_FxgeDevice() { | 1778 CFX_FxgeDevice::CFX_FxgeDevice() { |
| 1783 m_bOwnedBitmap = FALSE; | 1779 m_bOwnedBitmap = FALSE; |
| 1784 } | 1780 } |
| 1785 | 1781 |
| 1786 bool CFX_FxgeDevice::Attach(CFX_DIBitmap* pBitmap, | 1782 bool CFX_FxgeDevice::AttachEx(CFX_DIBitmap* pBitmap, |
| 1787 int dither_bits, | 1783 bool bRgbByteOrder, |
| 1788 bool bRgbByteOrder, | 1784 CFX_DIBitmap* pOriDevice, |
| 1789 CFX_DIBitmap* pOriDevice, | 1785 bool bGroupKnockout) { |
| 1790 bool bGroupKnockout) { | 1786 if (!pBitmap) |
| 1791 if (!pBitmap) { | |
| 1792 return false; | 1787 return false; |
| 1793 } | 1788 |
| 1794 SetBitmap(pBitmap); | 1789 SetBitmap(pBitmap); |
| 1795 IFX_RenderDeviceDriver* pDriver = new CFX_AggDeviceDriver( | 1790 IFX_RenderDeviceDriver* pDriver = new CFX_AggDeviceDriver( |
| 1796 pBitmap, dither_bits, bRgbByteOrder, pOriDevice, bGroupKnockout); | 1791 pBitmap, bRgbByteOrder, pOriDevice, bGroupKnockout); |
| 1797 SetDeviceDriver(pDriver); | 1792 SetDeviceDriver(pDriver); |
| 1798 return true; | 1793 return true; |
| 1799 } | 1794 } |
| 1800 | 1795 |
| 1801 bool CFX_FxgeDevice::Create(int width, | 1796 bool CFX_FxgeDevice::CreateEx(int width, |
| 1802 int height, | 1797 int height, |
| 1803 FXDIB_Format format, | 1798 FXDIB_Format format, |
| 1804 int dither_bits, | 1799 CFX_DIBitmap* pOriDevice) { |
| 1805 CFX_DIBitmap* pOriDevice) { | |
| 1806 m_bOwnedBitmap = true; | 1800 m_bOwnedBitmap = true; |
| 1807 CFX_DIBitmap* pBitmap = new CFX_DIBitmap; | 1801 CFX_DIBitmap* pBitmap = new CFX_DIBitmap; |
| 1808 if (!pBitmap->Create(width, height, format)) { | 1802 if (!pBitmap->Create(width, height, format)) { |
| 1809 delete pBitmap; | 1803 delete pBitmap; |
| 1810 return false; | 1804 return false; |
| 1811 } | 1805 } |
| 1812 SetBitmap(pBitmap); | 1806 SetBitmap(pBitmap); |
| 1813 IFX_RenderDeviceDriver* pDriver = | 1807 IFX_RenderDeviceDriver* pDriver = |
| 1814 new CFX_AggDeviceDriver(pBitmap, dither_bits, FALSE, pOriDevice, FALSE); | 1808 new CFX_AggDeviceDriver(pBitmap, FALSE, pOriDevice, FALSE); |
| 1815 SetDeviceDriver(pDriver); | 1809 SetDeviceDriver(pDriver); |
| 1816 return true; | 1810 return true; |
| 1817 } | 1811 } |
| 1818 | 1812 |
| 1819 CFX_FxgeDevice::~CFX_FxgeDevice() { | 1813 CFX_FxgeDevice::~CFX_FxgeDevice() { |
| 1820 if (m_bOwnedBitmap) { | 1814 if (m_bOwnedBitmap) { |
| 1821 delete GetBitmap(); | 1815 delete GetBitmap(); |
| 1822 } | 1816 } |
| 1823 } | 1817 } |
| 1824 #endif | 1818 #endif |
| OLD | NEW |