@@ -433,13 +433,9 @@ jm_lineart_stroke_path(fz_context *ctx, fz_device *dev_, const fz_path *path,
433433 jm_lineart_device *dev = (jm_lineart_device *)dev_;
434434 PyObject *out = dev->out ;
435435 int i;
436- {
437- float scale = sqrtf (ctm.a * ctm.a + ctm.b * ctm.b );
438- if (scale < 1e-9f )
439- scale = sqrtf (ctm.c * ctm.c + ctm.d * ctm.d );
440- if (scale < 1e-9f )
441- scale = 1 .0f ;
442- dev_pathfactor = scale;
436+ dev_pathfactor = 1 ;
437+ if (fz_abs (ctm.a ) == fz_abs (ctm.d )) {
438+ dev_pathfactor = fz_abs (ctm.a );
443439 }
444440 trace_device_ctm = ctm; // fz_concat(ctm, trace_device_ptm);
445441 path_type = STROKE_PATH;
@@ -453,7 +449,7 @@ jm_lineart_stroke_path(fz_context *ctx, fz_device *dev_, const fz_path *path,
453449 DICT_SETITEMSTR_DROP (dev_pathdict, " color" , jm_lineart_color (ctx, colorspace, color));
454450 DICT_SETITEM_DROP (dev_pathdict, dictkey_width, Py_BuildValue (" f" , dev_pathfactor * stroke->linewidth ));
455451 DICT_SETITEMSTR_DROP (dev_pathdict, " lineCap" , Py_BuildValue (" iii" , stroke->start_cap , stroke->dash_cap , stroke->end_cap ));
456- DICT_SETITEMSTR_DROP (dev_pathdict, " lineJoin" , Py_BuildValue (" f" , ( float ) stroke->linejoin ));
452+ DICT_SETITEMSTR_DROP (dev_pathdict, " lineJoin" , Py_BuildValue (" f" , dev_pathfactor * stroke->linejoin ));
457453 if (!PyDict_GetItemString (dev_pathdict, " closePath" )) {
458454 DICT_SETITEMSTR_DROP (dev_pathdict, " closePath" , JM_BOOL (0 ));
459455 }
0 commit comments