| OLD | NEW |
| 1 /***************************************************************************/ | 1 /***************************************************************************/ |
| 2 /* */ | 2 /* */ |
| 3 /* cf2ft.c */ | 3 /* cf2ft.c */ |
| 4 /* */ | 4 /* */ |
| 5 /* FreeType Glue Component to Adobe's Interpreter (body). */ | 5 /* FreeType Glue Component to Adobe's Interpreter (body). */ |
| 6 /* */ | 6 /* */ |
| 7 /* Copyright 2013 Adobe Systems Incorporated. */ | 7 /* Copyright 2013 Adobe Systems Incorporated. */ |
| 8 /* */ | 8 /* */ |
| 9 /* This software, and all works of authorship, whether in source or */ | 9 /* This software, and all works of authorship, whether in source or */ |
| 10 /* object code form as indicated by the copyright notice(s) included */ | 10 /* object code form as indicated by the copyright notice(s) included */ |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 } | 136 } |
| 137 | 137 |
| 138 | 138 |
| 139 static void | 139 static void |
| 140 cf2_builder_lineTo( CF2_OutlineCallbacks callbacks, | 140 cf2_builder_lineTo( CF2_OutlineCallbacks callbacks, |
| 141 const CF2_CallbackParams params ) | 141 const CF2_CallbackParams params ) |
| 142 { | 142 { |
| 143 /* downcast the object pointer */ | 143 /* downcast the object pointer */ |
| 144 CF2_Outline outline = (CF2_Outline)callbacks; | 144 CF2_Outline outline = (CF2_Outline)callbacks; |
| 145 CFF_Builder* builder; | 145 CFF_Builder* builder; |
| 146 FT_Error error; |
| 146 | 147 |
| 147 | 148 |
| 148 FT_ASSERT( outline && outline->decoder ); | 149 FT_ASSERT( outline && outline->decoder ); |
| 149 FT_ASSERT( params->op == CF2_PathOpLineTo ); | 150 FT_ASSERT( params->op == CF2_PathOpLineTo ); |
| 150 | 151 |
| 151 builder = &outline->decoder->builder; | 152 builder = &outline->decoder->builder; |
| 152 | 153 |
| 153 if ( !builder->path_begun ) | 154 if ( !builder->path_begun ) |
| 154 { | 155 { |
| 155 /* record the move before the line; also check points and set */ | 156 /* record the move before the line; also check points and set */ |
| 156 /* `path_begun' */ | 157 /* `path_begun' */ |
| 157 cff_builder_start_point( builder, | 158 » » error = cff_builder_start_point(builder, |
| 158 params->pt0.x, | 159 params->pt0.x, |
| 159 params->pt0.y ); | 160 params->pt0.y ); |
| 161 if (callbacks && callbacks->error) *callbacks->error = error; |
| 162 if (error) return; |
| 160 } | 163 } |
| 161 | 164 |
| 162 /* `cff_builder_add_point1' includes a check_points call for one point */ | 165 /* `cff_builder_add_point1' includes a check_points call for one point */ |
| 163 cff_builder_add_point1( builder, | 166 » error = cff_builder_add_point1(builder, |
| 164 params->pt1.x, | 167 params->pt1.x, |
| 165 params->pt1.y ); | 168 params->pt1.y ); |
| 169 if (callbacks && callbacks->error) *callbacks->error = error; |
| 166 } | 170 } |
| 167 | 171 |
| 168 | 172 |
| 169 static void | 173 static void |
| 170 cf2_builder_cubeTo( CF2_OutlineCallbacks callbacks, | 174 cf2_builder_cubeTo( CF2_OutlineCallbacks callbacks, |
| 171 const CF2_CallbackParams params ) | 175 const CF2_CallbackParams params ) |
| 172 { | 176 { |
| 173 /* downcast the object pointer */ | 177 /* downcast the object pointer */ |
| 174 CF2_Outline outline = (CF2_Outline)callbacks; | 178 CF2_Outline outline = (CF2_Outline)callbacks; |
| 175 CFF_Builder* builder; | 179 CFF_Builder* builder; |
| 180 FT_Error error; |
| 176 | 181 |
| 177 | 182 |
| 178 FT_ASSERT( outline && outline->decoder ); | 183 FT_ASSERT( outline && outline->decoder ); |
| 179 FT_ASSERT( params->op == CF2_PathOpCubeTo ); | 184 FT_ASSERT( params->op == CF2_PathOpCubeTo ); |
| 180 | 185 |
| 181 builder = &outline->decoder->builder; | 186 builder = &outline->decoder->builder; |
| 182 | 187 |
| 183 if ( !builder->path_begun ) | 188 if ( !builder->path_begun ) |
| 184 { | 189 { |
| 185 /* record the move before the line; also check points and set */ | 190 /* record the move before the line; also check points and set */ |
| 186 /* `path_begun' */ | 191 /* `path_begun' */ |
| 187 cff_builder_start_point( builder, | 192 error = cff_builder_start_point( builder, |
| 188 params->pt0.x, | 193 params->pt0.x, |
| 189 params->pt0.y ); | 194 params->pt0.y ); |
| 195 if (callbacks && callbacks->error) *callbacks->error = error; |
| 196 if (error) return; |
| 190 } | 197 } |
| 191 | 198 |
| 192 /* prepare room for 3 points: 2 off-curve, 1 on-curve */ | 199 /* prepare room for 3 points: 2 off-curve, 1 on-curve */ |
| 193 cff_check_points( builder, 3 ); | 200 error = cff_check_points( builder, 3 ); |
| 201 » if (callbacks && callbacks->error) *callbacks->error = error; |
| 202 » if (error) return; |
| 194 | 203 |
| 195 cff_builder_add_point( builder, | 204 cff_builder_add_point( builder, |
| 196 params->pt1.x, | 205 params->pt1.x, |
| 197 params->pt1.y, 0 ); | 206 params->pt1.y, 0 ); |
| 198 cff_builder_add_point( builder, | 207 cff_builder_add_point( builder, |
| 199 params->pt2.x, | 208 params->pt2.x, |
| 200 params->pt2.y, 0 ); | 209 params->pt2.y, 0 ); |
| 201 cff_builder_add_point( builder, | 210 cff_builder_add_point( builder, |
| 202 params->pt3.x, | 211 params->pt3.x, |
| 203 params->pt3.y, 1 ); | 212 params->pt3.y, 1 ); |
| (...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 630 | 639 |
| 631 FT_ASSERT( decoder ); | 640 FT_ASSERT( decoder ); |
| 632 | 641 |
| 633 cff_builder_close_contour( &decoder->builder ); | 642 cff_builder_close_contour( &decoder->builder ); |
| 634 | 643 |
| 635 FT_GlyphLoader_Add( decoder->builder.loader ); | 644 FT_GlyphLoader_Add( decoder->builder.loader ); |
| 636 } | 645 } |
| 637 | 646 |
| 638 | 647 |
| 639 /* END */ | 648 /* END */ |
| OLD | NEW |