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 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
277 } | 277 } |
278 | 278 |
279 void CFX_AggDeviceDriver::SaveState() { | 279 void CFX_AggDeviceDriver::SaveState() { |
280 CFX_ClipRgn* pClip = NULL; | 280 CFX_ClipRgn* pClip = NULL; |
281 if (m_pClipRgn) { | 281 if (m_pClipRgn) { |
282 pClip = new CFX_ClipRgn(*m_pClipRgn); | 282 pClip = new CFX_ClipRgn(*m_pClipRgn); |
283 } | 283 } |
284 m_StateStack.Add(pClip); | 284 m_StateStack.Add(pClip); |
285 } | 285 } |
286 | 286 |
287 void CFX_AggDeviceDriver::RestoreState(FX_BOOL bKeepSaved) { | 287 void CFX_AggDeviceDriver::RestoreState(bool bKeepSaved) { |
288 if (m_StateStack.GetSize() == 0) { | 288 delete m_pClipRgn; |
Lei Zhang
2016/05/26 01:50:10
A little more cleanup here.
| |
289 delete m_pClipRgn; | 289 m_pClipRgn = nullptr; |
290 m_pClipRgn = NULL; | 290 |
291 int size = m_StateStack.GetSize(); | |
292 if (!size) | |
291 return; | 293 return; |
292 } | 294 |
293 CFX_ClipRgn* pSavedClip = m_StateStack[m_StateStack.GetSize() - 1]; | 295 CFX_ClipRgn* pSavedClip = m_StateStack[size - 1]; |
294 delete m_pClipRgn; | |
295 m_pClipRgn = NULL; | |
296 if (bKeepSaved) { | 296 if (bKeepSaved) { |
297 if (pSavedClip) { | 297 if (pSavedClip) { |
298 m_pClipRgn = new CFX_ClipRgn(*pSavedClip); | 298 m_pClipRgn = new CFX_ClipRgn(*pSavedClip); |
299 } | 299 } |
300 } else { | 300 } else { |
301 m_StateStack.RemoveAt(m_StateStack.GetSize() - 1); | 301 m_StateStack.RemoveAt(size - 1); |
302 m_pClipRgn = pSavedClip; | 302 m_pClipRgn = pSavedClip; |
303 } | 303 } |
304 } | 304 } |
305 | 305 |
306 void CFX_AggDeviceDriver::SetClipMask(agg::rasterizer_scanline_aa& rasterizer) { | 306 void CFX_AggDeviceDriver::SetClipMask(agg::rasterizer_scanline_aa& rasterizer) { |
307 FX_RECT path_rect(rasterizer.min_x(), rasterizer.min_y(), | 307 FX_RECT path_rect(rasterizer.min_x(), rasterizer.min_y(), |
308 rasterizer.max_x() + 1, rasterizer.max_y() + 1); | 308 rasterizer.max_x() + 1, rasterizer.max_y() + 1); |
309 path_rect.Intersect(m_pClipRgn->GetBox()); | 309 path_rect.Intersect(m_pClipRgn->GetBox()); |
310 CFX_DIBitmapRef mask; | 310 CFX_DIBitmapRef mask; |
311 CFX_DIBitmap* pThisLayer = mask.New(); | 311 CFX_DIBitmap* pThisLayer = mask.New(); |
(...skipping 1519 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1831 SetDeviceDriver(pDriver); | 1831 SetDeviceDriver(pDriver); |
1832 return true; | 1832 return true; |
1833 } | 1833 } |
1834 | 1834 |
1835 CFX_FxgeDevice::~CFX_FxgeDevice() { | 1835 CFX_FxgeDevice::~CFX_FxgeDevice() { |
1836 if (m_bOwnedBitmap) { | 1836 if (m_bOwnedBitmap) { |
1837 delete GetBitmap(); | 1837 delete GetBitmap(); |
1838 } | 1838 } |
1839 } | 1839 } |
1840 #endif | 1840 #endif |
OLD | NEW |