| 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 // TODO: This file uses intensive floating point operations, so it's NOT suitabl
e | 4 // TODO: This file uses intensive floating point operations, so it's NOT suitabl
e |
| 5 // for platforms like Symbian OS. We need to change to FIX format. | 5 // for platforms like Symbian OS. We need to change to FIX format. |
| 6 //---------------------------------------------------------------------------- | 6 //---------------------------------------------------------------------------- |
| 7 //---------------------------------------------------------------------------- | 7 //---------------------------------------------------------------------------- |
| 8 // Anti-Grain Geometry - Version 2.3 | 8 // Anti-Grain Geometry - Version 2.3 |
| 9 // Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com) | 9 // Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com) |
| 10 // | 10 // |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 m_max_blocks(0), | 44 m_max_blocks(0), |
| 45 m_coord_blocks(0), | 45 m_coord_blocks(0), |
| 46 m_cmd_blocks(0), | 46 m_cmd_blocks(0), |
| 47 m_iterator(0) | 47 m_iterator(0) |
| 48 { | 48 { |
| 49 } | 49 } |
| 50 void path_storage::allocate_block(unsigned nb) | 50 void path_storage::allocate_block(unsigned nb) |
| 51 { | 51 { |
| 52 if(nb >= m_max_blocks) { | 52 if(nb >= m_max_blocks) { |
| 53 FX_FLOAT** new_coords = | 53 FX_FLOAT** new_coords = |
| 54 FX_Alloc( FX_FLOAT*, (m_max_blocks + block_pool) * 2); | 54 FX_Alloc2D(FX_FLOAT*, m_max_blocks + block_pool, 2); |
| 55 if (!new_coords) { | |
| 56 return; | |
| 57 } | |
| 58 unsigned char** new_cmds = | 55 unsigned char** new_cmds = |
| 59 (unsigned char**)(new_coords + m_max_blocks + block_pool); | 56 (unsigned char**)(new_coords + m_max_blocks + block_pool); |
| 60 if(m_coord_blocks) { | 57 if(m_coord_blocks) { |
| 61 FXSYS_memcpy32(new_coords, | 58 FXSYS_memcpy32(new_coords, |
| 62 m_coord_blocks, | 59 m_coord_blocks, |
| 63 m_max_blocks * sizeof(FX_FLOAT*)); | 60 m_max_blocks * sizeof(FX_FLOAT*)); |
| 64 FXSYS_memcpy32(new_cmds, | 61 FXSYS_memcpy32(new_cmds, |
| 65 m_cmd_blocks, | 62 m_cmd_blocks, |
| 66 m_max_blocks * sizeof(unsigned char*)); | 63 m_max_blocks * sizeof(unsigned char*)); |
| 67 FX_Free(m_coord_blocks); | 64 FX_Free(m_coord_blocks); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 95 } | 92 } |
| 96 void path_storage::end_poly() | 93 void path_storage::end_poly() |
| 97 { | 94 { |
| 98 if(m_total_vertices) { | 95 if(m_total_vertices) { |
| 99 if(is_vertex(command(m_total_vertices - 1))) { | 96 if(is_vertex(command(m_total_vertices - 1))) { |
| 100 add_vertex(0, 0, path_cmd_end_poly | path_flags_close); | 97 add_vertex(0, 0, path_cmd_end_poly | path_flags_close); |
| 101 } | 98 } |
| 102 } | 99 } |
| 103 } | 100 } |
| 104 } | 101 } |
| OLD | NEW |