diff options
author | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2021-08-29 06:19:44 +0000 |
---|---|---|
committer | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2021-08-29 06:19:44 +0000 |
commit | 0de5be92a3a0fe27e8521fc4de67e19b1057842e (patch) | |
tree | e93a390fe965486cca19498840cb8d7904252fec /Build/source/libs/freetype2/freetype-src/include | |
parent | 27ce96eea3f1190bd744448cfa149e8d767af95a (diff) |
revert freetype to 2.10.4
git-svn-id: svn://tug.org/texlive/trunk@60360 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/freetype2/freetype-src/include')
98 files changed, 507 insertions, 2748 deletions
diff --git a/Build/source/libs/freetype2/freetype-src/include/dlg/dlg.h b/Build/source/libs/freetype2/freetype-src/include/dlg/dlg.h deleted file mode 100644 index 3a7abf8f051..00000000000 --- a/Build/source/libs/freetype2/freetype-src/include/dlg/dlg.h +++ /dev/null @@ -1,270 +0,0 @@ -// Copyright (c) 2019 nyorain -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt - -#ifndef INC_DLG_DLG_H_ -#define INC_DLG_DLG_H_ - -#include <stdbool.h> -#include <stddef.h> -#include <stdlib.h> -#include <stdarg.h> -#include <stdio.h> - -// Hosted at https://github.com/nyorain/dlg. -// There are examples and documentation. -// Issue reports and contributions appreciated. - -// - CONFIG - -// Define this macro to make all dlg macros have no effect at all -// #define DLG_DISABLE - -// the log/assertion levels below which logs/assertions are ignored -// defaulted depending on the NDEBUG macro -#ifndef DLG_LOG_LEVEL - #ifdef NDEBUG - #define DLG_LOG_LEVEL dlg_level_warn - #else - #define DLG_LOG_LEVEL dlg_level_trace - #endif -#endif - -#ifndef DLG_ASSERT_LEVEL - #ifdef NDEBUG - #define DLG_ASSERT_LEVEL dlg_level_warn - #else - #define DLG_ASSERT_LEVEL dlg_level_trace - #endif -#endif - -// the assert level of dlg_assert -#ifndef DLG_DEFAULT_ASSERT - #define DLG_DEFAULT_ASSERT dlg_level_error -#endif - -// evaluated to the 'file' member in dlg_origin -#ifndef DLG_FILE - #define DLG_FILE dlg__strip_root_path(__FILE__, DLG_BASE_PATH) - - // the base path stripped from __FILE__. If you don't override DLG_FILE set this to - // the project root to make 'main.c' from '/some/bullshit/main.c' - #ifndef DLG_BASE_PATH - #define DLG_BASE_PATH "" - #endif -#endif - -// Default tags applied to all logs/assertions (in the defining file). -// Must be in format ```#define DLG_DEFAULT_TAGS "tag1", "tag2"``` -// or just nothing (as defaulted here) -#ifndef DLG_DEFAULT_TAGS - #define DLG_DEFAULT_TAGS_TERM NULL -#else - #define DLG_DEFAULT_TAGS_TERM DLG_DEFAULT_TAGS, NULL -#endif - -// The function used for formatting. Can have any signature, but must be callable with -// the arguments the log/assertions macros are called with. Must return a const char* -// that will not be freed by dlg, the formatting function must keep track of it. -// The formatting function might use dlg_thread_buffer or a custom owned buffer. -// The returned const char* has to be valid until the dlg log/assertion ends. -// Usually a c function with ... (i.e. using va_list) or a variadic c++ template do -// allow formatting. -#ifndef DLG_FMT_FUNC - #define DLG_FMT_FUNC dlg__printf_format -#endif - -// Only overwrite (i.e. predefine) this if you know what you are doing. -// On windows this is used to add the dllimport specified. -// If you are using the static version of dlg (on windows) define -// DLG_STATIC before including dlg.h -#ifndef DLG_API - #if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(DLG_STATIC) - #define DLG_API __declspec(dllimport) - #else - #define DLG_API - #endif -#endif - -// - utility - -// two methods needed since cplusplus does not support compound literals -// and c does not support uniform initialization/initializer lists -#ifdef __cplusplus - #include <initializer_list> - #define DLG_CREATE_TAGS(...) std::initializer_list<const char*> \ - {DLG_DEFAULT_TAGS_TERM, __VA_ARGS__, NULL}.begin() -#else - #define DLG_CREATE_TAGS(...) (const char* const[]) {DLG_DEFAULT_TAGS_TERM, __VA_ARGS__, NULL} -#endif - -#ifdef __GNUC__ - #define DLG_PRINTF_ATTRIB(a, b) __attribute__ ((format (printf, a, b))) -#else - #define DLG_PRINTF_ATTRIB(a, b) -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -// Represents the importance of a log/assertion call. -enum dlg_level { - dlg_level_trace = 0, // temporary used debug, e.g. to check if control reaches function - dlg_level_debug, // general debugging, prints e.g. all major events - dlg_level_info, // general useful information - dlg_level_warn, // warning, something went wrong but might have no (really bad) side effect - dlg_level_error, // something really went wrong; expect serious issues - dlg_level_fatal // critical error; application is likely to crash/exit -}; - -// Holds various information associated with a log/assertion call. -// Forwarded to the output handler. -struct dlg_origin { - const char* file; - unsigned int line; - const char* func; - enum dlg_level level; - const char** tags; // null-terminated - const char* expr; // assertion expression, otherwise null -}; - -// Type of the output handler, see dlg_set_handler. -typedef void(*dlg_handler)(const struct dlg_origin* origin, const char* string, void* data); - -#ifdef DLG_DISABLE - // Tagged/Untagged logging with variable level - // Tags must always be in the format `("tag1", "tag2")` (including brackets) - #define dlg_log(level, ...) - #define dlg_logt(level, tags, ...) - - // Dynamic level assert macros in various versions for additional arguments - #define dlg_assertl(level, expr) // assert without tags/message - #define dlg_assertlt(level, tags, expr) // assert with tags - #define dlg_assertlm(level, expr, ...) // assert with message - #define dlg_assertltm(level, tags, expr, ...) // assert with tags & message - - // Sets the handler that is responsible for formatting and outputting log calls. - // This function is not thread safe and the handler is set globally. - // The handler itself must not change dlg tags or call a dlg macro (if it - // does so, the provided string or tags array in 'origin' might get invalid). - // The handler can also be used for various other things such as dealing - // with failed assertions or filtering calls based on the passed tags. - // The default handler is dlg_default_output (see its doc for more info). - // If using c++ make sure the registered handler cannot throw e.g. by - // wrapping everything into a try-catch blog. - inline void dlg_set_handler(dlg_handler handler, void* data) { - (void) handler; - (void) data; - } - - // Returns the currently active dlg handler and sets `data` to - // its user data pointer. `data` must not be NULL. - // Useful to create handler chains. - // This function is not threadsafe, i.e. retrieving the handler while - // changing it from another thread is unsafe. - // See `dlg_set_handler`. - inline dlg_handler dlg_get_handler(void** data) { - *data = NULL; - return NULL; - } - - // The default output handler. - // Only use this to reset the output handler, prefer to use - // dlg_generic_output (from output.h) which this function simply calls. - // It also flushes the stream used and correctly outputs even from multiple threads. - inline void dlg_default_output(const struct dlg_origin* o, const char* str, void* data) { - (void) o; - (void) str; - (void) data; - } - - // Adds the given tag associated with the given function to the thread specific list. - // If func is not NULL the tag will only applied to calls from the same function. - // Remove the tag again calling dlg_remove_tag (with exactly the same pointers!). - // Does not check if the tag is already present. - inline void dlg_add_tag(const char* tag, const char* func) { - (void) tag; - (void) func; - } - - // Removes a tag added with dlg_add_tag (has no effect for tags no present). - // The pointers must be exactly the same pointers that were supplied to dlg_add_tag, - // this function will not check using strcmp. When the same tag/func combination - // is added multiple times, this function remove exactly one candidate, it is - // undefined which. Returns whether a tag was found (and removed). - inline bool dlg_remove_tag(const char* tag, const char* func) { - (void) tag; - (void) func; - return true; - } - - // Returns the thread-specific buffer and its size for dlg. - // The buffer should only be used by formatting functions. - // The buffer can be reallocated and the size changed, just make sure - // to update both values correctly. - inline char** dlg_thread_buffer(size_t** size) { - (void) size; - return NULL; - } - -#else // DLG_DISABLE - #define dlg_log(level, ...) if(level >= DLG_LOG_LEVEL) \ - dlg__do_log(level, DLG_CREATE_TAGS(NULL), DLG_FILE, __LINE__, __func__, \ - DLG_FMT_FUNC(__VA_ARGS__), NULL) - #define dlg_logt(level, tags, ...) if(level >= DLG_LOG_LEVEL) \ - dlg__do_log(level, DLG_CREATE_TAGS tags, DLG_FILE, __LINE__, __func__, \ - DLG_FMT_FUNC(__VA_ARGS__), NULL) - - #define dlg_assertl(level, expr) if(level >= DLG_ASSERT_LEVEL && !(expr)) \ - dlg__do_log(level, DLG_CREATE_TAGS(NULL), DLG_FILE, __LINE__, __func__, NULL, #expr) - #define dlg_assertlt(level, tags, expr) if(level >= DLG_ASSERT_LEVEL && !(expr)) \ - dlg__do_log(level, DLG_CREATE_TAGS tags, DLG_FILE, __LINE__, __func__, NULL, #expr) - #define dlg_assertlm(level, expr, ...) if(level >= DLG_ASSERT_LEVEL && !(expr)) \ - dlg__do_log(level, DLG_CREATE_TAGS(NULL), DLG_FILE, __LINE__, __func__, \ - DLG_FMT_FUNC(__VA_ARGS__), #expr) - #define dlg_assertltm(level, tags, expr, ...) if(level >= DLG_ASSERT_LEVEL && !(expr)) \ - dlg__do_log(level, DLG_CREATE_TAGS tags, DLG_FILE, __LINE__, \ - __func__, DLG_FMT_FUNC(__VA_ARGS__), #expr) - - DLG_API void dlg_set_handler(dlg_handler handler, void* data); - DLG_API dlg_handler dlg_get_handler(void** data); - DLG_API void dlg_default_output(const struct dlg_origin*, const char* string, void*); - DLG_API void dlg_add_tag(const char* tag, const char* func); - DLG_API bool dlg_remove_tag(const char* tag, const char* func); - DLG_API char** dlg_thread_buffer(size_t** size); - - // - Private interface: not part of the abi/api but needed in macros - - // Formats the given format string and arguments as printf would, uses the thread buffer. - DLG_API const char* dlg__printf_format(const char* format, ...) DLG_PRINTF_ATTRIB(1, 2); - DLG_API void dlg__do_log(enum dlg_level lvl, const char* const*, const char*, int, - const char*, const char*, const char*); - DLG_API const char* dlg__strip_root_path(const char* file, const char* base); -#endif // DLG_DISABLE - -// Untagged leveled logging -#define dlg_trace(...) dlg_log(dlg_level_trace, __VA_ARGS__) -#define dlg_debug(...) dlg_log(dlg_level_debug, __VA_ARGS__) -#define dlg_info(...) dlg_log(dlg_level_info, __VA_ARGS__) -#define dlg_warn(...) dlg_log(dlg_level_warn, __VA_ARGS__) -#define dlg_error(...) dlg_log(dlg_level_error, __VA_ARGS__) -#define dlg_fatal(...) dlg_log(dlg_level_fatal, __VA_ARGS__) - -// Tagged leveled logging -#define dlg_tracet(tags, ...) dlg_logt(dlg_level_trace, tags, __VA_ARGS__) -#define dlg_debugt(tags, ...) dlg_logt(dlg_level_debug, tags, __VA_ARGS__) -#define dlg_infot(tags, ...) dlg_logt(dlg_level_info, tags, __VA_ARGS__) -#define dlg_warnt(tags, ...) dlg_logt(dlg_level_warn, tags, __VA_ARGS__) -#define dlg_errort(tags, ...) dlg_logt(dlg_level_error, tags, __VA_ARGS__) -#define dlg_fatalt(tags, ...) dlg_logt(dlg_level_fatal, tags, __VA_ARGS__) - -// Assert macros useing DLG_DEFAULT_ASSERT as level -#define dlg_assert(expr) dlg_assertl(DLG_DEFAULT_ASSERT, expr) -#define dlg_assertt(tags, expr) dlg_assertlt(DLG_DEFAULT_ASSERT, tags, expr) -#define dlg_assertm(expr, ...) dlg_assertlm(DLG_DEFAULT_ASSERT, expr, __VA_ARGS__) -#define dlg_asserttm(tags, expr, ...) dlg_assertltm(DLG_DEFAULT_ASSERT, tags, expr, __VA_ARGS__) - -#ifdef __cplusplus -} -#endif - -#endif // header guard diff --git a/Build/source/libs/freetype2/freetype-src/include/dlg/output.h b/Build/source/libs/freetype2/freetype-src/include/dlg/output.h deleted file mode 100644 index 453e4a56138..00000000000 --- a/Build/source/libs/freetype2/freetype-src/include/dlg/output.h +++ /dev/null @@ -1,172 +0,0 @@ -// Copyright (c) 2019 nyorain -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt - -#ifndef INC_DLG_OUTPUT_H_ -#define INC_DLG_OUTPUT_H_ - -#include <dlg/dlg.h> -#include <stdio.h> - -#ifdef __cplusplus -extern "C" { -#endif - -// Text style -enum dlg_text_style { - dlg_text_style_reset = 0, - dlg_text_style_bold = 1, - dlg_text_style_dim = 2, - dlg_text_style_italic = 3, - dlg_text_style_underline = 4, - dlg_text_style_blink = 5, - dlg_text_style_rblink = 6, - dlg_text_style_reversed = 7, - dlg_text_style_conceal = 8, - dlg_text_style_crossed = 9, - dlg_text_style_none, -}; - -// Text color -enum dlg_color { - dlg_color_black = 0, - dlg_color_red, - dlg_color_green, - dlg_color_yellow, - dlg_color_blue, - dlg_color_magenta, - dlg_color_cyan, - dlg_color_gray, - dlg_color_reset = 9, - - dlg_color_black2 = 60, - dlg_color_red2, - dlg_color_green2, - dlg_color_yellow2, - dlg_color_blue2, - dlg_color_magenta2, - dlg_color_cyan2, - dlg_color_gray2, - - dlg_color_none = 69, -}; - -struct dlg_style { - enum dlg_text_style style; - enum dlg_color fg; - enum dlg_color bg; -}; - -// Like fprintf but fixes utf-8 output to console on windows. -// On non-windows sytems just uses the corresponding standard library -// functions. On windows, if dlg was compiled with the win_console option, -// will first try to output it in a way that allows the default console -// to display utf-8. If that fails, will fall back to the standard -// library functions. -DLG_API int dlg_fprintf(FILE* stream, const char* format, ...) DLG_PRINTF_ATTRIB(2, 3); -DLG_API int dlg_vfprintf(FILE* stream, const char* format, va_list list); - -// Like dlg_printf, but also applies the given style to this output. -// The style will always be applied (using escape sequences), independent of the given stream. -// On windows escape sequences don't work out of the box, see dlg_win_init_ansi(). -DLG_API int dlg_styled_fprintf(FILE* stream, struct dlg_style style, - const char* format, ...) DLG_PRINTF_ATTRIB(3, 4); - -// Features to output from the generic output handler. -// Some features might have only an effect in the specializations. -enum dlg_output_feature { - dlg_output_tags = 1, // output tags list - dlg_output_time = 2, // output time of log call (hour:minute:second) - dlg_output_style = 4, // whether to use the supplied styles - dlg_output_func = 8, // output function - dlg_output_file_line = 16, // output file:line, - dlg_output_newline = 32, // output a newline at the end - dlg_output_threadsafe = 64, // locks stream before printing - dlg_output_time_msecs = 128 // output micro seconds (ms on windows) -}; - -// The default level-dependent output styles. The array values represent the styles -// to be used for the associated level (i.e. [0] for trace level). -DLG_API extern const struct dlg_style dlg_default_output_styles[6]; - -// Generic output function. Used by the default output handler and might be useful -// for custom output handlers (that don't want to manually format the output). -// Will call the given output func with the given data (and format + args to print) -// for everything it has to print in printf format. -// See also the *_stream and *_buf specializations for common usage. -// The given output function must not be NULL. -typedef void(*dlg_generic_output_handler)(void* data, const char* format, ...); -DLG_API void dlg_generic_output(dlg_generic_output_handler output, void* data, - unsigned int features, const struct dlg_origin* origin, const char* string, - const struct dlg_style styles[6]); - -// Generic output function, using a format string instead of feature flags. -// Use following conversion characters: -// %h - output the time in H:M:S format -// %m - output the time in milliseconds -// %t - output the full list of tags, comma separated -// %f - output the function name noted in the origin -// %o - output the file:line of the origin -// %s - print the appropriate style escape sequence. -// %r - print the escape sequence to reset the style. -// %c - The content of the log/assert -// %% - print the '%' character -// Only the above specified conversion characters are valid, the rest are -// written as it is. -DLG_API void dlg_generic_outputf(dlg_generic_output_handler output, void* data, - const char* format_string, const struct dlg_origin* origin, - const char* string, const struct dlg_style styles[6]); - -// Generic output function. Used by the default output handler and might be useful -// for custom output handlers (that don't want to manually format the output). -// If stream is NULL uses stdout. -// Automatically uses dlg_fprintf to assure correct utf-8 even on windows consoles. -// Locks the stream (i.e. assures threadsafe access) when the associated feature -// is passed (note that stdout/stderr might still mix from multiple threads). -DLG_API void dlg_generic_output_stream(FILE* stream, unsigned int features, - const struct dlg_origin* origin, const char* string, - const struct dlg_style styles[6]); -DLG_API void dlg_generic_outputf_stream(FILE* stream, const char* format_string, - const struct dlg_origin* origin, const char* string, - const struct dlg_style styles[6], bool lock_stream); - -// Generic output function (see dlg_generic_output) that uses a buffer instead of -// a stream. buf must at least point to *size bytes. Will set *size to the number -// of bytes written (capped to the given size), if buf == NULL will set *size -// to the needed size. The size parameter must not be NULL. -DLG_API void dlg_generic_output_buf(char* buf, size_t* size, unsigned int features, - const struct dlg_origin* origin, const char* string, - const struct dlg_style styles[6]); -DLG_API void dlg_generic_outputf_buf(char* buf, size_t* size, const char* format_string, - const struct dlg_origin* origin, const char* string, - const struct dlg_style styles[6]); - -// Returns if the given stream is a tty. Useful for custom output handlers -// e.g. to determine whether to use color. -// NOTE: Due to windows limitations currently returns false for wsl ttys. -DLG_API bool dlg_is_tty(FILE* stream); - -// Returns the null-terminated escape sequence for the given style into buf. -// Undefined behvaiour if any member of style has a value outside its enum range (will -// probably result in a buffer overflow or garbage being printed). -// If all member of style are 'none' will simply nullterminate the first buf char. -DLG_API void dlg_escape_sequence(struct dlg_style style, char buf[12]); - -// The reset style escape sequence. -DLG_API extern const char* const dlg_reset_sequence; - -// Just returns true without other effect on non-windows systems or if dlg -// was compiled without the win_console option. -// On windows tries to set the console mode to ansi to make escape sequences work. -// This works only on newer windows 10 versions. Returns false on error. -// Only the first call to it will have an effect, following calls just return the result. -// The function is threadsafe. Automatically called by the default output handler. -// This will only be able to set the mode for the stdout and stderr consoles, so -// other streams to consoles will still not work. -DLG_API bool dlg_win_init_ansi(void); - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif // header guard diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftconfig.h b/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftconfig.h index 65effcbe63e..b464e0b7895 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftconfig.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftconfig.h @@ -4,7 +4,7 @@ * * ANSI-specific configuration file (specification only). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftheader.h b/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftheader.h index e46d314e334..28b5cc60cfa 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftheader.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftheader.h @@ -4,7 +4,7 @@ * * Build macros of the FreeType 2 library. * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftmodule.h b/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftmodule.h index d4ba3f784d1..b5c4b1ee583 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftmodule.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftmodule.h @@ -19,14 +19,12 @@ FT_USE_MODULE( FT_Driver_ClassRec, pfr_driver_class ) FT_USE_MODULE( FT_Driver_ClassRec, t42_driver_class ) FT_USE_MODULE( FT_Driver_ClassRec, winfnt_driver_class ) FT_USE_MODULE( FT_Driver_ClassRec, pcf_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class ) FT_USE_MODULE( FT_Module_Class, psaux_module_class ) FT_USE_MODULE( FT_Module_Class, psnames_module_class ) FT_USE_MODULE( FT_Module_Class, pshinter_module_class ) +FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class ) FT_USE_MODULE( FT_Module_Class, sfnt_module_class ) FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class ) -FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class ) -FT_USE_MODULE( FT_Renderer_Class, ft_sdf_renderer_class ) -FT_USE_MODULE( FT_Renderer_Class, ft_bitmap_sdf_renderer_class ) +FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class ) /* EOF */ diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftoption.h b/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftoption.h index 4227fd376e4..097f19b8a5b 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftoption.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftoption.h @@ -4,7 +4,7 @@ * * User-selectable configuration macros (specification only). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, @@ -105,7 +105,8 @@ FT_BEGIN_HEADER * * ``` * FREETYPE_PROPERTIES=truetype:interpreter-version=35 \ - * cff:no-stem-darkening=1 + * cff:no-stem-darkening=1 \ + * autofitter:warping=1 * ``` * */ @@ -432,23 +433,6 @@ FT_BEGIN_HEADER /************************************************************************** * - * Logging - * - * Compiling FreeType in debug or trace mode makes FreeType write error - * and trace log messages to `stderr`. Enabling this macro - * automatically forces the `FT_DEBUG_LEVEL_ERROR` and - * `FT_DEBUG_LEVEL_TRACE` macros and allows FreeType to write error and - * trace log messages to a file instead of `stderr`. For writing logs - * to a file, FreeType uses an the external `dlg` library (the source - * code is in `src/dlg`). - * - * This option needs a C99 compiler. - */ -/* #define FT_DEBUG_LOGGING */ - - - /************************************************************************** - * * Autofitter debugging * * If `FT_DEBUG_AUTOFIT` is defined, FreeType provides some means to @@ -910,6 +894,24 @@ FT_BEGIN_HEADER /************************************************************************** * + * Compile 'autofit' module with warp hinting. The idea of the warping + * code is to slightly scale and shift a glyph within a single dimension so + * that as much of its segments are aligned (more or less) on the grid. To + * find out the optimal scaling and shifting value, various parameter + * combinations are tried and scored. + * + * You can switch warping on and off with the `warping` property of the + * auto-hinter (see file `ftdriver.h` for more information; by default it + * is switched off). + * + * This experimental option is not active if the rendering mode is + * `FT_RENDER_MODE_LIGHT`. + */ +#define AF_CONFIG_OPTION_USE_WARPER + + + /************************************************************************** + * * Use TrueType-like size metrics for 'light' auto-hinting. * * It is strongly recommended to avoid this option, which exists only to @@ -960,21 +962,6 @@ FT_BEGIN_HEADER /* - * The TT_SUPPORT_COLRV1 macro is defined to indicate to clients that this - * version of FreeType has support for 'COLR' v1 API. This definition is - * useful to FreeType clients that want to build in support for 'COLR' v1 - * depending on a tip-of-tree checkout before it is officially released in - * FreeType, and while the feature cannot yet be tested against using - * version macros. Don't change this macro. This may be removed once the - * feature is in a FreeType release version and version macros can be used - * to test for availability. - */ -#ifdef TT_CONFIG_OPTION_COLOR_LAYERS -#define TT_SUPPORT_COLRV1 -#endif - - - /* * Check CFF darkening parameters. The checks are the same as in function * `cff_property_set` in file `cffdrivr.c`. */ diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftstdlib.h b/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftstdlib.h index fea21ffa4df..d6091f8b3d6 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftstdlib.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftstdlib.h @@ -5,7 +5,7 @@ * ANSI-specific library and header configuration file (specification * only). * - * Copyright (C) 2002-2021 by + * Copyright (C) 2002-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/config/integer-types.h b/Build/source/libs/freetype2/freetype-src/include/freetype/config/integer-types.h index 4bb3eedab40..a0ca0c95e21 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/config/integer-types.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/config/integer-types.h @@ -4,7 +4,7 @@ * * FreeType integer types definitions. * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/config/mac-support.h b/Build/source/libs/freetype2/freetype-src/include/freetype/config/mac-support.h index ef58d8b3f03..94867088e9d 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/config/mac-support.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/config/mac-support.h @@ -4,7 +4,7 @@ * * Mac/OS X support configuration header. * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/config/public-macros.h b/Build/source/libs/freetype2/freetype-src/include/freetype/config/public-macros.h index 51fbc9c2f52..6aa673e807c 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/config/public-macros.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/config/public-macros.h @@ -4,7 +4,7 @@ * * Define a set of compiler macros used in public FreeType headers. * - * Copyright (C) 2020-2021 by + * Copyright (C) 2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/freetype.h b/Build/source/libs/freetype2/freetype-src/include/freetype/freetype.h index 77fede35c0e..be191f5aa0e 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/freetype.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/freetype.h @@ -4,7 +4,7 @@ * * FreeType high-level API and common types (specification only). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, @@ -33,34 +33,6 @@ FT_BEGIN_HEADER /************************************************************************** * * @section: - * preamble - * - * @title: - * Preamble - * - * @abstract: - * What FreeType is and isn't - * - * @description: - * FreeType is a library that provides access to glyphs in font files. It - * scales the glyph images and their metrics to a requested size, and it - * rasterizes the glyph images to produce pixel or subpixel alpha coverage - * bitmaps. - * - * Note that FreeType is _not_ a text layout engine. You have to use - * higher-level libraries like HarfBuzz, Pango, or ICU for that. - * - * Note also that FreeType does _not_ perform alpha blending or - * compositing the resulting bitmaps or pixmaps by itself. Use your - * favourite graphics library (for example, Cairo or Skia) to further - * process FreeType's output. - * - */ - - - /************************************************************************** - * - * @section: * header_inclusion * * @title: @@ -204,7 +176,6 @@ FT_BEGIN_HEADER * FT_Size_RequestRec * FT_Size_Request * FT_Set_Transform - * FT_Get_Transform * FT_Load_Glyph * FT_Get_Char_Index * FT_Get_First_Char @@ -2113,7 +2084,8 @@ FT_BEGIN_HEADER * Extra parameters passed to the font driver when opening a new face. * * @note: - * The stream type is determined by the contents of `flags`: + * The stream type is determined by the contents of `flags` that are + * tested in the following order by @FT_Open_Face: * * If the @FT_OPEN_MEMORY bit is set, assume that this is a memory file * of `memory_size` bytes, located at `memory_address`. The data are not @@ -2126,9 +2098,6 @@ FT_BEGIN_HEADER * Otherwise, if the @FT_OPEN_PATHNAME bit is set, assume that this is a * normal file and use `pathname` to open it. * - * If none of the above bits are set or if multiple are set at the same - * time, the flags are invalid and @FT_Open_Face fails. - * * If the @FT_OPEN_DRIVER bit is set, @FT_Open_Face only tries to open * the file with the driver whose handler is in `driver`. * @@ -2301,10 +2270,6 @@ FT_BEGIN_HEADER * See the discussion of reference counters in the description of * @FT_Reference_Face. * - * If `FT_OPEN_STREAM` is set in `args->flags`, the stream in - * `args->stream` is automatically closed before this function returns - * any error (including `FT_Err_Invalid_Argument`). - * * @example: * To loop over all faces, use code similar to the following snippet * (omitting the error handling). @@ -2463,7 +2428,6 @@ FT_BEGIN_HEADER * * @since: * 2.4.2 - * */ FT_EXPORT( FT_Error ) FT_Reference_Face( FT_Face face ); @@ -2910,7 +2874,7 @@ FT_BEGIN_HEADER * * If the font is 'tricky' (see @FT_FACE_FLAG_TRICKY for more), using * `FT_LOAD_NO_SCALE` usually yields meaningless outlines because the - * subglyphs must be scaled and positioned with hinting instructions. + * subglyphs must be scaled and positioned with hinting instructions. * This can be solved by loading the font without `FT_LOAD_NO_SCALE` * and setting the character size to `font->units_per_EM`. * @@ -3208,12 +3172,11 @@ FT_BEGIN_HEADER * A pointer to the transformation's 2x2 matrix. Use `NULL` for the * identity matrix. * delta :: - * A pointer to the translation vector. Use `NULL` for the null - * vector. + * A pointer to the translation vector. Use `NULL` for the null vector. * * @note: * This function is provided as a convenience, but keep in mind that - * @FT_Matrix coefficients are only 16.16 fixed-point values, which can + * @FT_Matrix coefficients are only 16.16 fixed point values, which can * limit the accuracy of the results. Using floating-point computations * to perform the transform directly in client code instead will always * yield better numbers. @@ -3234,39 +3197,6 @@ FT_BEGIN_HEADER /************************************************************************** * - * @function: - * FT_Get_Transform - * - * @description: - * Return the transformation that is applied to glyph images when they - * are loaded into a glyph slot through @FT_Load_Glyph. See - * @FT_Set_Transform for more details. - * - * @input: - * face :: - * A handle to the source face object. - * - * @output: - * matrix :: - * A pointer to a transformation's 2x2 matrix. Set this to NULL if you - * are not interested in the value. - * - * delta :: - * A pointer a translation vector. Set this to NULL if you are not - * interested in the value. - * - * @since: - * 2.11 - * - */ - FT_EXPORT( void ) - FT_Get_Transform( FT_Face face, - FT_Matrix* matrix, - FT_Vector* delta ); - - - /************************************************************************** - * * @enum: * FT_Render_Mode * @@ -3283,10 +3213,6 @@ FT_BEGIN_HEADER * correction to correctly render non-monochrome glyph bitmaps onto a * surface; see @FT_Render_Glyph. * - * The @FT_RENDER_MODE_SDF is a special render mode that uses up to 256 - * distance values, indicating the signed distance from the grid position - * to the nearest outline. - * * @values: * FT_RENDER_MODE_NORMAL :: * Default render mode; it corresponds to 8-bit anti-aliased bitmaps. @@ -3312,49 +3238,11 @@ FT_BEGIN_HEADER * bitmaps that are 3~times the height of the original glyph outline in * pixels and use the @FT_PIXEL_MODE_LCD_V mode. * - * FT_RENDER_MODE_SDF :: - * This mode corresponds to 8-bit, single-channel signed distance field - * (SDF) bitmaps. Each pixel in the SDF grid is the value from the - * pixel's position to the nearest glyph's outline. The distances are - * calculated from the center of the pixel and are positive if they are - * filled by the outline (i.e., inside the outline) and negative - * otherwise. Check the note below on how to convert the output values - * to usable data. - * * @note: * The selected render mode only affects vector glyphs of a font. * Embedded bitmaps often have a different pixel mode like * @FT_PIXEL_MODE_MONO. You can use @FT_Bitmap_Convert to transform them * into 8-bit pixmaps. - * - * For @FT_RENDER_MODE_SDF the output bitmap buffer contains normalized - * distances that are packed into unsigned 8-bit values. To get pixel - * values in floating point representation use the following pseudo-C - * code for the conversion. - * - * ``` - * // Load glyph and render using FT_RENDER_MODE_SDF, - * // then use the output buffer as follows. - * - * ... - * FT_Byte buffer = glyph->bitmap->buffer; - * - * - * for pixel in buffer - * { - * // `sd` is the signed distance and `spread` is the current spread; - * // the default spread is 2 and can be changed. - * - * float sd = (float)pixel - 128.0f; - * - * - * // Convert to pixel values. - * sd = ( sd / 128.0f ) * spread; - * - * // Store `sd` in a buffer or use as required. - * } - * - * ``` */ typedef enum FT_Render_Mode_ { @@ -3363,7 +3251,6 @@ FT_BEGIN_HEADER FT_RENDER_MODE_MONO, FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V, - FT_RENDER_MODE_SDF, FT_RENDER_MODE_MAX @@ -3451,8 +3338,7 @@ FT_BEGIN_HEADER * * which is known as the OVER operator. * - * To correctly composite an anti-aliased pixel of a glyph onto a - * surface, + * To correctly composite an antialiased pixel of a glyph onto a surface, * * 1. take the foreground and background colors (e.g., in sRGB space) * and apply gamma to get them in a linear space, @@ -4132,6 +4018,168 @@ FT_BEGIN_HEADER /************************************************************************** * * @section: + * layer_management + * + * @title: + * Glyph Layer Management + * + * @abstract: + * Retrieving and manipulating OpenType's 'COLR' table data. + * + * @description: + * The functions described here allow access of colored glyph layer data + * in OpenType's 'COLR' tables. + */ + + + /************************************************************************** + * + * @struct: + * FT_LayerIterator + * + * @description: + * This iterator object is needed for @FT_Get_Color_Glyph_Layer. + * + * @fields: + * num_layers :: + * The number of glyph layers for the requested glyph index. Will be + * set by @FT_Get_Color_Glyph_Layer. + * + * layer :: + * The current layer. Will be set by @FT_Get_Color_Glyph_Layer. + * + * p :: + * An opaque pointer into 'COLR' table data. The caller must set this + * to `NULL` before the first call of @FT_Get_Color_Glyph_Layer. + */ + typedef struct FT_LayerIterator_ + { + FT_UInt num_layers; + FT_UInt layer; + FT_Byte* p; + + } FT_LayerIterator; + + + /************************************************************************** + * + * @function: + * FT_Get_Color_Glyph_Layer + * + * @description: + * This is an interface to the 'COLR' table in OpenType fonts to + * iteratively retrieve the colored glyph layers associated with the + * current glyph slot. + * + * https://docs.microsoft.com/en-us/typography/opentype/spec/colr + * + * The glyph layer data for a given glyph index, if present, provides an + * alternative, multi-color glyph representation: Instead of rendering + * the outline or bitmap with the given glyph index, glyphs with the + * indices and colors returned by this function are rendered layer by + * layer. + * + * The returned elements are ordered in the z~direction from bottom to + * top; the 'n'th element should be rendered with the associated palette + * color and blended on top of the already rendered layers (elements 0, + * 1, ..., n-1). + * + * @input: + * face :: + * A handle to the parent face object. + * + * base_glyph :: + * The glyph index the colored glyph layers are associated with. + * + * @inout: + * iterator :: + * An @FT_LayerIterator object. For the first call you should set + * `iterator->p` to `NULL`. For all following calls, simply use the + * same object again. + * + * @output: + * aglyph_index :: + * The glyph index of the current layer. + * + * acolor_index :: + * The color index into the font face's color palette of the current + * layer. The value 0xFFFF is special; it doesn't reference a palette + * entry but indicates that the text foreground color should be used + * instead (to be set up by the application outside of FreeType). + * + * The color palette can be retrieved with @FT_Palette_Select. + * + * @return: + * Value~1 if everything is OK. If there are no more layers (or if there + * are no layers at all), value~0 gets returned. In case of an error, + * value~0 is returned also. + * + * @note: + * This function is necessary if you want to handle glyph layers by + * yourself. In particular, functions that operate with @FT_GlyphRec + * objects (like @FT_Get_Glyph or @FT_Glyph_To_Bitmap) don't have access + * to this information. + * + * Note that @FT_Render_Glyph is able to handle colored glyph layers + * automatically if the @FT_LOAD_COLOR flag is passed to a previous call + * to @FT_Load_Glyph. [This is an experimental feature.] + * + * @example: + * ``` + * FT_Color* palette; + * FT_LayerIterator iterator; + * + * FT_Bool have_layers; + * FT_UInt layer_glyph_index; + * FT_UInt layer_color_index; + * + * + * error = FT_Palette_Select( face, palette_index, &palette ); + * if ( error ) + * palette = NULL; + * + * iterator.p = NULL; + * have_layers = FT_Get_Color_Glyph_Layer( face, + * glyph_index, + * &layer_glyph_index, + * &layer_color_index, + * &iterator ); + * + * if ( palette && have_layers ) + * { + * do + * { + * FT_Color layer_color; + * + * + * if ( layer_color_index == 0xFFFF ) + * layer_color = text_foreground_color; + * else + * layer_color = palette[layer_color_index]; + * + * // Load and render glyph `layer_glyph_index', then + * // blend resulting pixmap (using color `layer_color') + * // with previously created pixmaps. + * + * } while ( FT_Get_Color_Glyph_Layer( face, + * glyph_index, + * &layer_glyph_index, + * &layer_color_index, + * &iterator ) ); + * } + * ``` + */ + FT_EXPORT( FT_Bool ) + FT_Get_Color_Glyph_Layer( FT_Face face, + FT_UInt base_glyph, + FT_UInt *aglyph_index, + FT_UInt *acolor_index, + FT_LayerIterator* iterator ); + + + /************************************************************************** + * + * @section: * base_interface * */ @@ -4219,7 +4267,6 @@ FT_BEGIN_HEADER * * @since: * 2.3.8 - * */ FT_EXPORT( FT_UShort ) FT_Get_FSType_Flags( FT_Face face ); @@ -4313,7 +4360,6 @@ FT_BEGIN_HEADER * * @since: * 2.3.6 - * */ FT_EXPORT( FT_UInt ) FT_Face_GetCharVariantIndex( FT_Face face, @@ -4350,7 +4396,6 @@ FT_BEGIN_HEADER * * @since: * 2.3.6 - * */ FT_EXPORT( FT_Int ) FT_Face_GetCharVariantIsDefault( FT_Face face, @@ -4382,7 +4427,6 @@ FT_BEGIN_HEADER * * @since: * 2.3.6 - * */ FT_EXPORT( FT_UInt32* ) FT_Face_GetVariantSelectors( FT_Face face ); @@ -4416,7 +4460,6 @@ FT_BEGIN_HEADER * * @since: * 2.3.6 - * */ FT_EXPORT( FT_UInt32* ) FT_Face_GetVariantsOfChar( FT_Face face, @@ -4451,7 +4494,6 @@ FT_BEGIN_HEADER * * @since: * 2.3.6 - * */ FT_EXPORT( FT_UInt32* ) FT_Face_GetCharsOfVariant( FT_Face face, @@ -4724,8 +4766,8 @@ FT_BEGIN_HEADER * */ #define FREETYPE_MAJOR 2 -#define FREETYPE_MINOR 11 -#define FREETYPE_PATCH 0 +#define FREETYPE_MINOR 10 +#define FREETYPE_PATCH 4 /************************************************************************** @@ -4787,7 +4829,6 @@ FT_BEGIN_HEADER * * @since: * 2.3.5 - * */ FT_EXPORT( FT_Bool ) FT_Face_CheckTrueTypePatents( FT_Face face ); @@ -4816,7 +4857,6 @@ FT_BEGIN_HEADER * * @since: * 2.3.5 - * */ FT_EXPORT( FT_Bool ) FT_Face_SetUnpatentedHinting( FT_Face face, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftadvanc.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftadvanc.h index 3a13bd3de45..f166bc6f999 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftadvanc.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftadvanc.h @@ -4,7 +4,7 @@ * * Quick computation of advance widths (specification only). * - * Copyright (C) 2008-2021 by + * Copyright (C) 2008-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftbbox.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftbbox.h index 713aedb15fc..fda1ad94a5f 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftbbox.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftbbox.h @@ -4,7 +4,7 @@ * * FreeType exact bbox computation (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftbdf.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftbdf.h index c4285064059..2e1daeeaaf9 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftbdf.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftbdf.h @@ -4,7 +4,7 @@ * * FreeType API for accessing BDF-specific strings (specification). * - * Copyright (C) 2002-2021 by + * Copyright (C) 2002-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftbitmap.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftbitmap.h index 11c45b0ed22..282c22e1cf9 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftbitmap.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftbitmap.h @@ -4,7 +4,7 @@ * * FreeType utility functions for bitmaps (specification). * - * Copyright (C) 2004-2021 by + * Copyright (C) 2004-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftbzip2.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftbzip2.h index afd2a82afbb..eb6a5a55d19 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftbzip2.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftbzip2.h @@ -4,7 +4,7 @@ * * Bzip2-compressed stream support. * - * Copyright (C) 2010-2021 by + * Copyright (C) 2010-2020 by * Joel Klinghed. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftcache.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftcache.h index 70399a328a8..60472752054 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftcache.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftcache.h @@ -4,7 +4,7 @@ * * FreeType Cache subsystem (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, @@ -86,8 +86,8 @@ FT_BEGIN_HEADER * later use @FTC_CMapCache_Lookup to perform the equivalent of * @FT_Get_Char_Index, only much faster. * - * If you want to use the @FT_Glyph caching, call @FTC_ImageCache_New, - * then later use @FTC_ImageCache_Lookup to retrieve the corresponding + * If you want to use the @FT_Glyph caching, call @FTC_ImageCache, then + * later use @FTC_ImageCache_Lookup to retrieve the corresponding * @FT_Glyph objects from the cache. * * If you need lots of small bitmaps, it is much more memory efficient to diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftchapters.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftchapters.h index 4f32cc88c80..2ee26973e46 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftchapters.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftchapters.h @@ -15,7 +15,6 @@ * General Remarks * * @sections: - * preamble * header_inclusion * user_allocation * @@ -124,7 +123,6 @@ * gzip * lzw * bzip2 - * debugging_apis * */ diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftcid.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftcid.h index 9a415bd98b5..a29fb333068 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftcid.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftcid.h @@ -4,7 +4,7 @@ * * FreeType API for accessing CID font information (specification). * - * Copyright (C) 2007-2021 by + * Copyright (C) 2007-2020 by * Dereg Clegg and Michael Toftdal. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftcolor.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftcolor.h index 59e6f15e360..ecc6485e5a0 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftcolor.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftcolor.h @@ -4,7 +4,7 @@ * * FreeType's glyph color management (specification). * - * Copyright (C) 2018-2021 by + * Copyright (C) 2018-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, @@ -302,1302 +302,6 @@ FT_BEGIN_HEADER FT_Palette_Set_Foreground_Color( FT_Face face, FT_Color foreground_color ); - - /************************************************************************** - * - * @section: - * layer_management - * - * @title: - * Glyph Layer Management - * - * @abstract: - * Retrieving and manipulating OpenType's 'COLR' table data. - * - * @description: - * The functions described here allow access of colored glyph layer data - * in OpenType's 'COLR' tables. - */ - - - /************************************************************************** - * - * @struct: - * FT_LayerIterator - * - * @description: - * This iterator object is needed for @FT_Get_Color_Glyph_Layer. - * - * @fields: - * num_layers :: - * The number of glyph layers for the requested glyph index. Will be - * set by @FT_Get_Color_Glyph_Layer. - * - * layer :: - * The current layer. Will be set by @FT_Get_Color_Glyph_Layer. - * - * p :: - * An opaque pointer into 'COLR' table data. The caller must set this - * to `NULL` before the first call of @FT_Get_Color_Glyph_Layer. - */ - typedef struct FT_LayerIterator_ - { - FT_UInt num_layers; - FT_UInt layer; - FT_Byte* p; - - } FT_LayerIterator; - - - /************************************************************************** - * - * @function: - * FT_Get_Color_Glyph_Layer - * - * @description: - * This is an interface to the 'COLR' table in OpenType fonts to - * iteratively retrieve the colored glyph layers associated with the - * current glyph slot. - * - * https://docs.microsoft.com/en-us/typography/opentype/spec/colr - * - * The glyph layer data for a given glyph index, if present, provides an - * alternative, multi-color glyph representation: Instead of rendering - * the outline or bitmap with the given glyph index, glyphs with the - * indices and colors returned by this function are rendered layer by - * layer. - * - * The returned elements are ordered in the z~direction from bottom to - * top; the 'n'th element should be rendered with the associated palette - * color and blended on top of the already rendered layers (elements 0, - * 1, ..., n-1). - * - * @input: - * face :: - * A handle to the parent face object. - * - * base_glyph :: - * The glyph index the colored glyph layers are associated with. - * - * @inout: - * iterator :: - * An @FT_LayerIterator object. For the first call you should set - * `iterator->p` to `NULL`. For all following calls, simply use the - * same object again. - * - * @output: - * aglyph_index :: - * The glyph index of the current layer. - * - * acolor_index :: - * The color index into the font face's color palette of the current - * layer. The value 0xFFFF is special; it doesn't reference a palette - * entry but indicates that the text foreground color should be used - * instead (to be set up by the application outside of FreeType). - * - * The color palette can be retrieved with @FT_Palette_Select. - * - * @return: - * Value~1 if everything is OK. If there are no more layers (or if there - * are no layers at all), value~0 gets returned. In case of an error, - * value~0 is returned also. - * - * @note: - * This function is necessary if you want to handle glyph layers by - * yourself. In particular, functions that operate with @FT_GlyphRec - * objects (like @FT_Get_Glyph or @FT_Glyph_To_Bitmap) don't have access - * to this information. - * - * Note that @FT_Render_Glyph is able to handle colored glyph layers - * automatically if the @FT_LOAD_COLOR flag is passed to a previous call - * to @FT_Load_Glyph. [This is an experimental feature.] - * - * @example: - * ``` - * FT_Color* palette; - * FT_LayerIterator iterator; - * - * FT_Bool have_layers; - * FT_UInt layer_glyph_index; - * FT_UInt layer_color_index; - * - * - * error = FT_Palette_Select( face, palette_index, &palette ); - * if ( error ) - * palette = NULL; - * - * iterator.p = NULL; - * have_layers = FT_Get_Color_Glyph_Layer( face, - * glyph_index, - * &layer_glyph_index, - * &layer_color_index, - * &iterator ); - * - * if ( palette && have_layers ) - * { - * do - * { - * FT_Color layer_color; - * - * - * if ( layer_color_index == 0xFFFF ) - * layer_color = text_foreground_color; - * else - * layer_color = palette[layer_color_index]; - * - * // Load and render glyph `layer_glyph_index', then - * // blend resulting pixmap (using color `layer_color') - * // with previously created pixmaps. - * - * } while ( FT_Get_Color_Glyph_Layer( face, - * glyph_index, - * &layer_glyph_index, - * &layer_color_index, - * &iterator ) ); - * } - * ``` - */ - FT_EXPORT( FT_Bool ) - FT_Get_Color_Glyph_Layer( FT_Face face, - FT_UInt base_glyph, - FT_UInt *aglyph_index, - FT_UInt *acolor_index, - FT_LayerIterator* iterator ); - - - /************************************************************************** - * - * @enum: - * FT_PaintFormat - * - * @description: - * Enumeration describing the different paint format types of the v1 - * extensions to the 'COLR' table, see - * 'https://github.com/googlefonts/colr-gradients-spec'. - * - * The enumeration values losely correspond with the format numbers of - * the specification: FreeType always returns a fully specified 'Paint' - * structure for the 'Transform', 'Translate', 'Scale', 'Rotate', and - * 'Skew' table types even though the specification has different formats - * depending on whether or not a center is specified, whether the scale - * is uniform in x and y~direction or not, etc. Also, only non-variable - * format identifiers are listed in this enumeration; as soon as support - * for variable 'COLR' v1 fonts is implemented, interpolation is - * performed dependent on axis coordinates, which are configured on the - * @FT_Face through @FT_Set_Var_Design_Coordinates. This implies that - * always static, readily interpolated values are returned in the 'Paint' - * structures. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef enum FT_PaintFormat_ - { - FT_COLR_PAINTFORMAT_COLR_LAYERS = 1, - FT_COLR_PAINTFORMAT_SOLID = 2, - FT_COLR_PAINTFORMAT_LINEAR_GRADIENT = 4, - FT_COLR_PAINTFORMAT_RADIAL_GRADIENT = 6, - FT_COLR_PAINTFORMAT_SWEEP_GRADIENT = 8, - FT_COLR_PAINTFORMAT_GLYPH = 10, - FT_COLR_PAINTFORMAT_COLR_GLYPH = 11, - FT_COLR_PAINTFORMAT_TRANSFORM = 12, - FT_COLR_PAINTFORMAT_TRANSLATE = 14, - FT_COLR_PAINTFORMAT_SCALE = 16, - FT_COLR_PAINTFORMAT_ROTATE = 24, - FT_COLR_PAINTFORMAT_SKEW = 28, - FT_COLR_PAINTFORMAT_COMPOSITE = 32, - FT_COLR_PAINT_FORMAT_MAX = 33, - FT_COLR_PAINTFORMAT_UNSUPPORTED = 255 - - } FT_PaintFormat; - - - /************************************************************************** - * - * @struct: - * FT_ColorStopIterator - * - * @description: - * This iterator object is needed for @FT_Get_Colorline_Stops. It keeps - * state while iterating over the stops of an @FT_ColorLine, - * representing the `ColorLine` struct of the v1 extensions to 'COLR', - * see 'https://github.com/googlefonts/colr-gradients-spec'. - * - * @fields: - * num_color_stops :: - * The number of color stops for the requested glyph index. Set by - * @FT_Get_Colorline_Stops. - * - * current_color_stop :: - * The current color stop. Set by @FT_Get_Colorline_Stops. - * - * p :: - * An opaque pointer into 'COLR' table data. The caller must set this - * to `NULL` before the first call of @FT_Get_Colorline_Stops. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef struct FT_ColorStopIterator_ - { - FT_UInt num_color_stops; - FT_UInt current_color_stop; - - FT_Byte* p; - - } FT_ColorStopIterator; - - - /************************************************************************** - * - * @struct: - * FT_ColorIndex - * - * @description: - * A structure representing a `ColorIndex` value of the 'COLR' v1 - * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'. - * - * @fields: - * palette_index :: - * The palette index into a 'CPAL' palette. - * - * alpha :: - * Alpha transparency value multiplied with the value from 'CPAL'. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef struct FT_ColorIndex_ - { - FT_UInt16 palette_index; - FT_F2Dot14 alpha; - - } FT_ColorIndex; - - - /************************************************************************** - * - * @struct: - * FT_ColorStop - * - * @description: - * A structure representing a `ColorStop` value of the 'COLR' v1 - * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'. - * - * @fields: - * stop_offset :: - * The stop offset between 0 and 1 along the gradient. - * - * color :: - * The color information for this stop, see @FT_ColorIndex. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef struct FT_ColorStop_ - { - FT_F2Dot14 stop_offset; - FT_ColorIndex color; - - } FT_ColorStop; - - - /************************************************************************** - * - * @enum: - * FT_PaintExtend - * - * @description: - * An enumeration representing the 'Extend' mode of the 'COLR' v1 - * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'. - * It describes how the gradient fill continues at the other boundaries. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef enum FT_PaintExtend_ - { - FT_COLR_PAINT_EXTEND_PAD = 0, - FT_COLR_PAINT_EXTEND_REPEAT = 1, - FT_COLR_PAINT_EXTEND_REFLECT = 2 - - } FT_PaintExtend; - - - /************************************************************************** - * - * @struct: - * FT_ColorLine - * - * @description: - * A structure representing a `ColorLine` value of the 'COLR' v1 - * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'. - * It describes a list of color stops along the defined gradient. - * - * @fields: - * extend :: - * The extend mode at the outer boundaries, see @FT_PaintExtend. - * - * color_stop_iterator :: - * The @FT_ColorStopIterator used to enumerate and retrieve the - * actual @FT_ColorStop's. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef struct FT_ColorLine_ - { - FT_PaintExtend extend; - FT_ColorStopIterator color_stop_iterator; - - } FT_ColorLine; - - - /************************************************************************** - * - * @struct: - * FT_Affine23 - * - * @description: - * A structure used to store a 2x3 matrix. Coefficients are in - * 16.16 fixed-point format. The computation performed is - * - * ``` - * x' = x*xx + y*xy + dx - * y' = x*yx + y*yy + dy - * ``` - * - * @fields: - * xx :: - * Matrix coefficient. - * - * xy :: - * Matrix coefficient. - * - * dx :: - * x translation. - * - * yx :: - * Matrix coefficient. - * - * yy :: - * Matrix coefficient. - * - * dy :: - * y translation. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef struct FT_Affine_23_ - { - FT_Fixed xx, xy, dx; - FT_Fixed yx, yy, dy; - - } FT_Affine23; - - - /************************************************************************** - * - * @enum: - * FT_Composite_Mode - * - * @description: - * An enumeration listing the 'COLR' v1 composite modes used in - * @FT_PaintComposite. For more details on each paint mode, see - * 'https://www.w3.org/TR/compositing-1/#porterduffcompositingoperators'. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef enum FT_Composite_Mode_ - { - FT_COLR_COMPOSITE_CLEAR = 0, - FT_COLR_COMPOSITE_SRC = 1, - FT_COLR_COMPOSITE_DEST = 2, - FT_COLR_COMPOSITE_SRC_OVER = 3, - FT_COLR_COMPOSITE_DEST_OVER = 4, - FT_COLR_COMPOSITE_SRC_IN = 5, - FT_COLR_COMPOSITE_DEST_IN = 6, - FT_COLR_COMPOSITE_SRC_OUT = 7, - FT_COLR_COMPOSITE_DEST_OUT = 8, - FT_COLR_COMPOSITE_SRC_ATOP = 9, - FT_COLR_COMPOSITE_DEST_ATOP = 10, - FT_COLR_COMPOSITE_XOR = 11, - FT_COLR_COMPOSITE_SCREEN = 12, - FT_COLR_COMPOSITE_OVERLAY = 13, - FT_COLR_COMPOSITE_DARKEN = 14, - FT_COLR_COMPOSITE_LIGHTEN = 15, - FT_COLR_COMPOSITE_COLOR_DODGE = 16, - FT_COLR_COMPOSITE_COLOR_BURN = 17, - FT_COLR_COMPOSITE_HARD_LIGHT = 18, - FT_COLR_COMPOSITE_SOFT_LIGHT = 19, - FT_COLR_COMPOSITE_DIFFERENCE = 20, - FT_COLR_COMPOSITE_EXCLUSION = 21, - FT_COLR_COMPOSITE_MULTIPLY = 22, - FT_COLR_COMPOSITE_HSL_HUE = 23, - FT_COLR_COMPOSITE_HSL_SATURATION = 24, - FT_COLR_COMPOSITE_HSL_COLOR = 25, - FT_COLR_COMPOSITE_HSL_LUMINOSITY = 26, - FT_COLR_COMPOSITE_MAX = 27 - - } FT_Composite_Mode; - - - /************************************************************************** - * - * @struct: - * FT_OpaquePaint - * - * @description: - * A structure representing an offset to a `Paint` value stored in any - * of the paint tables of a 'COLR' v1 font. Compare Offset<24> there. - * When 'COLR' v1 paint tables represented by FreeType objects such as - * @FT_PaintColrLayers, @FT_PaintComposite, or @FT_PaintTransform - * reference downstream nested paint tables, we do not immediately - * retrieve them but encapsulate their location in this type. Use - * @FT_Get_Paint to retrieve the actual @FT_COLR_Paint object that - * describes the details of the respective paint table. - * - * @fields: - * p :: - * An internal offset to a Paint table, needs to be set to NULL before - * passing this struct as an argument to @FT_Get_Paint. - * - * insert_root_transform :: - * An internal boolean to track whether an initial root transform is - * to be provided. Do not set this value. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef struct FT_Opaque_Paint_ - { - FT_Byte* p; - FT_Bool insert_root_transform; - } FT_OpaquePaint; - - - /************************************************************************** - * - * @struct: - * FT_PaintColrLayers - * - * @description: - * A structure representing a `PaintColrLayers` table of a 'COLR' v1 - * font. This table describes a set of layers that are to be composited - * with composite mode `FT_COLR_COMPOSITE_SRC_OVER`. The return value - * of this function is an @FT_LayerIterator initialized so that it can - * be used with @FT_Get_Paint_Layers to retrieve the @FT_OpaquePaint - * objects as references to each layer. - * - * @fields: - * layer_iterator :: - * The layer iterator that describes the layers of this paint. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef struct FT_PaintColrLayers_ - { - FT_LayerIterator layer_iterator; - - } FT_PaintColrLayers; - - - /************************************************************************** - * - * @struct: - * FT_PaintSolid - * - * @description: - * A structure representing a `PaintSolid` value of the 'COLR' v1 - * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'. - * Using a `PaintSolid` value means that the glyph layer filled with - * this paint is solid-colored and does not contain a gradient. - * - * @fields: - * color :: - * The color information for this solid paint, see @FT_ColorIndex. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef struct FT_PaintSolid_ - { - FT_ColorIndex color; - - } FT_PaintSolid; - - - /************************************************************************** - * - * @struct: - * FT_PaintLinearGradient - * - * @description: - * A structure representing a `PaintLinearGradient` value of the 'COLR' - * v1 extensions, see - * 'https://github.com/googlefonts/colr-gradients-spec'. The glyph - * layer filled with this paint is drawn filled with a linear gradient. - * - * @fields: - * colorline :: - * The @FT_ColorLine information for this paint, i.e., the list of - * color stops along the gradient. - * - * p0 :: - * The starting point of the gradient definition (in font units). - * - * p1 :: - * The end point of the gradient definition (in font units). - * - * p2 :: - * Optional point~p2 to rotate the gradient (in font units). - * Otherwise equal to~p0. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef struct FT_PaintLinearGradient_ - { - FT_ColorLine colorline; - - /* TODO: Potentially expose those as x0, y0 etc. */ - FT_Vector p0; - FT_Vector p1; - FT_Vector p2; - - } FT_PaintLinearGradient; - - - /************************************************************************** - * - * @struct: - * FT_PaintRadialGradient - * - * @description: - * A structure representing a `PaintRadialGradient` value of the 'COLR' - * v1 extensions, see - * 'https://github.com/googlefonts/colr-gradients-spec'. The glyph - * layer filled with this paint is drawn filled filled with a radial - * gradient. - * - * @fields: - * colorline :: - * The @FT_ColorLine information for this paint, i.e., the list of - * color stops along the gradient. - * - * c0 :: - * The center of the starting point of the radial gradient (in font - * units). - * - * r0 :: - * The radius of the starting circle of the radial gradient (in font - * units). - * - * c1 :: - * The center of the end point of the radial gradient (in font units). - * - * r1 :: - * The radius of the end circle of the radial gradient (in font - * units). - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef struct FT_PaintRadialGradient_ - { - FT_ColorLine colorline; - - FT_Vector c0; - FT_UShort r0; - FT_Vector c1; - FT_UShort r1; - - } FT_PaintRadialGradient; - - - /************************************************************************** - * - * @struct: - * FT_PaintSweepGradient - * - * @description: - * A structure representing a `PaintSweepGradient` value of the 'COLR' - * v1 extensions, see - * 'https://github.com/googlefonts/colr-gradients-spec'. The glyph - * layer filled with this paint is drawn filled with a sweep gradient - * from `start_angle` to `end_angle`. - * - * @fields: - * colorline :: - * The @FT_ColorLine information for this paint, i.e., the list of - * color stops along the gradient. - * - * center :: - * The center of the sweep gradient (in font units). - * - * start_angle :: - * The start angle of the sweep gradient, in 16.16 fixed point format - * specifying degrees. Values are given counter-clockwise, starting - * from the (positive) y~axis. - * - * end_angle :: - * The end angle of the sweep gradient, in 16.16 fixed point format - * specifying degrees. Values are given counter-clockwise, starting - * from the (positive) y~axis. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef struct FT_PaintSweepGradient_ - { - FT_ColorLine colorline; - - FT_Vector center; - FT_Fixed start_angle; - FT_Fixed end_angle; - - } FT_PaintSweepGradient; - - - /************************************************************************** - * - * @struct: - * FT_PaintGlyph - * - * @description: - * A structure representing a 'COLR' v1 `PaintGlyph` paint table. - * - * @fields: - * paint :: - * An opaque paint object pointing to a `Paint` table that serves as - * the fill for the glyph ID. - * - * glyphID :: - * The glyph ID from the 'glyf' table, which serves as the contour - * information that is filled with paint. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef struct FT_PaintGlyph_ - { - FT_OpaquePaint paint; - FT_UInt glyphID; - - } FT_PaintGlyph; - - - /************************************************************************** - * - * @struct: - * FT_PaintColrGlyph - * - * @description: - * A structure representing a 'COLR' v1 `PaintColorGlyph` paint table. - * - * @fields: - * glyphID :: - * The glyph ID from the `BaseGlyphV1List` table that is drawn for - * this paint. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef struct FT_PaintColrGlyph_ - { - FT_UInt glyphID; - - } FT_PaintColrGlyph; - - - /************************************************************************** - * - * @struct: - * FT_PaintTransform - * - * @description: - * A structure representing a 'COLR' v1 `PaintTransform` paint table. - * - * @fields: - * paint :: - * An opaque paint that is subject to being transformed. - * - * affine :: - * A 2x3 transformation matrix in @FT_Affine23 format. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef struct FT_PaintTransform_ - { - FT_OpaquePaint paint; - FT_Affine23 affine; - - } FT_PaintTransform; - - - /************************************************************************** - * - * @struct: - * FT_PaintTranslate - * - * @description: - * A structure representing a 'COLR' v1 `PaintTranslate` paint table. - * Used for translating downstream paints by a given x and y~delta. - * - * @fields: - * paint :: - * An @FT_OpaquePaint object referencing the paint that is to be - * rotated. - * - * dx :: - * Translation in x~direction (in font units). - * - * dy :: - * Translation in y~direction (in font units). - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef struct FT_PaintTranslate_ - { - FT_OpaquePaint paint; - - FT_Fixed dx; - FT_Fixed dy; - - } FT_PaintTranslate; - - - /************************************************************************** - * - * @struct: - * FT_PaintScale - * - * @description: - * A structure representing all of the 'COLR' v1 'PaintScale*' paint - * tables. Used for scaling downstream paints by a given x and y~scale, - * with a given center. This structure is used for all 'PaintScale*' - * types that are part of specification; fields of this structure are - * filled accordingly. If there is a center, the center values are set, - * otherwise they are set to the zero coordinate. If the source font - * file has 'PaintScaleUniform*' set, the scale values are set - * accordingly to the same value. - * - * @fields: - * paint :: - * An @FT_OpaquePaint object referencing the paint that is to be - * scaled. - * - * scale_x :: - * Scale factor in x~direction. - * - * scale_y :: - * Scale factor in y~direction. - * - * center_x :: - * x~coordinate of center point to scale from. - * - * center_y :: - * y~coordinate of center point to scale from. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward-compatibility of both the API and ABI. - * - */ - typedef struct FT_PaintScale_ - { - FT_OpaquePaint paint; - - FT_Fixed scale_x; - FT_Fixed scale_y; - - FT_Fixed center_x; - FT_Fixed center_y; - - } FT_PaintScale; - - - /************************************************************************** - * - * @struct: - * FT_PaintRotate - * - * @description: - * A structure representing a 'COLR' v1 `PaintRotate` paint table. Used - * for rotating downstream paints with a given center and angle. - * - * @fields: - * paint :: - * An @FT_OpaquePaint object referencing the paint that is to be - * rotated. - * - * angle :: - * The rotation angle that is to be applied. - * - * center_x :: - * The x~coordinate of the pivot point of the rotation (in font - * units). - * - * center_y :: - * The y~coordinate of the pivot point of the rotation (in font - * units). - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - - typedef struct FT_PaintRotate_ - { - FT_OpaquePaint paint; - - FT_Fixed angle; - - FT_Fixed center_x; - FT_Fixed center_y; - - } FT_PaintRotate; - - - /************************************************************************** - * - * @struct: - * FT_PaintSkew - * - * @description: - * A structure representing a 'COLR' v1 `PaintSkew` paint table. Used - * for skewing or shearing downstream paints by a given center and - * angle. - * - * @fields: - * paint :: - * An @FT_OpaquePaint object referencing the paint that is to be - * skewed. - * - * x_skew_angle :: - * The skewing angle in x~direction. - * - * y_skew_angle :: - * The skewing angle in y~direction. - * - * center_x :: - * The x~coordinate of the pivot point of the skew (in font units). - * - * center_y :: - * The y~coordinate of the pivot point of the skew (in font units). - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef struct FT_PaintSkew_ - { - FT_OpaquePaint paint; - - FT_Fixed x_skew_angle; - FT_Fixed y_skew_angle; - - FT_Fixed center_x; - FT_Fixed center_y; - - } FT_PaintSkew; - - - /************************************************************************** - * - * @struct: - * FT_PaintComposite - * - * @description: - * A structure representing a 'COLR'v1 `PaintComposite` paint table. - * Used for compositing two paints in a 'COLR' v1 directed acycling - * graph. - * - * @fields: - * source_paint :: - * An @FT_OpaquePaint object referencing the source that is to be - * composited. - * - * composite_mode :: - * An @FT_Composite_Mode enum value determining the composition - * operation. - * - * backdrop_paint :: - * An @FT_OpaquePaint object referencing the backdrop paint that - * `source_paint` is composited onto. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef struct FT_PaintComposite_ - { - FT_OpaquePaint source_paint; - FT_Composite_Mode composite_mode; - FT_OpaquePaint backdrop_paint; - - } FT_PaintComposite; - - - /************************************************************************** - * - * @union: - * FT_COLR_Paint - * - * @description: - * A union object representing format and details of a paint table of a - * 'COLR' v1 font, see - * 'https://github.com/googlefonts/colr-gradients-spec'. Use - * @FT_Get_Paint to retrieve a @FT_COLR_Paint for an @FT_OpaquePaint - * object. - * - * @fields: - * format :: - * The gradient format for this Paint structure. - * - * u :: - * Union of all paint table types: - * - * * @FT_PaintColrLayers - * * @FT_PaintGlyph - * * @FT_PaintSolid - * * @FT_PaintLinearGradient - * * @FT_PaintRadialGradient - * * @FT_PaintSweepGradient - * * @FT_PaintTransform - * * @FT_PaintTranslate - * * @FT_PaintRotate - * * @FT_PaintSkew - * * @FT_PaintComposite - * * @FT_PaintColrGlyph - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef struct FT_COLR_Paint_ - { - FT_PaintFormat format; - - union - { - FT_PaintColrLayers colr_layers; - FT_PaintGlyph glyph; - FT_PaintSolid solid; - FT_PaintLinearGradient linear_gradient; - FT_PaintRadialGradient radial_gradient; - FT_PaintSweepGradient sweep_gradient; - FT_PaintTransform transform; - FT_PaintTranslate translate; - FT_PaintScale scale; - FT_PaintRotate rotate; - FT_PaintSkew skew; - FT_PaintComposite composite; - FT_PaintColrGlyph colr_glyph; - - } u; - - } FT_COLR_Paint; - - - /************************************************************************** - * - * @enum: - * FT_Color_Root_Transform - * - * @description: - * An enumeration to specify whether @FT_Get_Color_Glyph_Paint is to - * return a root transform to configure the client's graphics context - * matrix. - * - * @values: - * FT_COLOR_INCLUDE_ROOT_TRANSFORM :: - * Do include the root transform as the initial @FT_COLR_Paint object. - * - * FT_COLOR_NO_ROOT_TRANSFORM :: - * Do not output an initial root transform. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - typedef enum FT_Color_Root_Transform_ - { - FT_COLOR_INCLUDE_ROOT_TRANSFORM, - FT_COLOR_NO_ROOT_TRANSFORM, - - FT_COLOR_ROOT_TRANSFORM_MAX - - } FT_Color_Root_Transform; - - - /************************************************************************** - * - * @function: - * FT_Get_Color_Glyph_Paint - * - * @description: - * This is the starting point and interface to color gradient - * information in a 'COLR' v1 table in OpenType fonts to recursively - * retrieve the paint tables for the directed acyclic graph of a colored - * glyph, given a glyph ID. - * - * https://github.com/googlefonts/colr-gradients-spec - * - * In a 'COLR' v1 font, each color glyph defines a directed acyclic - * graph of nested paint tables, such as `PaintGlyph`, `PaintSolid`, - * `PaintLinearGradient`, `PaintRadialGradient`, and so on. Using this - * function and specifying a glyph ID, one retrieves the root paint - * table for this glyph ID. - * - * This function allows control whether an initial root transform is - * returned to configure scaling, transform, and translation correctly - * on the client's graphics context. The initial root transform is - * computed and returned according to the values configured for @FT_Size - * and @FT_Set_Transform on the @FT_Face object, see below for details - * of the `root_transform` parameter. This has implications for a - * client 'COLR' v1 implementation: When this function returns an - * initially computed root transform, at the time of executing the - * @FT_PaintGlyph operation, the contours should be retrieved using - * @FT_Load_Glyph at unscaled, untransformed size. This is because the - * root transform applied to the graphics context will take care of - * correct scaling. - * - * Alternatively, to allow hinting of contours, at the time of executing - * @FT_Load_Glyph, the current graphics context transformation matrix - * can be decomposed into a scaling matrix and a remainder, and - * @FT_Load_Glyph can be used to retrieve the contours at scaled size. - * Care must then be taken to blit or clip to the graphics context with - * taking this remainder transformation into account. - * - * @input: - * face :: - * A handle to the parent face object. - * - * base_glyph :: - * The glyph index for which to retrieve the root paint table. - * - * root_transform :: - * Specifies whether an initially computed root is returned by the - * @FT_PaintTransform operation to account for the activated size - * (see @FT_Activate_Size) and the configured transform and translate - * (see @FT_Set_Transform). - * - * This root transform is returned before nodes of the glyph graph of - * the font are returned. Subsequent @FT_COLR_Paint structures - * contain unscaled and untransformed values. The inserted root - * transform enables the client application to apply an initial - * transform to its graphics context. When executing subsequent - * FT_COLR_Paint operations, values from @FT_COLR_Paint operations - * will ultimately be correctly scaled because of the root transform - * applied to the graphics context. Use - * @FT_COLOR_INCLUDE_ROOT_TRANSFORM to include the root transform, use - * @FT_COLOR_NO_ROOT_TRANSFORM to not include it. The latter may be - * useful when traversing the 'COLR' v1 glyph graph and reaching a - * @FT_PaintColrGlyph. When recursing into @FT_PaintColrGlyph and - * painting that inline, no additional root transform is needed as it - * has already been applied to the graphics context at the beginning - * of drawing this glyph. - * - * @output: - * paint :: - * The @FT_OpaquePaint object that references the actual paint table. - * - * The respective actual @FT_COLR_Paint object is retrieved via - * @FT_Get_Paint. - * - * @return: - * Value~1 if everything is OK. If no color glyph is found, or the root - * paint could not be retrieved, value~0 gets returned. In case of an - * error, value~0 is returned also. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - FT_EXPORT( FT_Bool ) - FT_Get_Color_Glyph_Paint( FT_Face face, - FT_UInt base_glyph, - FT_Color_Root_Transform root_transform, - FT_OpaquePaint* paint ); - - - /************************************************************************** - * - * @function: - * FT_Get_Paint_Layers - * - * @description: - * Access the layers of a `PaintColrLayers` table. - * - * If the root paint of a color glyph, or a nested paint of a 'COLR' - * glyph is a `PaintColrLayers` table, this function retrieves the - * layers of the `PaintColrLayers` table. - * - * The @FT_PaintColrLayers object contains an @FT_LayerIterator, which - * is used here to iterate over the layers. Each layer is returned as - * an @FT_OpaquePaint object, which then can be used with @FT_Get_Paint - * to retrieve the actual paint object. - * - * @input: - * face :: - * A handle to the parent face object. - * - * @inout: - * iterator :: - * The @FT_LayerIterator from an @FT_PaintColrLayers object, for which - * the layers are to be retrieved. The internal state of the iterator - * is incremented after one call to this function for retrieving one - * layer. - * - * @output: - * paint :: - * The @FT_OpaquePaint object that references the actual paint table. - * The respective actual @FT_COLR_Paint object is retrieved via - * @FT_Get_Paint. - * - * @return: - * Value~1 if everything is OK. Value~0 gets returned when the paint - * object can not be retrieved or any other error occurs. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - FT_EXPORT( FT_Bool ) - FT_Get_Paint_Layers( FT_Face face, - FT_LayerIterator* iterator, - FT_OpaquePaint* paint ); - - - /************************************************************************** - * - * @function: - * FT_Get_Colorline_Stops - * - * @description: - * This is an interface to color gradient information in a 'COLR' v1 - * table in OpenType fonts to iteratively retrieve the gradient and - * solid fill information for colored glyph layers for a specified glyph - * ID. - * - * https://github.com/googlefonts/colr-gradients-spec - * - * @input: - * face :: - * A handle to the parent face object. - * - * @inout: - * iterator :: - * The retrieved @FT_ColorStopIterator, configured on an @FT_ColorLine, - * which in turn got retrieved via paint information in - * @FT_PaintLinearGradient or @FT_PaintRadialGradient. - * - * @output: - * color_stop :: - * Color index and alpha value for the retrieved color stop. - * - * @return: - * Value~1 if everything is OK. If there are no more color stops, - * value~0 gets returned. In case of an error, value~0 is returned - * also. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - FT_EXPORT( FT_Bool ) - FT_Get_Colorline_Stops( FT_Face face, - FT_ColorStop* color_stop, - FT_ColorStopIterator* iterator ); - - - /************************************************************************** - * - * @function: - * FT_Get_Paint - * - * @description: - * Access the details of a paint using an @FT_OpaquePaint opaque paint - * object, which internally stores the offset to the respective `Paint` - * object in the 'COLR' table. - * - * @input: - * face :: - * A handle to the parent face object. - * - * opaque_paint :: - * The opaque paint object for which the underlying @FT_COLR_Paint - * data is to be retrieved. - * - * @output: - * paint :: - * The specific @FT_COLR_Paint object containing information coming - * from one of the font's `Paint*` tables. - * - * @return: - * Value~1 if everything is OK. Value~0 if no details can be found for - * this paint or any other error occured. - * - * @since: - * 2.11 -- **currently experimental only!** There might be changes - * without retaining backward compatibility of both the API and ABI. - * - */ - FT_EXPORT( FT_Bool ) - FT_Get_Paint( FT_Face face, - FT_OpaquePaint opaque_paint, - FT_COLR_Paint* paint ); - /* */ diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftdriver.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftdriver.h index 49366390563..804ec34a395 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftdriver.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftdriver.h @@ -4,7 +4,7 @@ * * FreeType API for controlling driver modules (specification only). * - * Copyright (C) 2017-2021 by + * Copyright (C) 2017-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, @@ -53,10 +53,10 @@ FT_BEGIN_HEADER * reasons. * * Available properties are @increase-x-height, @no-stem-darkening - * (experimental), @darkening-parameters (experimental), - * @glyph-to-script-map (experimental), @fallback-script (experimental), - * and @default-script (experimental), as documented in the @properties - * section. + * (experimental), @darkening-parameters (experimental), @warping + * (experimental), @glyph-to-script-map (experimental), @fallback-script + * (experimental), and @default-script (experimental), as documented in + * the @properties section. * */ @@ -84,15 +84,15 @@ FT_BEGIN_HEADER * @properties section. * * - * **Hinting and anti-aliasing principles of the new engine** + * **Hinting and antialiasing principles of the new engine** * * The rasterizer is positioning horizontal features (e.g., ascender * height & x-height, or crossbars) on the pixel grid and minimizing the - * amount of anti-aliasing applied to them, while placing vertical + * amount of antialiasing applied to them, while placing vertical * features (vertical stems) on the pixel grid without hinting, thus * representing the stem position and weight accurately. Sometimes the * vertical stems may be only partially black. In this context, - * 'anti-aliasing' means that stems are not positioned exactly on pixel + * 'antialiasing' means that stems are not positioned exactly on pixel * borders, causing a fuzzy appearance. * * There are two principles behind this approach. @@ -108,7 +108,7 @@ FT_BEGIN_HEADER * sizes are comparable to kerning values and thus would be noticeable * (and distracting) while reading if hinting were applied. * - * One of the reasons to not hint horizontally is anti-aliasing for LCD + * One of the reasons to not hint horizontally is antialiasing for LCD * screens: The pixel geometry of modern displays supplies three vertical * subpixels as the eye moves horizontally across each visible pixel. On * devices where we can be certain this characteristic is present a @@ -116,7 +116,7 @@ FT_BEGIN_HEADER * weight. In Western writing systems this turns out to be the more * critical direction anyway; the weights and spacing of vertical stems * (see above) are central to Armenian, Cyrillic, Greek, and Latin type - * designs. Even when the rasterizer uses greyscale anti-aliasing instead + * designs. Even when the rasterizer uses greyscale antialiasing instead * of color (a necessary compromise when one doesn't know the screen * characteristics), the unhinted vertical features preserve the design's * weight and spacing much better than aliased type would. @@ -362,8 +362,12 @@ FT_BEGIN_HEADER * The same holds for the Type~1 and CID modules if compiled with * `T1_CONFIG_OPTION_OLD_ENGINE`. * - * For the 'cff' module, the default engine is 'adobe'. For both the - * 'type1' and 't1cid' modules, the default engine is 'adobe', too. + * For the 'cff' module, the default engine is 'freetype' if + * `CFF_CONFIG_OPTION_OLD_ENGINE` is defined, and 'adobe' otherwise. + * + * For both the 'type1' and 't1cid' modules, the default engine is + * 'freetype' if `T1_CONFIG_OPTION_OLD_ENGINE` is defined, and 'adobe' + * otherwise. * * @note: * This property can be used with @FT_Property_Get also. @@ -1162,18 +1166,48 @@ FT_BEGIN_HEADER * warping * * @description: - * **Obsolete** + * **Experimental only** * - * This property was always experimental and probably never worked - * correctly. It was entirely removed from the FreeType~2 sources. This - * entry is only here for historical reference. + * If FreeType gets compiled with option `AF_CONFIG_OPTION_USE_WARPER` to + * activate the warp hinting code in the auto-hinter, this property + * switches warping on and off. * - * Warping only worked in 'normal' auto-hinting mode replacing it. The - * idea of the code was to slightly scale and shift a glyph along the + * Warping only works in 'normal' auto-hinting mode replacing it. The + * idea of the code is to slightly scale and shift a glyph along the * non-hinted dimension (which is usually the horizontal axis) so that as - * much of its segments were aligned (more or less) to the grid. To find + * much of its segments are aligned (more or less) to the grid. To find * out a glyph's optimal scaling and shifting value, various parameter - * combinations were tried and scored. + * combinations are tried and scored. + * + * By default, warping is off. + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * This property can be set via the `FREETYPE_PROPERTIES` environment + * variable (using values 1 and 0 for 'on' and 'off', respectively). + * + * The warping code can also change advance widths. Have a look at the + * `lsb_delta` and `rsb_delta` fields in the @FT_GlyphSlotRec structure + * for details on improving inter-glyph distances while rendering. + * + * Since warping is a global property of the auto-hinter it is best to + * change its value before rendering any face. Otherwise, you should + * reload all faces that get auto-hinted in 'normal' hinting mode. + * + * @example: + * This example shows how to switch on warping (omitting the error + * handling). + * + * ``` + * FT_Library library; + * FT_Bool warping = 1; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "autofitter", "warping", &warping ); + * ``` * * @since: * 2.6 diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/fterrdef.h b/Build/source/libs/freetype2/freetype-src/include/freetype/fterrdef.h index 6e9c4ccb976..895d2d4dc86 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/fterrdef.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/fterrdef.h @@ -4,7 +4,7 @@ * * FreeType error codes (specification). * - * Copyright (C) 2002-2021 by + * Copyright (C) 2002-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/fterrors.h b/Build/source/libs/freetype2/freetype-src/include/freetype/fterrors.h index 151941dde0e..60a637c77c6 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/fterrors.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/fterrors.h @@ -4,7 +4,7 @@ * * FreeType error code handling (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, @@ -281,8 +281,6 @@ FT_BEGIN_HEADER FT_EXPORT( const char* ) FT_Error_String( FT_Error error_code ); - /* */ - FT_END_HEADER diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftfntfmt.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftfntfmt.h index 8e68a4a3acc..f803349cd74 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftfntfmt.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftfntfmt.h @@ -4,7 +4,7 @@ * * Support functions for font formats. * - * Copyright (C) 2002-2021 by + * Copyright (C) 2002-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftgasp.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftgasp.h index 76c45eb3b19..6b76882c746 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftgasp.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftgasp.h @@ -4,7 +4,7 @@ * * Access of TrueType's 'gasp' table (specification). * - * Copyright (C) 2007-2021 by + * Copyright (C) 2007-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftglyph.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftglyph.h index 479267bb68b..704619e3d09 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftglyph.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftglyph.h @@ -4,7 +4,7 @@ * * FreeType convenience functions to handle glyphs (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftgxval.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftgxval.h index 21bbbde2ae1..354460a9a71 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftgxval.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftgxval.h @@ -4,7 +4,7 @@ * * FreeType API for validating TrueTypeGX/AAT tables (specification). * - * Copyright (C) 2004-2021 by + * Copyright (C) 2004-2020 by * Masatake YAMATO, Redhat K.K, * David Turner, Robert Wilhelm, and Werner Lemberg. * diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftgzip.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftgzip.h index ba82baba64c..ec5939a191c 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftgzip.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftgzip.h @@ -4,7 +4,7 @@ * * Gzip-compressed stream support. * - * Copyright (C) 2002-2021 by + * Copyright (C) 2002-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftimage.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftimage.h index 66a8b89aa5a..74911620d2a 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftimage.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftimage.h @@ -5,7 +5,7 @@ * FreeType glyph image formats and default raster interface * (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, @@ -201,11 +201,6 @@ FT_BEGIN_HEADER #define ft_pixel_mode_pal2 FT_PIXEL_MODE_GRAY2 #define ft_pixel_mode_pal4 FT_PIXEL_MODE_GRAY4 - /* */ - - /* For debugging, the @FT_Pixel_Mode enumeration must stay in sync */ - /* with the `pixel_modes` array in file `ftobjs.c`. */ - /************************************************************************** * @@ -777,6 +772,17 @@ FT_BEGIN_HEADER /*************************************************************************/ + /************************************************************************** + * + * A raster is a scan converter, in charge of rendering an outline into a + * bitmap. This section contains the public API for rasters. + * + * Note that in FreeType 2, all rasters are now encapsulated within + * specific modules called 'renderers'. See `ftrender.h` for more details + * on renderers. + * + */ + /************************************************************************** * @@ -790,35 +796,16 @@ FT_BEGIN_HEADER * How vectorial outlines are converted into bitmaps and pixmaps. * * @description: - * A raster or a rasterizer is a scan converter in charge of producing a - * pixel coverage bitmap that can be used as an alpha channel when - * compositing a glyph with a background. FreeType comes with two - * rasterizers: bilevel `raster1` and anti-aliased `smooth` are two - * separate modules. They are usually called from the high-level - * @FT_Load_Glyph or @FT_Render_Glyph functions and produce the entire - * coverage bitmap at once, while staying largely invisible to users. - * - * Instead of working with complete coverage bitmaps, it is also possible - * to intercept consecutive pixel runs on the same scanline with the same - * coverage, called _spans_, and process them individually. Only the - * `smooth` rasterizer permits this when calling @FT_Outline_Render with - * @FT_Raster_Params as described below. - * - * Working with either complete bitmaps or spans it is important to think - * of them as colorless coverage objects suitable as alpha channels to - * blend arbitrary colors with a background. For best results, it is - * recommended to use gamma correction, too. - * - * This section also describes the public API needed to set up alternative - * @FT_Renderer modules. + * This section contains technical definitions. * * @order: + * FT_Raster * FT_Span * FT_SpanFunc + * * FT_Raster_Params * FT_RASTER_FLAG_XXX * - * FT_Raster * FT_Raster_NewFunc * FT_Raster_DoneFunc * FT_Raster_ResetFunc @@ -831,12 +818,24 @@ FT_BEGIN_HEADER /************************************************************************** * + * @type: + * FT_Raster + * + * @description: + * An opaque handle (pointer) to a raster object. Each object can be + * used independently to convert an outline into a bitmap or pixmap. + */ + typedef struct FT_RasterRec_* FT_Raster; + + + /************************************************************************** + * * @struct: * FT_Span * * @description: - * A structure to model a single span of consecutive pixels when - * rendering an anti-aliased bitmap. + * A structure used to model a single span of gray pixels when rendering + * an anti-aliased bitmap. * * @fields: * x :: @@ -853,8 +852,8 @@ FT_BEGIN_HEADER * This structure is used by the span drawing callback type named * @FT_SpanFunc that takes the y~coordinate of the span as a parameter. * - * The anti-aliased rasterizer produces coverage values from 0 to 255, - * this is, from completely transparent to completely opaque. + * The coverage value is always between 0 and 255. If you want less gray + * values, the callback function has to reduce them. */ typedef struct FT_Span_ { @@ -872,8 +871,8 @@ FT_BEGIN_HEADER * * @description: * A function used as a call-back by the anti-aliased renderer in order - * to let client applications draw themselves the pixel spans on each - * scan line. + * to let client applications draw themselves the gray pixel spans on + * each scan line. * * @input: * y :: @@ -889,12 +888,11 @@ FT_BEGIN_HEADER * User-supplied data that is passed to the callback. * * @note: - * This callback allows client applications to directly render the spans - * of the anti-aliased bitmap to any kind of surfaces. + * This callback allows client applications to directly render the gray + * spans of the anti-aliased bitmap to any kind of surfaces. * * This can be used to write anti-aliased outlines directly to a given - * background bitmap using alpha compositing. It can also be used for - * oversampling and averaging. + * background bitmap, and even perform translucency. */ typedef void (*FT_SpanFunc)( int y, @@ -964,17 +962,11 @@ FT_BEGIN_HEADER * will be clipped to a box specified in the `clip_box` field of the * @FT_Raster_Params structure. Otherwise, the `clip_box` is * effectively set to the bounding box and all spans are generated. - * - * FT_RASTER_FLAG_SDF :: - * This flag is set to indicate that a signed distance field glyph - * image should be generated. This is only used while rendering with - * the @FT_RENDER_MODE_SDF render mode. */ #define FT_RASTER_FLAG_DEFAULT 0x0 #define FT_RASTER_FLAG_AA 0x1 #define FT_RASTER_FLAG_DIRECT 0x2 #define FT_RASTER_FLAG_CLIP 0x4 -#define FT_RASTER_FLAG_SDF 0x8 /* these constants are deprecated; use the corresponding */ /* `FT_RASTER_FLAG_XXX` values instead */ @@ -1057,23 +1049,6 @@ FT_BEGIN_HEADER /************************************************************************** * - * @type: - * FT_Raster - * - * @description: - * An opaque handle (pointer) to a raster object. Each object can be - * used independently to convert an outline into a bitmap or pixmap. - * - * @note: - * In FreeType 2, all rasters are now encapsulated within specific - * @FT_Renderer modules and only used in their context. - * - */ - typedef struct FT_RasterRec_* FT_Raster; - - - /************************************************************************** - * * @functype: * FT_Raster_NewFunc * diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftincrem.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftincrem.h index 229b947bd8b..f67655eda02 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftincrem.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftincrem.h @@ -4,7 +4,7 @@ * * FreeType incremental loading (specification). * - * Copyright (C) 2002-2021 by + * Copyright (C) 2002-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, @@ -213,14 +213,9 @@ FT_BEGIN_HEADER * * @description: * A function used to retrieve the basic metrics of a given glyph index - * before accessing its data. This allows for handling font types such - * as PCL~XL Format~1, Class~2 downloaded TrueType fonts, where the glyph - * metrics (`hmtx` and `vmtx` tables) are permitted to be omitted from - * the font, and the relevant metrics included in the header of the glyph - * outline data. Importantly, this is not intended to allow custom glyph - * metrics (for example, Postscript Metrics dictionaries), because that - * conflicts with the requirements of outline hinting. Such custom - * metrics must be handled separately, by the calling application. + * before accessing its data. This is necessary because, in certain + * formats like TrueType, the metrics are stored in a different place + * from the glyph images proper. * * @input: * incremental :: @@ -240,7 +235,7 @@ FT_BEGIN_HEADER * * @output: * ametrics :: - * The glyph metrics in font units. + * The replacement glyph metrics in font units. * */ typedef FT_Error @@ -269,7 +264,7 @@ FT_BEGIN_HEADER * * get_glyph_metrics :: * The function to get glyph metrics. May be null if the font does not - * require it. + * provide overriding glyph metrics. * */ typedef struct FT_Incremental_FuncsRec_ diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftlcdfil.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftlcdfil.h index 107a174da33..c6995f2ff7d 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftlcdfil.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftlcdfil.h @@ -5,7 +5,7 @@ * FreeType API for color filtering of subpixel bitmap glyphs * (specification). * - * Copyright (C) 2006-2021 by + * Copyright (C) 2006-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, @@ -55,12 +55,13 @@ FT_BEGIN_HEADER * ClearType-style LCD rendering exploits the color-striped structure of * LCD pixels, increasing the available resolution in the direction of * the stripe (usually horizontal RGB) by a factor of~3. Using the - * subpixel coverages unfiltered can create severe color fringes + * subpixels coverages unfiltered can create severe color fringes * especially when rendering thin features. Indeed, to produce * black-on-white text, the nearby color subpixels must be dimmed - * evenly. Therefore, an equalizing 5-tap FIR filter should be applied - * to subpixel coverages regardless of pixel boundaries and should have - * these properties: + * equally. + * + * A good 5-tap FIR filter should be applied to subpixel coverages + * regardless of pixel boundaries and should have these properties: * * 1. It should be symmetrical, like {~a, b, c, b, a~}, to avoid * any shifts in appearance. @@ -83,7 +84,7 @@ FT_BEGIN_HEADER * Harmony LCD rendering is suitable to panels with any regular subpixel * structure, not just monitors with 3 color striped subpixels, as long * as the color subpixels have fixed positions relative to the pixel - * center. In this case, each color channel can be rendered separately + * center. In this case, each color channel is then rendered separately * after shifting the outline opposite to the subpixel shift so that the * coverage maps are aligned. This method is immune to color fringes * because the shifts do not change integral coverage. @@ -100,9 +101,9 @@ FT_BEGIN_HEADER * clockwise. Harmony with default LCD geometry is equivalent to * ClearType with light filter. * - * As a result of ClearType filtering or Harmony shifts, the resulting - * dimensions of LCD bitmaps can be slightly wider or taller than the - * dimensions the original outline with regard to the pixel grid. + * As a result of ClearType filtering or Harmony rendering, the + * dimensions of LCD bitmaps can be either wider or taller than the + * dimensions of the corresponding outline with regard to the pixel grid. * For example, for @FT_RENDER_MODE_LCD, the filter adds 2~subpixels to * the left, and 2~subpixels to the right. The bitmap offset values are * adjusted accordingly, so clients shouldn't need to modify their layout diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftlist.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftlist.h index 55f015977aa..4588922706d 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftlist.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftlist.h @@ -4,7 +4,7 @@ * * Generic list support for FreeType (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftlogging.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftlogging.h deleted file mode 100644 index a558b85fafb..00000000000 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftlogging.h +++ /dev/null @@ -1,184 +0,0 @@ -/**************************************************************************** - * - * ftlogging.h - * - * Additional debugging APIs. - * - * Copyright (C) 2020-2021 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ - - -#ifndef FTLOGGING_H_ -#define FTLOGGING_H_ - - -#include <ft2build.h> -#include FT_CONFIG_CONFIG_H - - -FT_BEGIN_HEADER - - - /************************************************************************** - * - * @section: - * debugging_apis - * - * @title: - * External Debugging APIs - * - * @abstract: - * Public APIs to control the `FT_DEBUG_LOGGING` macro. - * - * @description: - * This section contains the declarations of public functions that - * enables fine control of what the `FT_DEBUG_LOGGING` macro outputs. - * - */ - - - /************************************************************************** - * - * @function: - * FT_Trace_Set_Level - * - * @description: - * Change the levels of tracing components of FreeType at run time. - * - * @input: - * tracing_level :: - * New tracing value. - * - * @example: - * The following call makes FreeType trace everything but the 'memory' - * component. - * - * ``` - * FT_Trace_Set_Level( "any:7 memory:0 ); - * ``` - * - * @note: - * This function does nothing if compilation option `FT_DEBUG_LOGGING` - * isn't set. - * - * @since: - * 2.11 - * - */ - FT_EXPORT( void ) - FT_Trace_Set_Level( const char* tracing_level ); - - - /************************************************************************** - * - * @function: - * FT_Trace_Set_Default_Level - * - * @description: - * Reset tracing value of FreeType's components to the default value - * (i.e., to the value of the `FT2_DEBUG` environment value or to NULL - * if `FT2_DEBUG` is not set). - * - * @note: - * This function does nothing if compilation option `FT_DEBUG_LOGGING` - * isn't set. - * - * @since: - * 2.11 - * - */ - FT_EXPORT( void ) - FT_Trace_Set_Default_Level( void ); - - - /************************************************************************** - * - * @functype: - * FT_Custom_Log_Handler - * - * @description: - * A function typedef that is used to handle the logging of tracing and - * debug messages on a file system. - * - * @input: - * ft_component :: - * The name of `FT_COMPONENT` from which the current debug or error - * message is produced. - * - * fmt :: - * Actual debug or tracing message. - * - * args:: - * Arguments of debug or tracing messages. - * - * @since: - * 2.11 - * - */ - typedef void - (*FT_Custom_Log_Handler)( const char* ft_component, - const char* fmt, - va_list args ); - - - /************************************************************************** - * - * @function: - * FT_Set_Log_Handler - * - * @description: - * A function to set a custom log handler. - * - * @input: - * handler :: - * New logging function. - * - * @note: - * This function does nothing if compilation option `FT_DEBUG_LOGGING` - * isn't set. - * - * @since: - * 2.11 - * - */ - FT_EXPORT( void ) - FT_Set_Log_Handler( FT_Custom_Log_Handler handler ); - - - /************************************************************************** - * - * @function: - * FT_Set_Default_Log_Handler - * - * @description: - * A function to undo the effect of @FT_Set_Log_Handler, resetting the - * log handler to FreeType's built-in version. - * - * @note: - * This function does nothing if compilation option `FT_DEBUG_LOGGING` - * isn't set. - * - * @since: - * 2.11 - * - */ - FT_EXPORT( void ) - FT_Set_Default_Log_Handler( void ); - - /* */ - - -FT_END_HEADER - -#endif /* FTLOGGING_H_ */ - - -/* END */ diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftlzw.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftlzw.h index fce1c9c4bb1..ae46ad6021d 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftlzw.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftlzw.h @@ -4,7 +4,7 @@ * * LZW-compressed stream support. * - * Copyright (C) 2004-2021 by + * Copyright (C) 2004-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftmac.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftmac.h index 607af9b5895..c9de9818452 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftmac.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftmac.h @@ -4,7 +4,7 @@ * * Additional Mac-specific API. * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftmm.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftmm.h index 32579e997f7..d8781a8296b 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftmm.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftmm.h @@ -4,7 +4,7 @@ * * FreeType Multiple Master font interface (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftmodapi.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftmodapi.h index cb1542373fc..3f7ae82bab2 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftmodapi.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftmodapi.h @@ -4,7 +4,7 @@ * * FreeType modules public interface (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, @@ -45,12 +45,10 @@ FT_BEGIN_HEADER * * @description: * The definitions below are used to manage modules within FreeType. - * Internal and external modules can be added, upgraded, and removed at - * runtime. For example, an alternative renderer or proprietary font - * driver can be registered and prioritized. Additionally, some module - * properties can also be controlled. + * Modules can be added, upgraded, and removed at runtime. Additionally, + * some module properties can be controlled also. * - * Here is a list of existing values of the `module_name` field in the + * Here is a list of possible values of the `module_name` field in the * @FT_Module_Class structure. * * ``` @@ -88,7 +86,6 @@ FT_BEGIN_HEADER * FT_Remove_Module * FT_Add_Default_Modules * - * FT_FACE_DRIVER_NAME * FT_Property_Set * FT_Property_Get * FT_Set_Default_Properties @@ -333,26 +330,6 @@ FT_BEGIN_HEADER /************************************************************************** * - * @macro: - * FT_FACE_DRIVER_NAME - * - * @description: - * A macro that retrieves the name of a font driver from a face object. - * - * @note: - * The font driver name is a valid `module_name` for @FT_Property_Set - * and @FT_Property_Get. This is not the same as @FT_Get_Font_Format. - * - * @since: - * 2.11 - * - */ -#define FT_FACE_DRIVER_NAME( face ) \ - ( ( *(FT_Module_Class**)( ( face )->driver ) )->module_name ) - - - /************************************************************************** - * * @function: * FT_Property_Set * @@ -508,7 +485,8 @@ FT_BEGIN_HEADER * * ``` * FREETYPE_PROPERTIES=truetype:interpreter-version=35 \ - * cff:no-stem-darkening=0 + * cff:no-stem-darkening=0 \ + * autofitter:warping=1 * ``` * * @inout: diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftmoderr.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftmoderr.h index b417cd5ab70..f05fc53aa3f 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftmoderr.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftmoderr.h @@ -4,7 +4,7 @@ * * FreeType module error offsets (specification). * - * Copyright (C) 2001-2021 by + * Copyright (C) 2001-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, @@ -171,7 +171,6 @@ FT_MODERRDEF( Type42, 0x1400, "Type 42 module" ) FT_MODERRDEF( Winfonts, 0x1500, "Windows FON/FNT module" ) FT_MODERRDEF( GXvalid, 0x1600, "GX validation module" ) - FT_MODERRDEF( Sdf, 0x1700, "Signed distance field raster module" ) #ifdef FT_MODERR_END_LIST diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftotval.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftotval.h index 00f97278594..9c00ad30b9d 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftotval.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftotval.h @@ -4,7 +4,7 @@ * * FreeType API for validating OpenType tables (specification). * - * Copyright (C) 2004-2021 by + * Copyright (C) 2004-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftoutln.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftoutln.h index 6bb5f809a9a..84e9b144c15 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftoutln.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftoutln.h @@ -5,7 +5,7 @@ * Support for the FT_Outline type used to store glyph shapes of * most scalable font formats (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftparams.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftparams.h index 04a3f441269..55ea2a38708 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftparams.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftparams.h @@ -4,7 +4,7 @@ * * FreeType API for possible FT_Parameter tags (specification only). * - * Copyright (C) 2017-2021 by + * Copyright (C) 2017-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftpfr.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftpfr.h index fbdb14c2022..9a5383f918d 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftpfr.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftpfr.h @@ -4,7 +4,7 @@ * * FreeType API for accessing PFR-specific data (specification only). * - * Copyright (C) 2002-2021 by + * Copyright (C) 2002-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftrender.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftrender.h index 48d489d4968..8007951b371 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftrender.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftrender.h @@ -4,7 +4,7 @@ * * FreeType renderer modules public interface (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftsizes.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftsizes.h index 22366393b86..a8682a30fb8 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftsizes.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftsizes.h @@ -4,7 +4,7 @@ * * FreeType size objects management (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftsnames.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftsnames.h index c7f6581cb3a..729e6ab0699 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftsnames.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftsnames.h @@ -7,7 +7,7 @@ * * This is _not_ used to retrieve glyph names! * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftstroke.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftstroke.h index 88b2a8a4ed7..a759c94ddec 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftstroke.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftstroke.h @@ -4,7 +4,7 @@ * * FreeType path stroker (specification). * - * Copyright (C) 2002-2021 by + * Copyright (C) 2002-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftsynth.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftsynth.h index 861dcb5ac5e..bdb4c5753e6 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftsynth.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftsynth.h @@ -5,7 +5,7 @@ * FreeType synthesizing code for emboldening and slanting * (specification). * - * Copyright (C) 2000-2021 by + * Copyright (C) 2000-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftsystem.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftsystem.h index e5abb85a858..22aead71400 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftsystem.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftsystem.h @@ -4,7 +4,7 @@ * * FreeType low-level system interface definition (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/fttrigon.h b/Build/source/libs/freetype2/freetype-src/include/freetype/fttrigon.h index dbe7b0d3881..2ce6b324c98 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/fttrigon.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/fttrigon.h @@ -4,7 +4,7 @@ * * FreeType trigonometric functions (specification). * - * Copyright (C) 2001-2021 by + * Copyright (C) 2001-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/fttypes.h b/Build/source/libs/freetype2/freetype-src/include/freetype/fttypes.h index d5ca1c4f4f5..aaeb9e87851 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/fttypes.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/fttypes.h @@ -4,7 +4,7 @@ * * FreeType simple types definitions (specification only). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ftwinfnt.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ftwinfnt.h index b1ef3b68768..786528c6ecb 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ftwinfnt.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ftwinfnt.h @@ -4,7 +4,7 @@ * * FreeType API for accessing Windows fnt-specific data. * - * Copyright (C) 2003-2021 by + * Copyright (C) 2003-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/autohint.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/autohint.h index 01585f5edf0..2a472e20b97 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/autohint.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/autohint.h @@ -4,7 +4,7 @@ * * High-level 'autohint' module-specific interface (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/cffotypes.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/cffotypes.h index a91dd556ca2..a316fd1f302 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/cffotypes.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/cffotypes.h @@ -4,7 +4,7 @@ * * Basic OpenType/CFF object type definitions (specification). * - * Copyright (C) 2017-2021 by + * Copyright (C) 2017-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/cfftypes.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/cfftypes.h index 99e8d413680..f21167b1e51 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/cfftypes.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/cfftypes.h @@ -5,7 +5,7 @@ * Basic OpenType/CFF type definitions and interface (specification * only). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/compiler-macros.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/compiler-macros.h index d8b61b3dc9f..97c18d3a214 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/compiler-macros.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/compiler-macros.h @@ -4,7 +4,7 @@ * * Compiler-specific macro definitions used internally by FreeType. * - * Copyright (C) 2020-2021 by + * Copyright (C) 2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, @@ -71,18 +71,12 @@ FT_BEGIN_HEADER */ #define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT -#ifdef __UINTPTR_TYPE__ - /* - * GCC and Clang both provide a `__UINTPTR_TYPE__` that can be used to - * avoid a dependency on `stdint.h`. - */ -# define FT_UINT_TO_POINTER( x ) (void *)(__UINTPTR_TYPE__)(x) -#elif defined( _WIN64 ) +#ifdef _WIN64 /* only 64bit Windows uses the LLP64 data model, i.e., */ /* 32-bit integers, 64-bit pointers. */ -# define FT_UINT_TO_POINTER( x ) (void *)(unsigned __int64)(x) +#define FT_UINT_TO_POINTER( x ) (void *)(unsigned __int64)(x) #else -# define FT_UINT_TO_POINTER( x ) (void *)(unsigned long)(x) +#define FT_UINT_TO_POINTER( x ) (void *)(unsigned long)(x) #endif /* @@ -222,91 +216,79 @@ FT_BEGIN_HEADER #define FT_EXPORT_VAR( x ) FT_FUNCTION_DECLARATION( x ) #endif - /* - * When compiling FreeType as a DLL or DSO with hidden visibility, - * some systems/compilers need a special attribute in front OR after - * the return type of function declarations. - * - * Two macros are used within the FreeType source code to define - * exported library functions: `FT_EXPORT` and `FT_EXPORT_DEF`. - * - * - `FT_EXPORT( return_type )` - * - * is used in a function declaration, as in - * - * ``` - * FT_EXPORT( FT_Error ) - * FT_Init_FreeType( FT_Library* alibrary ); - * ``` - * - * - `FT_EXPORT_DEF( return_type )` - * - * is used in a function definition, as in - * - * ``` - * FT_EXPORT_DEF( FT_Error ) - * FT_Init_FreeType( FT_Library* alibrary ) - * { - * ... some code ... - * return FT_Err_Ok; - * } - * ``` - * - * You can provide your own implementation of `FT_EXPORT` and - * `FT_EXPORT_DEF` here if you want. - * - * To export a variable, use `FT_EXPORT_VAR`. - */ + /* When compiling FreeType as a DLL or DSO with hidden visibility, */ + /* some systems/compilers need a special attribute in front OR after */ + /* the return type of function declarations. */ + /* */ + /* Two macros are used within the FreeType source code to define */ + /* exported library functions: `FT_EXPORT` and `FT_EXPORT_DEF`. */ + /* */ + /* - `FT_EXPORT( return_type )` */ + /* */ + /* is used in a function declaration, as in */ + /* */ + /* ``` */ + /* FT_EXPORT( FT_Error ) */ + /* FT_Init_FreeType( FT_Library* alibrary ); */ + /* ``` */ + /* */ + /* - `FT_EXPORT_DEF( return_type )` */ + /* */ + /* is used in a function definition, as in */ + /* */ + /* ``` */ + /* FT_EXPORT_DEF( FT_Error ) */ + /* FT_Init_FreeType( FT_Library* alibrary ) */ + /* { */ + /* ... some code ... */ + /* return FT_Err_Ok; */ + /* } */ + /* ``` */ + /* */ + /* You can provide your own implementation of `FT_EXPORT` and */ + /* `FT_EXPORT_DEF` here if you want. */ + /* */ + /* To export a variable, use `FT_EXPORT_VAR`. */ + /* */ /* See `freetype/config/compiler_macros.h` for the `FT_EXPORT` definition */ #define FT_EXPORT_DEF( x ) FT_FUNCTION_DEFINITION( x ) - /* - * The following macros are needed to compile the library with a - * C++ compiler and with 16bit compilers. - */ - - /* - * This is special. Within C++, you must specify `extern "C"` for - * functions which are used via function pointers, and you also - * must do that for structures which contain function pointers to - * assure C linkage -- it's not possible to have (local) anonymous - * functions which are accessed by (global) function pointers. - * - * - * FT_CALLBACK_DEF is used to _define_ a callback function, - * located in the same source code file as the structure that uses - * it. FT_COMPARE_DEF, in addition, ensures the `cdecl` calling - * convention on x86, required by the C library function `qsort`. - * - * FT_BASE_CALLBACK and FT_BASE_CALLBACK_DEF are used to declare - * and define a callback function, respectively, in a similar way - * as FT_BASE and FT_BASE_DEF work. - * - * FT_CALLBACK_TABLE is used to _declare_ a constant variable that - * contains pointers to callback functions. - * - * FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable - * that contains pointers to callback functions. - * - * - * Some 16bit compilers have to redefine these macros to insert - * the infamous `_cdecl` or `__fastcall` declarations. - */ + /* The following macros are needed to compile the library with a */ + /* C++ compiler and with 16bit compilers. */ + /* */ + + /* This is special. Within C++, you must specify `extern "C"` for */ + /* functions which are used via function pointers, and you also */ + /* must do that for structures which contain function pointers to */ + /* assure C linkage -- it's not possible to have (local) anonymous */ + /* functions which are accessed by (global) function pointers. */ + /* */ + /* */ + /* FT_CALLBACK_DEF is used to _define_ a callback function, */ + /* located in the same source code file as the structure that uses */ + /* it. */ + /* */ + /* FT_BASE_CALLBACK and FT_BASE_CALLBACK_DEF are used to declare */ + /* and define a callback function, respectively, in a similar way */ + /* as FT_BASE and FT_BASE_DEF work. */ + /* */ + /* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */ + /* contains pointers to callback functions. */ + /* */ + /* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */ + /* that contains pointers to callback functions. */ + /* */ + /* */ + /* Some 16bit compilers have to redefine these macros to insert */ + /* the infamous `_cdecl` or `__fastcall` declarations. */ + /* */ #ifdef __cplusplus #define FT_CALLBACK_DEF( x ) extern "C" x #else #define FT_CALLBACK_DEF( x ) static x #endif -#if defined( __i386__ ) -#define FT_COMPARE_DEF( x ) FT_CALLBACK_DEF( x ) __attribute__(( cdecl )) -#elif defined( _M_IX86 ) -#define FT_COMPARE_DEF( x ) FT_CALLBACK_DEF( x ) __cdecl -#else -#define FT_COMPARE_DEF( x ) FT_CALLBACK_DEF( x ) -#endif - #define FT_BASE_CALLBACK( x ) FT_FUNCTION_DECLARATION( x ) #define FT_BASE_CALLBACK_DEF( x ) FT_FUNCTION_DEFINITION( x ) diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftcalc.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftcalc.h index 15025e871a8..c65307472f9 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftcalc.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftcalc.h @@ -4,7 +4,7 @@ * * Arithmetic computations (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftdebug.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftdebug.h index b9787a7098a..df5357ad550 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftdebug.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftdebug.h @@ -4,7 +4,7 @@ * * Debugging and logging component (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, @@ -31,23 +31,9 @@ #include "compiler-macros.h" -#ifdef FT_DEBUG_LOGGING -#include <dlg/output.h> -#include <dlg/dlg.h> - -#include <freetype/ftlogging.h> -#endif /* FT_DEBUG_LOGGING */ - FT_BEGIN_HEADER - /* force the definition of FT_DEBUG_LEVEL_TRACE if FT_DEBUG_LOGGING is */ - /* already defined. */ - /* */ -#ifdef FT_DEBUG_LOGGING -#undef FT_DEBUG_LEVEL_TRACE -#define FT_DEBUG_LEVEL_TRACE -#endif /* force the definition of FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE */ /* is already defined; this simplifies the following #ifdefs */ @@ -96,67 +82,21 @@ FT_BEGIN_HEADER * Each component must define the macro FT_COMPONENT to a valid FT_Trace * value before using any TRACE macro. * - * To get consistent logging output, there should be no newline character - * (i.e., '\n') or a single trailing one in the message string of - * `FT_TRACEx` and `FT_ERROR`. - */ - - - /************************************************************************* - * - * If FT_DEBUG_LOGGING is enabled, tracing messages are sent to dlg's API. - * If FT_DEBUG_LOGGING is disabled, tracing messages are sent to - * `FT_Message` (defined in ftdebug.c). */ -#ifdef FT_DEBUG_LOGGING - - /* we need two macros to convert the names of `FT_COMPONENT` to a string */ -#define FT_LOGGING_TAG( x ) FT_LOGGING_TAG_( x ) -#define FT_LOGGING_TAG_( x ) #x - /* we need two macros to convert the component and the trace level */ - /* to a string that combines them */ -#define FT_LOGGING_TAGX( x, y ) FT_LOGGING_TAGX_( x, y ) -#define FT_LOGGING_TAGX_( x, y ) #x ":" #y +#ifdef FT_DEBUG_LEVEL_TRACE + /* we need two macros here to make cpp expand `FT_COMPONENT' */ +#define FT_TRACE_COMP( x ) FT_TRACE_COMP_( x ) +#define FT_TRACE_COMP_( x ) trace_ ## x -#define FT_LOG( level, varformat ) \ - do \ - { \ - const char* dlg_tag = FT_LOGGING_TAGX( FT_COMPONENT, level ); \ - \ - \ - ft_add_tag( dlg_tag ); \ - if ( ft_trace_levels[FT_TRACE_COMP( FT_COMPONENT )] >= level ) \ - { \ - if ( custom_output_handler != NULL ) \ - FT_Logging_Callback varformat; \ - else \ - dlg_trace varformat; \ - } \ - ft_remove_tag( dlg_tag ); \ - } while( 0 ) - -#else /* !FT_DEBUG_LOGGING */ - -#define FT_LOG( level, varformat ) \ +#define FT_TRACE( level, varformat ) \ do \ { \ if ( ft_trace_levels[FT_TRACE_COMP( FT_COMPONENT )] >= level ) \ FT_Message varformat; \ } while ( 0 ) -#endif /* !FT_DEBUG_LOGGING */ - - -#ifdef FT_DEBUG_LEVEL_TRACE - - /* we need two macros here to make cpp expand `FT_COMPONENT' */ -#define FT_TRACE_COMP( x ) FT_TRACE_COMP_( x ) -#define FT_TRACE_COMP_( x ) trace_ ## x - -#define FT_TRACE( level, varformat ) FT_LOG( level, varformat ) - #else /* !FT_DEBUG_LEVEL_TRACE */ #define FT_TRACE( level, varformat ) do { } while ( 0 ) /* nothing */ @@ -264,32 +204,7 @@ FT_BEGIN_HEADER #ifdef FT_DEBUG_LEVEL_ERROR - /************************************************************************** - * - * If FT_DEBUG_LOGGING is enabled, error messages are sent to dlg's API. - * If FT_DEBUG_LOGGING is disabled, error messages are sent to `FT_Message` - * (defined in ftdebug.c). - * - */ -#ifdef FT_DEBUG_LOGGING - -#define FT_ERROR( varformat ) \ - do \ - { \ - const char* dlg_tag = FT_LOGGING_TAG( FT_COMPONENT ); \ - \ - \ - ft_add_tag( dlg_tag ); \ - dlg_trace varformat; \ - ft_remove_tag( dlg_tag ); \ - } while ( 0 ) - -#else /* !FT_DEBUG_LOGGING */ - -#define FT_ERROR( varformat ) FT_Message varformat - -#endif /* !FT_DEBUG_LOGGING */ - +#define FT_ERROR( varformat ) FT_Message varformat #else /* !FT_DEBUG_LEVEL_ERROR */ @@ -362,77 +277,6 @@ FT_BEGIN_HEADER FT_BASE( void ) ft_debug_init( void ); - -#ifdef FT_DEBUG_LOGGING - - /************************************************************************** - * - * 'dlg' uses output handlers to control how and where log messages are - * printed. Therefore we need to define a default output handler for - * FreeType. - */ - FT_BASE( void ) - ft_log_handler( const struct dlg_origin* origin, - const char* string, - void* data ); - - - /************************************************************************** - * - * 1. `ft_default_log_handler` stores the function pointer that is used - * internally by FreeType to print logs to a file. - * - * 2. `custom_output_handler` stores the function pointer to the callback - * function provided by the user. - * - * It is defined in `ftdebug.c`. - */ - extern dlg_handler ft_default_log_handler; - extern FT_Custom_Log_Handler custom_output_handler; - - - /************************************************************************** - * - * If FT_DEBUG_LOGGING macro is enabled, FreeType needs to initialize and - * un-initialize `FILE*`. - * - * These functions are defined in `ftdebug.c`. - */ - FT_BASE( void ) - ft_logging_init( void ); - - FT_BASE( void ) - ft_logging_deinit( void ); - - - /************************************************************************** - * - * For printing the name of `FT_COMPONENT` along with the actual log we - * need to add a tag with the name of `FT_COMPONENT`. - * - * These functions are defined in `ftdebug.c`. - */ - FT_BASE( void ) - ft_add_tag( const char* tag ); - - FT_BASE( void ) - ft_remove_tag( const char* tag ); - - - /************************************************************************** - * - * A function to print log data using a custom callback logging function - * (which is set using `FT_Set_Log_Handler`). - * - * This function is defined in `ftdebug.c`. - */ - FT_BASE( void ) - FT_Logging_Callback( const char* fmt, - ... ); - -#endif /* FT_DEBUG_LOGGING */ - - FT_END_HEADER #endif /* FTDEBUG_H_ */ diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftdrv.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftdrv.h index 0db323d5abd..7f22710eae3 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftdrv.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftdrv.h @@ -4,7 +4,7 @@ * * FreeType internal font driver interface (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftgloadr.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftgloadr.h index 76ed57331a5..27b8659f7c3 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftgloadr.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftgloadr.h @@ -4,7 +4,7 @@ * * The FreeType glyph loader (specification). * - * Copyright (C) 2002-2021 by + * Copyright (C) 2002-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftmemory.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftmemory.h index 3b9812839dc..ddb18b05123 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftmemory.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftmemory.h @@ -4,7 +4,7 @@ * * The FreeType memory management macros (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftobjs.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftobjs.h index 808eae8791d..25db2c494fe 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftobjs.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftobjs.h @@ -4,7 +4,7 @@ * * The FreeType private base classes (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftpsprop.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftpsprop.h index d94d0d7e4bc..81ec29151c0 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftpsprop.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftpsprop.h @@ -4,7 +4,7 @@ * * Get and set properties of PostScript drivers (specification). * - * Copyright (C) 2017-2021 by + * Copyright (C) 2017-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftrfork.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftrfork.h index 1c56d6ceb7e..1b7b25acbec 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftrfork.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftrfork.h @@ -4,7 +4,7 @@ * * Embedded resource forks accessor (specification). * - * Copyright (C) 2004-2021 by + * Copyright (C) 2004-2020 by * Masatake YAMATO and Redhat K.K. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftserv.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftserv.h index fa82c31fcd3..6e1a9472da0 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftserv.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftserv.h @@ -4,7 +4,7 @@ * * The FreeType services (specification only). * - * Copyright (C) 2003-2021 by + * Copyright (C) 2003-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftstream.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftstream.h index bae1eb2e998..e7d922260f5 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftstream.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftstream.h @@ -4,7 +4,7 @@ * * Stream handling (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/fttrace.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/fttrace.h index 3307556bff0..58bd77413cd 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/fttrace.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/fttrace.h @@ -4,7 +4,7 @@ * * Tracing handling (specification only). * - * Copyright (C) 2002-2021 by + * Copyright (C) 2002-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, @@ -18,11 +18,6 @@ /* definitions of trace levels for FreeType 2 */ - /* the maximum string length (if the argument to `FT_TRACE_DEF` */ - /* gets used as a string) plus one charachter for ':' plus */ - /* another one for the trace level */ -#define FT_MAX_TRACE_LEVEL_LENGTH (9 + 1 + 1) - /* the first level must always be `trace_any' */ FT_TRACE_DEF( any ) @@ -43,14 +38,12 @@ FT_TRACE_DEF( checksum ) /* bitmap checksum (ftobjs.c) */ FT_TRACE_DEF( mm ) /* MM interface (ftmm.c) */ FT_TRACE_DEF( psprops ) /* PS driver properties (ftpsprop.c) */ FT_TRACE_DEF( raccess ) /* resource fork accessor (ftrfork.c) */ -FT_TRACE_DEF( synth ) /* bold/slant synthesizer (ftsynth.c) */ - - /* rasterizers */ FT_TRACE_DEF( raster ) /* monochrome rasterizer (ftraster.c) */ FT_TRACE_DEF( smooth ) /* anti-aliasing raster (ftgrays.c) */ +FT_TRACE_DEF( synth ) /* bold/slant synthesizer (ftsynth.c) */ - /* cache sub-system */ -FT_TRACE_DEF( cache ) /* cache sub-system (ftcache.c, etc.) */ + /* Cache sub-system */ +FT_TRACE_DEF( cache ) /* cache sub-system (ftcache.c, etc.) */ /* SFNT driver components */ FT_TRACE_DEF( sfdriver ) /* SFNT font driver (sfdriver.c) */ @@ -84,7 +77,6 @@ FT_TRACE_DEF( t1objs ) FT_TRACE_DEF( t1parse ) /* PostScript helper module `psaux' */ -FT_TRACE_DEF( afmparse ) FT_TRACE_DEF( cffdecode ) FT_TRACE_DEF( psconv ) FT_TRACE_DEF( psobjs ) @@ -159,10 +151,8 @@ FT_TRACE_DEF( afglobal ) FT_TRACE_DEF( afhints ) FT_TRACE_DEF( afmodule ) FT_TRACE_DEF( aflatin ) +FT_TRACE_DEF( aflatin2 ) FT_TRACE_DEF( afshaper ) - - /* SDF components */ -FT_TRACE_DEF( sdf ) /* signed distance raster for outlines (ftsdf.c) */ -FT_TRACE_DEF( bsdf ) /* signed distance raster for bitmaps (ftbsdf.c) */ +FT_TRACE_DEF( afwarp ) /* END */ diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftvalid.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftvalid.h index 7bdfa62f329..a5bc6c9b526 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftvalid.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftvalid.h @@ -4,7 +4,7 @@ * * FreeType validation support (specification). * - * Copyright (C) 2004-2021 by + * Copyright (C) 2004-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/psaux.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/psaux.h index 6c6399aa16e..8e0a262fd51 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/psaux.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/psaux.h @@ -5,7 +5,7 @@ * Auxiliary functions and data structures related to PostScript fonts * (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/pshints.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/pshints.h index 9dbb0776b0c..663e9d34887 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/pshints.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/pshints.h @@ -6,7 +6,7 @@ * recorders (specification only). These are used to support native * T1/T2 hints in the 'type1', 'cid', and 'cff' font drivers. * - * Copyright (C) 2001-2021 by + * Copyright (C) 2001-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svbdf.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svbdf.h index 879aa613836..81f5a06b62b 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svbdf.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svbdf.h @@ -4,7 +4,7 @@ * * The FreeType BDF services (specification). * - * Copyright (C) 2003-2021 by + * Copyright (C) 2003-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svcfftl.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svcfftl.h index f6424e424dc..1d2dbb6a8ee 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svcfftl.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svcfftl.h @@ -4,7 +4,7 @@ * * The FreeType CFF tables loader service (specification). * - * Copyright (C) 2017-2021 by + * Copyright (C) 2017-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svcid.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svcid.h index 7ef5afd0b73..bd49f3270a8 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svcid.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svcid.h @@ -4,7 +4,7 @@ * * The FreeType CID font services (specification). * - * Copyright (C) 2007-2021 by + * Copyright (C) 2007-2020 by * Derek Clegg and Michael Toftdal. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svfntfmt.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svfntfmt.h index cc87fc122d3..6114d638af0 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svfntfmt.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svfntfmt.h @@ -4,7 +4,7 @@ * * The FreeType font format service (specification only). * - * Copyright (C) 2003-2021 by + * Copyright (C) 2003-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svgldict.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svgldict.h index 4256f14a049..f9443e40d61 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svgldict.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svgldict.h @@ -4,7 +4,7 @@ * * The FreeType glyph dictionary services (specification). * - * Copyright (C) 2003-2021 by + * Copyright (C) 2003-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svgxval.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svgxval.h index f36d55602a6..83c2f26ceed 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svgxval.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svgxval.h @@ -4,7 +4,7 @@ * * FreeType API for validating TrueTypeGX/AAT tables (specification). * - * Copyright (C) 2004-2021 by + * Copyright (C) 2004-2020 by * Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svkern.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svkern.h index 99dc2d97a3c..13cfb327226 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svkern.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svkern.h @@ -4,7 +4,7 @@ * * The FreeType Kerning service (specification). * - * Copyright (C) 2006-2021 by + * Copyright (C) 2006-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svmetric.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svmetric.h index b9c95a7c9c8..2b30edaabec 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svmetric.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svmetric.h @@ -4,7 +4,7 @@ * * The FreeType services for metrics variations (specification). * - * Copyright (C) 2016-2021 by + * Copyright (C) 2016-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svmm.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svmm.h index 8eac3a3fe3b..5a807636a63 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svmm.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svmm.h @@ -4,7 +4,7 @@ * * The FreeType Multiple Masters and GX var services (specification). * - * Copyright (C) 2003-2021 by + * Copyright (C) 2003-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svotval.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svotval.h index 7afb49e824a..763fb2efbed 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svotval.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svotval.h @@ -4,7 +4,7 @@ * * The FreeType OpenType validation service (specification). * - * Copyright (C) 2004-2021 by + * Copyright (C) 2004-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svpfr.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svpfr.h index 98442bf83d5..bdeba0785c7 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svpfr.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svpfr.h @@ -4,7 +4,7 @@ * * Internal PFR service functions (specification). * - * Copyright (C) 2003-2021 by + * Copyright (C) 2003-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svpostnm.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svpostnm.h index 5a25c5a58a3..8ef62c5f92a 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svpostnm.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svpostnm.h @@ -4,7 +4,7 @@ * * The FreeType PostScript name services (specification). * - * Copyright (C) 2003-2021 by + * Copyright (C) 2003-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svprop.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svprop.h index 9b71000c527..8f755436a11 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svprop.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svprop.h @@ -4,7 +4,7 @@ * * The FreeType property service (specification). * - * Copyright (C) 2012-2021 by + * Copyright (C) 2012-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svpscmap.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svpscmap.h index 346f5e2a7c0..b4dcd807590 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svpscmap.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svpscmap.h @@ -4,7 +4,7 @@ * * The FreeType PostScript charmap service (specification). * - * Copyright (C) 2003-2021 by + * Copyright (C) 2003-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svpsinfo.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svpsinfo.h index 49aa4d565d7..1e7276ff434 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svpsinfo.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svpsinfo.h @@ -4,7 +4,7 @@ * * The FreeType PostScript info service (specification). * - * Copyright (C) 2003-2021 by + * Copyright (C) 2003-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svsfnt.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svsfnt.h index 4306cbc1b7a..39c8b5e19d7 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svsfnt.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svsfnt.h @@ -4,7 +4,7 @@ * * The FreeType SFNT table loading service (specification). * - * Copyright (C) 2003-2021 by + * Copyright (C) 2003-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svttcmap.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svttcmap.h index 775b6bcf203..c18bb2336f8 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svttcmap.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svttcmap.h @@ -4,7 +4,7 @@ * * The FreeType TrueType/sfnt cmap extra information service. * - * Copyright (C) 2003-2021 by + * Copyright (C) 2003-2020 by * Masatake YAMATO, Redhat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svtteng.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svtteng.h index 964934284df..7a17e4a755b 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svtteng.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svtteng.h @@ -4,7 +4,7 @@ * * The FreeType TrueType engine query service (specification). * - * Copyright (C) 2006-2021 by + * Copyright (C) 2006-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svttglyf.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svttglyf.h index 4268467b757..90a81dd40e8 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svttglyf.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svttglyf.h @@ -4,7 +4,7 @@ * * The FreeType TrueType glyph service. * - * Copyright (C) 2007-2021 by + * Copyright (C) 2007-2020 by * David Turner. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svwinfnt.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svwinfnt.h index aa70aa44db2..8c915f52572 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svwinfnt.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svwinfnt.h @@ -4,7 +4,7 @@ * * The FreeType Windows FNT/FONT service (specification). * - * Copyright (C) 2003-2021 by + * Copyright (C) 2003-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/sfnt.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/sfnt.h index 438ec897e73..b4c12dbb26d 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/sfnt.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/sfnt.h @@ -4,7 +4,7 @@ * * High-level 'sfnt' driver interface (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, @@ -527,132 +527,6 @@ FT_BEGIN_HEADER /************************************************************************** * * @functype: - * TT_Get_Color_Glyph_Paint_Func - * - * @description: - * Find the root @FT_OpaquePaint object for a given glyph ID. - * - * @input: - * face :: - * The target face object. - * - * base_glyph :: - * The glyph index the colored glyph layers are associated with. - * - * @output: - * paint :: - * The root @FT_OpaquePaint object. - * - * @return: - * Value~1 if everything is OK. If no color glyph is found, or the root - * paint could not be retrieved, value~0 gets returned. In case of an - * error, value~0 is returned also. - */ - typedef FT_Bool - ( *TT_Get_Color_Glyph_Paint_Func )( TT_Face face, - FT_UInt base_glyph, - FT_Color_Root_Transform root_transform, - FT_OpaquePaint *paint ); - - - /************************************************************************** - * - * @functype: - * TT_Get_Paint_Layers_Func - * - * @description: - * Access the layers of a `PaintColrLayers` table. - * - * @input: - * face :: - * The target face object. - * - * @inout: - * iterator :: - * The @FT_LayerIterator from an @FT_PaintColrLayers object, for which - * the layers are to be retrieved. The internal state of the iterator - * is incremented after one call to this function for retrieving one - * layer. - * - * @output: - * paint :: - * The root @FT_OpaquePaint object referencing the actual paint table. - * - * @return: - * Value~1 if everything is OK. Value~0 gets returned when the paint - * object can not be retrieved or any other error occurs. - */ - typedef FT_Bool - ( *TT_Get_Paint_Layers_Func )( TT_Face face, - FT_LayerIterator* iterator, - FT_OpaquePaint *paint ); - - - /************************************************************************** - * - * @functype: - * TT_Get_Colorline_Stops_Func - * - * @description: - * Get the gradient and solid fill information for a given glyph. - * - * @input: - * face :: - * The target face object. - * - * @inout: - * iterator :: - * An @FT_ColorStopIterator object. For the first call you should set - * `iterator->p` to `NULL`. For all following calls, simply use the - * same object again. - * - * @output: - * color_stop :: - * Color index and alpha value for the retrieved color stop. - * - * @return: - * Value~1 if everything is OK. If there are no more color stops, - * value~0 gets returned. In case of an error, value~0 is returned - * also. - */ - typedef FT_Bool - ( *TT_Get_Colorline_Stops_Func )( TT_Face face, - FT_ColorStop *color_stop, - FT_ColorStopIterator* iterator ); - - - /************************************************************************** - * - * @functype: - * TT_Get_Paint_Func - * - * @description: - * Get the paint details for a given @FT_OpaquePaint object. - * - * @input: - * face :: - * The target face object. - * - * opaque_paint :: - * The @FT_OpaquePaint object. - * - * @output: - * paint :: - * An @FT_COLR_Paint object holding the details on `opaque_paint`. - * - * @return: - * Value~1 if everything is OK. Value~0 if no details can be found for - * this paint or any other error occured. - */ - typedef FT_Bool - ( *TT_Get_Paint_Func )( TT_Face face, - FT_OpaquePaint opaque_paint, - FT_COLR_Paint *paint ); - - - /************************************************************************** - * - * @functype: * TT_Blend_Colr_Func * * @description: @@ -835,77 +709,73 @@ FT_BEGIN_HEADER */ typedef struct SFNT_Interface_ { - TT_Loader_GotoTableFunc goto_table; + TT_Loader_GotoTableFunc goto_table; - TT_Init_Face_Func init_face; - TT_Load_Face_Func load_face; - TT_Done_Face_Func done_face; - FT_Module_Requester get_interface; + TT_Init_Face_Func init_face; + TT_Load_Face_Func load_face; + TT_Done_Face_Func done_face; + FT_Module_Requester get_interface; - TT_Load_Any_Func load_any; + TT_Load_Any_Func load_any; /* these functions are called by `load_face' but they can also */ /* be called from external modules, if there is a need to do so */ - TT_Load_Table_Func load_head; - TT_Load_Metrics_Func load_hhea; - TT_Load_Table_Func load_cmap; - TT_Load_Table_Func load_maxp; - TT_Load_Table_Func load_os2; - TT_Load_Table_Func load_post; + TT_Load_Table_Func load_head; + TT_Load_Metrics_Func load_hhea; + TT_Load_Table_Func load_cmap; + TT_Load_Table_Func load_maxp; + TT_Load_Table_Func load_os2; + TT_Load_Table_Func load_post; - TT_Load_Table_Func load_name; - TT_Free_Table_Func free_name; + TT_Load_Table_Func load_name; + TT_Free_Table_Func free_name; /* this field was called `load_kerning' up to version 2.1.10 */ - TT_Load_Table_Func load_kern; + TT_Load_Table_Func load_kern; - TT_Load_Table_Func load_gasp; - TT_Load_Table_Func load_pclt; + TT_Load_Table_Func load_gasp; + TT_Load_Table_Func load_pclt; /* see `ttload.h'; this field was called `load_bitmap_header' up to */ /* version 2.1.10 */ - TT_Load_Table_Func load_bhed; + TT_Load_Table_Func load_bhed; - TT_Load_SBit_Image_Func load_sbit_image; + TT_Load_SBit_Image_Func load_sbit_image; /* see `ttpost.h' */ - TT_Get_PS_Name_Func get_psname; - TT_Free_Table_Func free_psnames; + TT_Get_PS_Name_Func get_psname; + TT_Free_Table_Func free_psnames; /* starting here, the structure differs from version 2.1.7 */ /* this field was introduced in version 2.1.8, named `get_psname' */ - TT_Face_GetKerningFunc get_kerning; + TT_Face_GetKerningFunc get_kerning; /* new elements introduced after version 2.1.10 */ /* load the font directory, i.e., the offset table and */ /* the table directory */ - TT_Load_Table_Func load_font_dir; - TT_Load_Metrics_Func load_hmtx; + TT_Load_Table_Func load_font_dir; + TT_Load_Metrics_Func load_hmtx; - TT_Load_Table_Func load_eblc; - TT_Free_Table_Func free_eblc; + TT_Load_Table_Func load_eblc; + TT_Free_Table_Func free_eblc; TT_Set_SBit_Strike_Func set_sbit_strike; TT_Load_Strike_Metrics_Func load_strike_metrics; - TT_Load_Table_Func load_cpal; - TT_Load_Table_Func load_colr; - TT_Free_Table_Func free_cpal; - TT_Free_Table_Func free_colr; - TT_Set_Palette_Func set_palette; - TT_Get_Colr_Layer_Func get_colr_layer; - TT_Get_Color_Glyph_Paint_Func get_colr_glyph_paint; - TT_Get_Paint_Layers_Func get_paint_layers; - TT_Get_Colorline_Stops_Func get_colorline_stops; - TT_Get_Paint_Func get_paint; - TT_Blend_Colr_Func colr_blend; + TT_Load_Table_Func load_cpal; + TT_Load_Table_Func load_colr; + TT_Free_Table_Func free_cpal; + TT_Free_Table_Func free_colr; + TT_Set_Palette_Func set_palette; + TT_Get_Colr_Layer_Func get_colr_layer; + TT_Blend_Colr_Func colr_blend; - TT_Get_Metrics_Func get_metrics; + TT_Get_Metrics_Func get_metrics; - TT_Get_Name_Func get_name; - TT_Get_Name_ID_Func get_name_id; + TT_Get_Name_Func get_name; + TT_Get_Name_ID_Func get_name_id; } SFNT_Interface; @@ -950,10 +820,6 @@ FT_BEGIN_HEADER free_colr_, \ set_palette_, \ get_colr_layer_, \ - get_colr_glyph_paint_, \ - get_paint_layers_, \ - get_colorline_stops_, \ - get_paint_, \ colr_blend_, \ get_metrics_, \ get_name_, \ @@ -994,10 +860,6 @@ FT_BEGIN_HEADER free_colr_, \ set_palette_, \ get_colr_layer_, \ - get_colr_glyph_paint_, \ - get_paint_layers_, \ - get_colorline_stops_, \ - get_paint_, \ colr_blend_, \ get_metrics_, \ get_name_, \ diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/t1types.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/t1types.h index 023c5d08a25..6a0fe5e97d9 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/t1types.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/t1types.h @@ -5,7 +5,7 @@ * Basic Type1/Type2 type definitions and interface (specification * only). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/tttypes.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/tttypes.h index 0601e525460..c36342c93a0 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/tttypes.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/tttypes.h @@ -5,7 +5,7 @@ * Basic SFNT/TrueType type definitions and interface (specification * only). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/wofftypes.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/wofftypes.h index 367fdb733c5..1874a138a07 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/wofftypes.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/wofftypes.h @@ -5,7 +5,7 @@ * Basic WOFF/WOFF2 type definitions and interface (specification * only). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/t1tables.h b/Build/source/libs/freetype2/freetype-src/include/freetype/t1tables.h index 546ec1c0095..426e14024e6 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/t1tables.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/t1tables.h @@ -5,7 +5,7 @@ * Basic Type 1/Type 2 tables definitions and interface (specification * only). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/ttnameid.h b/Build/source/libs/freetype2/freetype-src/include/freetype/ttnameid.h index 72f9f76a7a0..2b2ed4c6138 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/ttnameid.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/ttnameid.h @@ -4,7 +4,7 @@ * * TrueType name ID definitions (specification only). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/tttables.h b/Build/source/libs/freetype2/freetype-src/include/freetype/tttables.h index c33d99059d9..c8fa35ef8ec 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/tttables.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/tttables.h @@ -5,7 +5,7 @@ * Basic SFNT/TrueType tables definitions and interface * (specification only). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/tttags.h b/Build/source/libs/freetype2/freetype-src/include/freetype/tttags.h index 47ccc6ddf46..3c9fbd59d71 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/tttags.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/tttags.h @@ -4,7 +4,7 @@ * * Tags for TrueType and OpenType tables (specification only). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/include/ft2build.h b/Build/source/libs/freetype2/freetype-src/include/ft2build.h index 62686b1b20f..b4fd1f8c3ee 100644 --- a/Build/source/libs/freetype2/freetype-src/include/ft2build.h +++ b/Build/source/libs/freetype2/freetype-src/include/ft2build.h @@ -4,7 +4,7 @@ * * FreeType 2 build and setup macros. * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, |