| OLD | NEW |
| 1 | 1 |
| 2 //---------------------------------------------------------------------------- | 2 //---------------------------------------------------------------------------- |
| 3 // XYQ: 2006-01-22 Copied from AGG project. | 3 // XYQ: 2006-01-22 Copied from AGG project. |
| 4 // This file uses only integer data, so it's suitable for all platforms. | 4 // This file uses only integer data, so it's suitable for all platforms. |
| 5 //---------------------------------------------------------------------------- | 5 //---------------------------------------------------------------------------- |
| 6 //---------------------------------------------------------------------------- | 6 //---------------------------------------------------------------------------- |
| 7 // Anti-Grain Geometry - Version 2.3 | 7 // Anti-Grain Geometry - Version 2.3 |
| 8 // Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com) | 8 // Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com) |
| 9 // | 9 // |
| 10 // Permission to copy, use, modify, sell and distribute this software | 10 // Permission to copy, use, modify, sell and distribute this software |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 m_min_x = 0x7FFFFFFF; | 110 m_min_x = 0x7FFFFFFF; |
| 111 m_min_y = 0x7FFFFFFF; | 111 m_min_y = 0x7FFFFFFF; |
| 112 m_max_x = -0x7FFFFFFF; | 112 m_max_x = -0x7FFFFFFF; |
| 113 m_max_y = -0x7FFFFFFF; | 113 m_max_y = -0x7FFFFFFF; |
| 114 } | 114 } |
| 115 void outline_aa::allocate_block() | 115 void outline_aa::allocate_block() |
| 116 { | 116 { |
| 117 if(m_cur_block >= m_num_blocks) { | 117 if(m_cur_block >= m_num_blocks) { |
| 118 if(m_num_blocks >= m_max_blocks) { | 118 if(m_num_blocks >= m_max_blocks) { |
| 119 cell_aa** new_cells = FX_Alloc( cell_aa*, m_max_blocks + cell_block_
pool); | 119 cell_aa** new_cells = FX_Alloc( cell_aa*, m_max_blocks + cell_block_
pool); |
| 120 if (!new_cells) { | |
| 121 return; | |
| 122 } | |
| 123 if(m_cells) { | 120 if(m_cells) { |
| 124 FXSYS_memcpy32(new_cells, m_cells, m_max_blocks * sizeof(cell_aa
*)); | 121 FXSYS_memcpy32(new_cells, m_cells, m_max_blocks * sizeof(cell_aa
*)); |
| 125 FX_Free(m_cells); | 122 FX_Free(m_cells); |
| 126 } | 123 } |
| 127 m_cells = new_cells; | 124 m_cells = new_cells; |
| 128 m_max_blocks += cell_block_pool; | 125 m_max_blocks += cell_block_pool; |
| 129 } | 126 } |
| 130 m_cells[m_num_blocks++] = FX_Alloc(cell_aa, cell_block_size); | 127 m_cells[m_num_blocks++] = FX_Alloc(cell_aa, cell_block_size); |
| 131 if (!m_cells[m_num_blocks - 1]) { | |
| 132 return; | |
| 133 } | |
| 134 } | 128 } |
| 135 m_cur_cell_ptr = m_cells[m_cur_block++]; | 129 m_cur_cell_ptr = m_cells[m_cur_block++]; |
| 136 } | 130 } |
| 137 AGG_INLINE void outline_aa::add_cur_cell() | 131 AGG_INLINE void outline_aa::add_cur_cell() |
| 138 { | 132 { |
| 139 if(m_cur_cell.area | m_cur_cell.cover) { | 133 if(m_cur_cell.area | m_cur_cell.cover) { |
| 140 if((m_num_cells & cell_block_mask) == 0) { | 134 if((m_num_cells & cell_block_mask) == 0) { |
| 141 if(m_num_blocks >= cell_block_limit) { | 135 if(m_num_blocks >= cell_block_limit) { |
| 142 return; | 136 return; |
| 143 } | 137 } |
| (...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 486 } | 480 } |
| 487 for(i = 0; i < m_sorted_y.size(); i++) { | 481 for(i = 0; i < m_sorted_y.size(); i++) { |
| 488 const sorted_y& cur_y = m_sorted_y[i]; | 482 const sorted_y& cur_y = m_sorted_y[i]; |
| 489 if(cur_y.num) { | 483 if(cur_y.num) { |
| 490 qsort_cells(m_sorted_cells.data() + cur_y.start, cur_y.num); | 484 qsort_cells(m_sorted_cells.data() + cur_y.start, cur_y.num); |
| 491 } | 485 } |
| 492 } | 486 } |
| 493 m_sorted = true; | 487 m_sorted = true; |
| 494 } | 488 } |
| 495 } | 489 } |
| OLD | NEW |