diff --git a/drivers/gles_common/rasterizer_canvas_batcher.h b/drivers/gles_common/rasterizer_canvas_batcher.h index fb573e661cef..c14234419900 100644 --- a/drivers/gles_common/rasterizer_canvas_batcher.h +++ b/drivers/gles_common/rasterizer_canvas_batcher.h @@ -1881,17 +1881,23 @@ PREAMBLE(bool)::_software_skin_poly(RasterizerCanvas::Item::CommandPolygon *p_po } } - // software transform with combined matrix? - if (p_fill_state.transform_mode != TM_NONE) { - for (int n = 0; n < num_verts; n++) { - Vector2 &dst_pos = pTemps[n]; - _software_transform_vertex(dst_pos, p_fill_state.transform_combined); - } - } - } // if bone format matches else { - // not supported + // not rigged properly, just copy the verts directly + for (int n = 0; n < num_verts; n++) { + const Vector2 &src_pos = p_poly->points[n]; + Vector2 &dst_pos = pTemps[n]; + + dst_pos = src_pos; + } + } + + // software transform with combined matrix? + if (p_fill_state.transform_mode != TM_NONE) { + for (int n = 0; n < num_verts; n++) { + Vector2 &dst_pos = pTemps[n]; + _software_transform_vertex(dst_pos, p_fill_state.transform_combined); + } } // output to the batch verts