From 97becda83a1084b184470b535004b2929e32cd26 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 25 Apr 2024 02:32:01 +0200 Subject: [PATCH] Update icon rendering tool --- tools/icons/icon.cc | 11 +++++++++-- tools/icons/makefile | 38 ++++++++++++++++++++++++++++---------- 2 files changed, 37 insertions(+), 12 deletions(-) diff --git a/tools/icons/icon.cc b/tools/icons/icon.cc index 98cb21363b..7ccffe087f 100644 --- a/tools/icons/icon.cc +++ b/tools/icons/icon.cc @@ -196,7 +196,10 @@ main (int argc, char** argv) sq = ceil (sqrt (ArdourIcon::NoIcon + 3)); - cairo_surface_t* cs = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 2 * bd + wh * sq, 2 * bd + wh * sq); + int w = sq; + int h = ceil ((ArdourIcon::NoIcon + 3.0) / sq); + + cairo_surface_t* cs = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 2 * bd + wh * w, 2 * bd + wh * h); cairo_t* cr = cairo_create (cs); Gtkmm2ext::set_source_rgba (cr, bg_color); @@ -214,7 +217,7 @@ main (int argc, char** argv) if (bd > 0) { Gtkmm2ext::set_source_rgba (cr, fg_color); cairo_set_line_width (cr, 1); - cairo_rectangle (cr, bd - .5, bd - .5, 1 + wh * sq, 1 + wh * sq); + cairo_rectangle (cr, bd - .5, bd - .5, 1 + wh * w, 1 + wh * h); cairo_stroke (cr); cairo_set_font_size (cr, fs); for (int rc = 0; rc < sq; ++rc) { @@ -228,6 +231,10 @@ main (int argc, char** argv) ); cairo_show_text (cr, tmp); + if (rc >= h) { + continue; + } + snprintf (tmp, sizeof(tmp), "%d", rc + 1); cairo_text_extents (cr, tmp, &extents); cairo_move_to (cr, diff --git a/tools/icons/makefile b/tools/icons/makefile index 2f34777b84..f4abff2e2c 100644 --- a/tools/icons/makefile +++ b/tools/icons/makefile @@ -1,15 +1,33 @@ ICONFLAGS?=-g AD = ../.. -CXXFLAGS = -Wall +BL = ../../build/libs +TK = ../../build/libs/tk + +CXXFLAGS = -Wall -fsanitize=address + CPPFLAGS = -I $(AD)/libs/gtkmm2ext -I $(AD)/libs/widgets -I $(AD)/libs/pbd -I $(AD)/build/libs/pbd -CPPFLAGS += `pkg-config --cflags cairo cairomm-1.0 libxml-2.0 glibmm-2.4 gtkmm-2.4` +CPPFLAGS += -I $(AD)/libs/tk/ydkmm/ydkmm -I $(AD)/libs/tk/ydk/ydk/ +CPPFLAGS += -I $(AD)/libs/tk/ytkmm/ytkmm -I $(AD)/libs/tk/ytk/ytk/ +CPPFLAGS += -I $(AD)/libs/tk/ztkmm/ztkmm/ -I $(AD)/libs/tk/ztk/ztk/ +CPPFLAGS += -I $(AD)/libs/tk/ydk-pixbuf/ydk-pixbuf/ +CPPFLAGS += `pkg-config --cflags cairo pangomm-1.4 cairomm-1.0 libxml-2.0 glibmm-2.4 giomm-2.4` -LDFLAGS = -L$(AD)/build/libs/pbd -Wl,-rpath=$(AD)/build/libs/pbd -LDFLAGS += -L$(AD)/build/libs/gtkmm2ext -Wl,-rpath=$(AD)/build/libs/gtkmm2ext -LDFLAGS += -L$(AD)/build/libs/widgets -Wl,-rpath=$(AD)/build/libs/widgets +LDFLAGS = -L$(BL)/pbd -Wl,-rpath=$(BL)/pbd +LDFLAGS += -L$(BL)/gtkmm2ext -Wl,-rpath=$(BL)/gtkmm2ext +LDFLAGS += -L$(BL)/widgets -Wl,-rpath=$(BL)/widgets -LDLIBS = `pkg-config --libs cairo cairomm-1.0 libxml-2.0 glibmm-2.4` -lpbd -lgtkmm2ext -lwidgets +LDFLAGS += -L$(TK)/ztk -Wl,-rpath=$(TK)/ztk +LDFLAGS += -L$(TK)/ydk -Wl,-rpath=$(TK)/ydk +LDFLAGS += -L$(TK)/ytk -Wl,-rpath=$(TK)/ytk +LDFLAGS += -L$(TK)/ydk-pixbuf -Wl,-rpath=$(TK)/ydk-pixbuf +LDFLAGS += -L$(TK)/ztkmm -Wl,-rpath=$(TK)/ztkmm +LDFLAGS += -L$(TK)/ydkmm -Wl,-rpath=$(TK)/ydkmm +LDFLAGS += -L$(TK)/ytkmm -Wl,-rpath=$(TK)/ytkmm + +LDLIBS = `pkg-config --libs cairo cairomm-1.0 libxml-2.0 glibmm-2.4` +LDLIBS += -lztk -lydk -lytk -lydk-pixbuf -lztkmm -lydkmm -lytkmm +LDLIBS += -lpbd -lgtkmm2ext -lwidgets icon: icon.cc libwidgets $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ icon.cc $(LDLIBS) @@ -19,10 +37,10 @@ libwidgets: show: icon rm -f /tmp/ardour_icons-*.png - ./icon $(ICONFLAGS) -s 22 -o /tmp/ardour_icons-22.png - ./icon $(ICONFLAGS) -s 23 -o /tmp/ardour_icons-23.png - ./icon $(ICONFLAGS) -s 44 -o /tmp/ardour_icons-44.png - ./icon $(ICONFLAGS) -s 45 -o /tmp/ardour_icons-45.png + ASAN_OPTIONS=halt_on_error=0 LD_LIBRARY_PATH=$(TK)/ytkmm/:$(TK)/ydkmm:$(TK)/ytk:$(TK)/ydk:$(TK)/ztkmm:$(TK)/ydk-pixbuf:$(TK)/ztk ./icon $(ICONFLAGS) -s 22 -o /tmp/ardour_icons-22.png + ASAN_OPTIONS=halt_on_error=0 LD_LIBRARY_PATH=$(TK)/ytkmm/:$(TK)/ydkmm:$(TK)/ytk:$(TK)/ydk:$(TK)/ztkmm:$(TK)/ydk-pixbuf:$(TK)/ztk ./icon $(ICONFLAGS) -s 23 -o /tmp/ardour_icons-23.png + ASAN_OPTIONS=halt_on_error=0 LD_LIBRARY_PATH=$(TK)/ytkmm/:$(TK)/ydkmm:$(TK)/ytk:$(TK)/ydk:$(TK)/ztkmm:$(TK)/ydk-pixbuf:$(TK)/ztk ./icon $(ICONFLAGS) -s 44 -o /tmp/ardour_icons-44.png + ASAN_OPTIONS=halt_on_error=0 LD_LIBRARY_PATH=$(TK)/ytkmm/:$(TK)/ydkmm:$(TK)/ytk:$(TK)/ydk:$(TK)/ztkmm:$(TK)/ydk-pixbuf:$(TK)/ztk ./icon $(ICONFLAGS) -s 45 -o /tmp/ardour_icons-45.png convert -gravity center \ /tmp/ardour_icons-*.png \ -background none \