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 1492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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::Attach(CFX_DIBitmap* pBitmap, |
1787 int dither_bits, | |
1788 bool bRgbByteOrder, | 1783 bool bRgbByteOrder, |
1789 CFX_DIBitmap* pOriDevice, | 1784 CFX_DIBitmap* pOriDevice, |
1790 bool bGroupKnockout) { | 1785 bool bGroupKnockout) { |
1791 if (!pBitmap) { | 1786 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::Create(int width, |
1802 int height, | 1797 int height, |
1803 FXDIB_Format format, | 1798 FXDIB_Format format, |
1804 int dither_bits, | |
1805 CFX_DIBitmap* pOriDevice) { | 1799 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 |