On Thu Sep 7 08:50:18 2023 +0000, Dmitry Timoshkov wrote:
- if (stroke_style) - FIXME("Ignoring stroke style %p.\n", stroke_style); + if (stroke_style_impl) + { + if (stroke_style_impl->desc.transformType == D2D1_STROKE_TRANSFORM_TYPE_FIXED) + stroke_width /= context->drawing_state.transform.m11; + }
This looks incomplete, and definitely not enough to remove the fixme. Why is it only using m11 component? The idea of using m11 was suggested by geometry.c,::StrokeContainsPoint(). FIXME() can be left as is if desired. Where is it used like that? I don't see drawing_state.transform.m11 used anywhere by itself. FIXME should stay unconditionally, because we don't use any aspect of it, like dashes or join type.
Correct way I imagine is to generate a stroked geometry that would be taking into account everything style has configured, together with current state. Obviously I don't expect this to happen in your patch. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3752#note_44916