This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch master
in repository legacy-imlib2.
View the commit online.
commit d03876e35e846d604801445285af08df775ec73c
Author: Kim Woelders <[email protected]>
AuthorDate: Fri Jul 22 15:55:49 2022 +0200
Enable disabling text functions
To optionally reduce footprint.
---
configure.ac | 11 +++++++++++
src/bin/imlib2_colorspace.c | 12 ++++++++++--
src/bin/imlib2_show.c | 18 ++++++++++++++++--
src/bin/imlib2_test.c | 19 +++++++++++++++----
src/lib/Makefile.am | 16 +++++++++-------
src/lib/api.c | 13 +++++++++++--
src/lib/api.h | 10 +++++-----
7 files changed, 77 insertions(+), 22 deletions(-)
diff --git a/configure.ac b/configure.ac
index 48c8f93..4001d3b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -233,6 +233,16 @@ if test "$enable_filters" = "yes"; then
fi
AM_CONDITIONAL(ENABLE_FILTERS, test "$enable_filters" = "yes")
+AC_ARG_ENABLE([text],
+ [AS_HELP_STRING([--enable-text], [Enable text (TrueType font functions) @<:@default=yes@:>@])],
+ enable_text="$enableval",
+ enable_text="yes"
+)
+if test "$enable_text" = "yes"; then
+ AC_DEFINE(ENABLE_TEXT, 1, [Enable text functions])
+fi
+AM_CONDITIONAL(ENABLE_TEXT, test "$enable_text" = "yes")
+
AC_ARG_ENABLE([debug],
[AS_HELP_STRING([--enable-debug], [Enable debug features @<:@default=no@:>@])],
[
@@ -317,6 +327,7 @@ echo "Use X86 MMX for speed.....: $mmx"
echo "Use AMD64 for speed.......: $amd64"
echo
echo "Include filters...........: $enable_filters"
+echo "Include text functions....: $enable_text"
echo "Use visibility hiding.....: $enable_visibility_hiding"
echo
echo "Installation path.........: $prefix"
diff --git a/src/bin/imlib2_colorspace.c b/src/bin/imlib2_colorspace.c
index 4f5d583..a9e6ca9 100644
--- a/src/bin/imlib2_colorspace.c
+++ b/src/bin/imlib2_colorspace.c
@@ -12,13 +12,17 @@ Window win;
int
main(int argc, char **argv)
{
- int w, h, tw, th;
+ int w, h;
Imlib_Image im_bg = NULL;
XEvent ev;
KeySym keysym;
- Imlib_Font font;
Imlib_Color_Range range;
+#if ENABLE_TEXT
+ Imlib_Font font;
+ int tw, th;
+#endif
+
/**
* First tests to determine which rendering task to perform
*/
@@ -38,8 +42,10 @@ main(int argc, char **argv)
/**
* Start rendering
*/
+#if ENABLE_TEXT
imlib_set_font_cache_size(512 * 1024);
imlib_add_path_to_font_path(PACKAGE_DATA_DIR "/data/fonts");
+#endif
imlib_context_set_display(disp);
imlib_context_set_visual(DefaultVisual(disp, DefaultScreen(disp)));
imlib_context_set_colormap(DefaultColormap(disp, DefaultScreen(disp)));
@@ -86,6 +92,7 @@ main(int argc, char **argv)
imlib_context_set_color(0, 0, 0, 255);
imlib_image_draw_rectangle(20, 20, 560, 140);
imlib_image_draw_rectangle(20, 220, 560, 140);
+#if ENABLE_TEXT
font = imlib_load_font("notepad/15");
if (font)
{
@@ -101,6 +108,7 @@ main(int argc, char **argv)
imlib_text_draw(300 - tw / 2, 380 - th / 2, text);
imlib_free_font();
}
+#endif
/* Draw rectangle w/ RGBA gradient */
range = imlib_create_color_range();
diff --git a/src/bin/imlib2_show.c b/src/bin/imlib2_show.c
index 3dbc654..740fb45 100644
--- a/src/bin/imlib2_show.c
+++ b/src/bin/imlib2_show.c
@@ -44,7 +44,6 @@ main(int argc, char **argv)
struct timeval timev;
double sec;
const char *file = NULL;
- const char *fon = NULL, *str = NULL;
int root = 0;
int scale = 0;
@@ -72,11 +71,15 @@ main(int argc, char **argv)
#endif
Imlib_Color_Modifier colormod = 0;
ImlibPolygon poly, poly2, poly3;
+
+#if ENABLE_TEXT
+ const char *fon = NULL, *str = NULL;
int textdir = IMLIB_TEXT_TO_RIGHT;
- int xfdtest = 0;
int xfdcachetest = 0;
char *xfdfname = NULL;
int xfdloop = 1;
+ int xfdtest = 0;
+#endif
/* now we'll set the locale */
setlocale(LC_ALL, "");
@@ -115,11 +118,13 @@ main(int argc, char **argv)
("-font\t\tLoads a font. The parameter must follow the police_name/size format. Example: loading the grunge font at size 18 is : grunge/18.\n\t\tThe XFD font also can be specified. Ex. 'notepad/32,-*--24-*'.\n");
printf("-poly\t\tPerforms a poly test\n");
printf("The following options requires a file to work properly.\n");
+#if ENABLE_TEXT
printf("-textdir\t\tText Direction. 0: L to R, 1: R to L\n");
printf(" 2: U to D, 3: D to U, 4: angle\n");
printf("-xfdtest\t\tXFD Font queue test.\n");
printf
("-xfdcachetest <f> [<l>]\t\tXFD tFont cache test.\n\t\tThe file f is drawn l times\n");
+#endif
printf("-blast\t\tDisplays the file.\n");
printf("-loop\t\tScales down the image.\n");
printf("-blendtest\tPerforms a blending test on the file.\n");
@@ -206,6 +211,7 @@ main(int argc, char **argv)
i++;
imlib_set_color_usage(atoi(argv[i]));
}
+#if ENABLE_TEXT
else if (!strcmp(argv[i], "-font"))
{
i++;
@@ -232,6 +238,7 @@ main(int argc, char **argv)
i++;
textdir = atoi(argv[i]);
}
+#endif
else if (!strcmp(argv[i], "-rotate"))
rotate = 1;
#if ENABLE_FILTERS
@@ -787,6 +794,8 @@ main(int argc, char **argv)
int x, y;
XEvent ev;
KeySym keysym;
+
+#if ENABLE_TEXT
Imlib_Font fn = NULL;
struct font_hdr {
int type;
@@ -919,6 +928,7 @@ main(int argc, char **argv)
if (!fn)
fon = NULL;
}
+#endif /* ENABLE_TEXT */
imlib_context_set_progress_function(NULL);
imlib_context_set_progress_granularity(0);
@@ -960,11 +970,13 @@ main(int argc, char **argv)
goto quit;
break;
case ButtonRelease:
+#if ENABLE_TEXT
if (fon)
{
imlib_context_set_font(fn);
imlib_free_font();
}
+#endif
goto quit;
case MotionNotify:
x = ev.xmotion.x;
@@ -1167,6 +1179,7 @@ main(int argc, char **argv)
imlib_context_set_operation(IMLIB_OP_COPY);
}
+#if ENABLE_TEXT
if (xfdcachetest)
{
int l;
@@ -1284,6 +1297,7 @@ main(int argc, char **argv)
cx2, cy2, cw2, ch2);
}
}
+#endif /* ENABLE_TEXT */
imlib_context_set_blend(1);
if ((px != x) || (py != y))
{
diff --git a/src/bin/imlib2_test.c b/src/bin/imlib2_test.c
index 4762723..ad8d4aa 100644
--- a/src/bin/imlib2_test.c
+++ b/src/bin/imlib2_test.c
@@ -24,9 +24,6 @@ main(int argc, char **argv)
/* our virtual framebuffer image we draw into */
Imlib_Image buffer;
- /* a font */
- Imlib_Font font;
-
/* our color range */
Imlib_Color_Range range;
@@ -54,11 +51,13 @@ main(int argc, char **argv)
/* set our cache to 2 Mb so it doesn't have to go hit the disk as long as */
/* the images we use use less than 2Mb of RAM (that is uncompressed) */
imlib_set_cache_size(2048 * 1024);
+#if ENABLE_TEXT
/* set the font cache to 512Kb - again to avoid re-loading */
imlib_set_font_cache_size(512 * 1024);
/* add the ./ttfonts dir to our font path - you'll want a notepad.ttf */
/* in that dir for the text to display */
imlib_add_path_to_font_path(PACKAGE_DATA_DIR "/data/fonts");
+#endif
/* set the maximum number of colors to allocate for 8bpp and less to 128 */
imlib_set_color_usage(128);
/* dither for depths < 24bpp */
@@ -68,6 +67,7 @@ main(int argc, char **argv)
imlib_context_set_visual(DefaultVisual(disp, DefaultScreen(disp)));
imlib_context_set_colormap(DefaultColormap(disp, DefaultScreen(disp)));
imlib_context_set_drawable(win);
+
/* infinite event loop */
for (;;)
{
@@ -75,7 +75,13 @@ main(int argc, char **argv)
Imlib_Image image;
/* width and height values */
- int w, h, text_w, text_h;
+ int w, h;
+
+#if ENABLE_TEXT
+ /* a font */
+ Imlib_Font font;
+ int text_w, text_h;
+#endif
/* init our updates to empty */
updates = imlib_updates_init();
@@ -116,6 +122,7 @@ main(int argc, char **argv)
updates = imlib_update_append_rect(updates,
mouse_x - (w / 2),
mouse_y - (h / 2), w, h);
+#if ENABLE_TEXT
font = imlib_load_font("notepad/30");
if (font)
{
@@ -151,6 +158,8 @@ main(int argc, char **argv)
240 - (text_h / 2),
text_w, text_h);
}
+#endif /* ENABLE_TEXT */
+ break;
default:
/* any other events - do nothing */
break;
@@ -239,6 +248,7 @@ main(int argc, char **argv)
/* free it */
imlib_free_color_range();
+#if ENABLE_TEXT
/* draw text - centered with the current mouse x, y */
font = imlib_load_font("notepad/30");
if (font)
@@ -261,6 +271,7 @@ main(int argc, char **argv)
/* free the font */
imlib_free_font();
}
+#endif /* ENABLE_TEXT */
/* dont blend the image onto the drawable - slower */
imlib_context_set_blend(0);
diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index 4723b19..2492a9b 100644
--- a/src/lib/Makefile.am
+++ b/src/lib/Makefile.am
@@ -16,7 +16,6 @@ libImlib2_la_LIBADD =
libImlib2_la_SOURCES = \
api.c api.h \
api_obsolete.c \
-api_text.c \
asm.h \
asm_c.c asm_c.h \
blend.c blend.h \
@@ -29,11 +28,6 @@ draw_line.c \
draw_polygon.c \
draw_rectangle.c \
file.c file.h \
-font.h \
-font_draw.c \
-font_load.c \
-font_main.c \
-font_query.c \
grad.c grad.h \
image.c image.h \
image_tags.c \
@@ -54,8 +48,16 @@ dynamic_filters.c dynamic_filters.h \
filter.c filter.h \
script.c script.h
endif
-
+if ENABLE_TEXT
+libImlib2_la_SOURCES += \
+api_text.c \
+font.h \
+font_draw.c \
+font_load.c \
+font_main.c \
+font_query.c
libImlib2_la_LIBADD += $(FREETYPE_LIBS)
+endif
MMX_SRCS = \
asm_blend.S \
diff --git a/src/lib/api.c b/src/lib/api.c
index cf74876..d89f9e9 100644
--- a/src/lib/api.c
+++ b/src/lib/api.c
@@ -35,19 +35,26 @@ typedef struct _ImlibContextItem {
struct _ImlibContextItem *below;
} ImlibContextItem;
+#if ENABLE_TEXT
+#define DefaultContext_Text \
+ .direction = IMLIB_TEXT_TO_RIGHT, \
+ .angle = 0.0,
+#else
+#define DefaultContext_Text
+#endif
+
#define DefaultContext { \
.anti_alias = 1, \
.dither = 0, \
.blend = 1, \
.operation = (ImlibOp) IMLIB_OP_COPY, \
- .direction = IMLIB_TEXT_TO_RIGHT, \
- .angle = 0.0, \
.color.alpha = 255, \
.color.red = 255, \
.color.green = 255, \
.color.blue = 255, \
.pixel = 0xffffffff, \
.mask_alpha_threshold = 128, \
+ DefaultContext_Text \
}
/* A default context, only used for initialization */
@@ -131,11 +138,13 @@ __imlib_free_context(ImlibContext * context)
imlib_free_image();
ctx->image = NULL;
}
+#if ENABLE_TEXT
if (ctx->font)
{
imlib_free_font();
ctx->font = NULL;
}
+#endif
if (ctx->color_modifier)
{
imlib_free_color_modifier();
diff --git a/src/lib/api.h b/src/lib/api.h
index 24181b1..4f6c132 100644
--- a/src/lib/api.h
+++ b/src/lib/api.h
@@ -46,11 +46,6 @@ typedef struct {
char blend;
Imlib_Color_Modifier color_modifier;
ImlibOp operation;
-#if ENABLE_TEXT
- Imlib_Font font;
-#endif
- Imlib_Text_Direction direction;
- double angle;
Imlib_Color color;
uint32_t pixel;
Imlib_Color_Range color_range;
@@ -66,6 +61,11 @@ typedef struct {
#if ENABLE_FILTERS
Imlib_Filter filter;
#endif
+#if ENABLE_TEXT
+ Imlib_Font font;
+ Imlib_Text_Direction direction;
+ double angle;
+#endif
} ImlibContext;
extern ImlibContext *ctx;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.