| 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 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 FX_Free(m_coord_blocks); | 64 FX_Free(m_coord_blocks); |
| 65 } | 65 } |
| 66 m_coord_blocks = new_coords; | 66 m_coord_blocks = new_coords; |
| 67 m_cmd_blocks = new_cmds; | 67 m_cmd_blocks = new_cmds; |
| 68 m_max_blocks += block_pool; | 68 m_max_blocks += block_pool; |
| 69 } | 69 } |
| 70 m_coord_blocks[nb] = | 70 m_coord_blocks[nb] = |
| 71 FX_Alloc( FX_FLOAT, block_size * 2 + | 71 FX_Alloc( FX_FLOAT, block_size * 2 + |
| 72 block_size / | 72 block_size / |
| 73 (sizeof(FX_FLOAT) / sizeof(unsigned char))); | 73 (sizeof(FX_FLOAT) / sizeof(unsigned char))); |
| 74 if (!m_coord_blocks[nb]) { | |
| 75 return; | |
| 76 } | |
| 77 m_cmd_blocks[nb] = | 74 m_cmd_blocks[nb] = |
| 78 (unsigned char*)(m_coord_blocks[nb] + block_size * 2); | 75 (unsigned char*)(m_coord_blocks[nb] + block_size * 2); |
| 79 m_total_blocks++; | 76 m_total_blocks++; |
| 80 } | 77 } |
| 81 void path_storage::rewind(unsigned path_id) | 78 void path_storage::rewind(unsigned path_id) |
| 82 { | 79 { |
| 83 m_iterator = path_id; | 80 m_iterator = path_id; |
| 84 } | 81 } |
| 85 void path_storage::curve4(FX_FLOAT x_ctrl1, FX_FLOAT y_ctrl1, | 82 void path_storage::curve4(FX_FLOAT x_ctrl1, FX_FLOAT y_ctrl1, |
| 86 FX_FLOAT x_ctrl2, FX_FLOAT y_ctrl2, | 83 FX_FLOAT x_ctrl2, FX_FLOAT y_ctrl2, |
| 87 FX_FLOAT x_to, FX_FLOAT y_to) | 84 FX_FLOAT x_to, FX_FLOAT y_to) |
| 88 { | 85 { |
| 89 add_vertex(x_ctrl1, y_ctrl1, path_cmd_curve4); | 86 add_vertex(x_ctrl1, y_ctrl1, path_cmd_curve4); |
| 90 add_vertex(x_ctrl2, y_ctrl2, path_cmd_curve4); | 87 add_vertex(x_ctrl2, y_ctrl2, path_cmd_curve4); |
| 91 add_vertex(x_to, y_to, path_cmd_curve4); | 88 add_vertex(x_to, y_to, path_cmd_curve4); |
| 92 } | 89 } |
| 93 void path_storage::end_poly() | 90 void path_storage::end_poly() |
| 94 { | 91 { |
| 95 if(m_total_vertices) { | 92 if(m_total_vertices) { |
| 96 if(is_vertex(command(m_total_vertices - 1))) { | 93 if(is_vertex(command(m_total_vertices - 1))) { |
| 97 add_vertex(0, 0, path_cmd_end_poly | path_flags_close); | 94 add_vertex(0, 0, path_cmd_end_poly | path_flags_close); |
| 98 } | 95 } |
| 99 } | 96 } |
| 100 } | 97 } |
| 101 } | 98 } |
| OLD | NEW |