diff --git a/LICENSE.txt b/LICENSE.txt index 9757001..69054bd 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2016 - 2022 Viktor Chlumsky +Copyright (c) 2016 - 2023 Viktor Chlumsky Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/main.cpp b/main.cpp index 3eee08c..9df722e 100644 --- a/main.cpp +++ b/main.cpp @@ -2,7 +2,7 @@ /* * MULTI-CHANNEL SIGNED DISTANCE FIELD GENERATOR - standalone console program * -------------------------------------------------------------------------- - * A utility by Viktor Chlumsky, (c) 2014 - 2022 + * A utility by Viktor Chlumsky, (c) 2014 - 2023 * */ @@ -141,7 +141,7 @@ static FontHandle * loadVarFont(FreetypeHandle *library, const char *filename) { while (*filename && *filename != '?') buffer.push_back(*filename++); FontHandle *font = loadFont(library, buffer.c_str()); - if (*filename++ == '?') { + if (font && *filename++ == '?') { do { buffer.clear(); while (*filename && *filename != '=') @@ -299,7 +299,11 @@ static const char * writeOutput(const BitmapConstRef &bitmap, const ch #define SUFFIX_UNDERLINE #endif -static const char *helpText = +static const char * const versionText = + "MSDFgen v" MSDFGEN_VERSION_STRING TITLE_SUFFIX "\n" + "(c) 2016 - " STRINGIZE(MSDFGEN_COPYRIGHT_YEAR) " Viktor Chlumsky"; + +static const char * const helpText = "\n" "Multi-channel signed distance field generator by Viktor Chlumsky v" MSDFGEN_VERSION_STRING TITLE_SUFFIX "\n" "------------------------------------------------------------------" VERSION_UNDERLINE SUFFIX_UNDERLINE "\n" @@ -406,6 +410,8 @@ static const char *helpText = "\tRenders an image preview without flattening the color channels.\n" " -translate \n" "\tSets the translation of the shape in shape units.\n" + " -version\n" + "\tPrints the version of the program.\n" " -windingpreprocess\n" "\tAttempts to fix only the contour windings assuming no self-intersections and even-odd fill rule.\n" " -yflip\n" @@ -520,6 +526,10 @@ int main(int argc, const char * const *argv) { #define ARG_MODE(s, m) if (!strcmp(arg, s)) { mode = m; ++argPos; continue; } #define SET_FORMAT(fmt, ext) do { format = fmt; if (!outputSpecified) output = "output." ext; } while (false) + // Accept arguments prefixed with -- instead of - + if (arg[0] == '-' && arg[1] == '-') + ++arg; + ARG_MODE("sdf", SINGLE) ARG_MODE("psdf", PSEUDO) ARG_MODE("msdf", MULTI) @@ -851,11 +861,15 @@ int main(int argc, const char * const *argv) { argPos += 2; continue; } + ARG_CASE("-version", 0) { + puts(versionText); + return 0; + } ARG_CASE("-help", 0) { puts(helpText); return 0; } - printf("Unknown setting or insufficient parameters: %s\n", arg); + printf("Unknown setting or insufficient parameters: %s\n", argv[argPos]); suggestHelp = true; ++argPos; } diff --git a/msdfgen-ext.h b/msdfgen-ext.h index 5bbe717..791a950 100644 --- a/msdfgen-ext.h +++ b/msdfgen-ext.h @@ -4,7 +4,7 @@ /* * MULTI-CHANNEL SIGNED DISTANCE FIELD GENERATOR * --------------------------------------------- - * A utility by Viktor Chlumsky, (c) 2014 - 2022 + * A utility by Viktor Chlumsky, (c) 2014 - 2023 * * The extension module provides ways to easily load input and save output using popular formats. * diff --git a/msdfgen.h b/msdfgen.h index c9ae4f5..1ff4115 100644 --- a/msdfgen.h +++ b/msdfgen.h @@ -4,7 +4,7 @@ /* * MULTI-CHANNEL SIGNED DISTANCE FIELD GENERATOR * --------------------------------------------- - * A utility by Viktor Chlumsky, (c) 2014 - 2022 + * A utility by Viktor Chlumsky, (c) 2014 - 2023 * * The technique used to generate multi-channel distance fields in this code * has been developed by Viktor Chlumsky in 2014 for his master's thesis,