From 19dc0131f3e8cac5294ec5fe777811d3a55cb9e1 Mon Sep 17 00:00:00 2001 From: Andrew Kravchuk Date: Tue, 17 Sep 2024 20:52:58 +0200 Subject: [PATCH 1/3] allegro5: take image region into account for NK_COMMAND_IMAGE --- demo/allegro5/nuklear_allegro5.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/demo/allegro5/nuklear_allegro5.h b/demo/allegro5/nuklear_allegro5.h index 239f7c11f..b63e360ca 100644 --- a/demo/allegro5/nuklear_allegro5.h +++ b/demo/allegro5/nuklear_allegro5.h @@ -324,7 +324,10 @@ nk_allegro5_render() } break; case NK_COMMAND_IMAGE: { const struct nk_command_image *i = (const struct nk_command_image *)cmd; - al_draw_bitmap_region(i->img.handle.ptr, 0, 0, i->w, i->h, i->x, i->y, 0); + al_draw_scaled_bitmap(i->img.handle.ptr, + i->img.region[0], i->img.region[1], + i->img.region[2], i->img.region[3], + i->x, i->y, i->w, i->h, 0); } break; case NK_COMMAND_RECT_MULTI_COLOR: default: break; From e4901c5358cea73f80119a2318b3ad5ab0452041 Mon Sep 17 00:00:00 2001 From: Andrew Kravchuk Date: Wed, 18 Sep 2024 06:46:14 +0200 Subject: [PATCH 2/3] allegro5: correctly handle zero region in NK_COMMAND_IMAGE --- demo/allegro5/nuklear_allegro5.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/demo/allegro5/nuklear_allegro5.h b/demo/allegro5/nuklear_allegro5.h index b63e360ca..61b51af83 100644 --- a/demo/allegro5/nuklear_allegro5.h +++ b/demo/allegro5/nuklear_allegro5.h @@ -324,9 +324,11 @@ nk_allegro5_render() } break; case NK_COMMAND_IMAGE: { const struct nk_command_image *i = (const struct nk_command_image *)cmd; + nk_ushort w = i->img.region[2], + h = i->img.region[3]; al_draw_scaled_bitmap(i->img.handle.ptr, i->img.region[0], i->img.region[1], - i->img.region[2], i->img.region[3], + w ? w : i->w, h ? h : i->h, i->x, i->y, i->w, i->h, 0); } break; case NK_COMMAND_RECT_MULTI_COLOR: From a02e1824b881f50f70bf22695114b7821bbfd12f Mon Sep 17 00:00:00 2001 From: Andrew Kravchuk Date: Wed, 18 Sep 2024 09:07:28 +0200 Subject: [PATCH 3/3] allegro5: correctly handle subimages NK_COMMAND_IMAGE --- demo/allegro5/nuklear_allegro5.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/demo/allegro5/nuklear_allegro5.h b/demo/allegro5/nuklear_allegro5.h index 61b51af83..e5e2b99f9 100644 --- a/demo/allegro5/nuklear_allegro5.h +++ b/demo/allegro5/nuklear_allegro5.h @@ -324,12 +324,17 @@ nk_allegro5_render() } break; case NK_COMMAND_IMAGE: { const struct nk_command_image *i = (const struct nk_command_image *)cmd; - nk_ushort w = i->img.region[2], + nk_ushort + x = i->img.region[0], + y = i->img.region[1], + w = i->img.region[2], h = i->img.region[3]; + if(w == 0 && h == 0) + { + x = i->x; y = i->y; w = i->w; h = i->h; + } al_draw_scaled_bitmap(i->img.handle.ptr, - i->img.region[0], i->img.region[1], - w ? w : i->w, h ? h : i->h, - i->x, i->y, i->w, i->h, 0); + x, y, w, h, i->x, i->y, i->w, i->h, 0); } break; case NK_COMMAND_RECT_MULTI_COLOR: default: break;