From e999af6bd3b7a9740fb5df88fe6a576097e405ef Mon Sep 17 00:00:00 2001 From: Martin Fouilleul Date: Wed, 5 Apr 2023 10:19:25 +0200 Subject: [PATCH] [mtl canvas] make diagonal checks inclusive in mtl_side_of_segment() --- examples/polygon/main.c | 8 ++++---- src/mtl_renderer.metal | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/polygon/main.c b/examples/polygon/main.c index 4b61cb1..7887b99 100644 --- a/examples/polygon/main.c +++ b/examples/polygon/main.c @@ -132,10 +132,10 @@ int main() mg_set_cap(MG_CAP_NONE); - mg_move_to(200, 200); - mg_line_to(300, 300); - mg_line_to(200, 400); - mg_line_to(100, 300); + mg_move_to(x+200, y+200); + mg_line_to(x+300, y+300); + mg_line_to(x+200, y+400); + mg_line_to(x+100, y+300); mg_close_path(); mg_set_color_rgba(1, 0, 0, 1); // mg_set_width(2); diff --git a/src/mtl_renderer.metal b/src/mtl_renderer.metal index 5e1e395..c32d055 100644 --- a/src/mtl_renderer.metal +++ b/src/mtl_renderer.metal @@ -229,8 +229,8 @@ int mtl_side_of_segment(float2 p, const device mg_mtl_segment* seg, mtl_log_cont float dx = p.x - seg->box.x; float dy = p.y - seg->box.y; - if( (seg->config == MG_MTL_BR && dy > alpha*dx) - ||(seg->config == MG_MTL_TR && dy < ofs - alpha*dx)) + if( (seg->config == MG_MTL_BR && dy >= alpha*dx) + ||(seg->config == MG_MTL_TR && dy <= ofs - alpha*dx)) { side = -1; }