mirror of
https://github.com/ZDoom/zdoom-macos-deps.git
synced 2024-11-22 03:51:33 +00:00
update freetype to 2.11.0
This commit is contained in:
parent
4379603efe
commit
fe8a4bd38b
59 changed files with 2280 additions and 361 deletions
6
deps/freetype/bin/freetype-config
vendored
6
deps/freetype/bin/freetype-config
vendored
|
@ -1,6 +1,6 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
#
|
#
|
||||||
# Copyright (C) 2000-2020 by
|
# Copyright (C) 2000-2021 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -41,11 +41,11 @@ else
|
||||||
includedir=${prefix}/include
|
includedir=${prefix}/include
|
||||||
libdir=${exec_prefix}/lib
|
libdir=${exec_prefix}/lib
|
||||||
|
|
||||||
version=23.4.17
|
version=24.0.18
|
||||||
|
|
||||||
cflags="-I${SYSROOT}$includedir/freetype2"
|
cflags="-I${SYSROOT}$includedir/freetype2"
|
||||||
dynamic_libs="-lfreetype"
|
dynamic_libs="-lfreetype"
|
||||||
static_libs="-lfreetype -lz -lbz2 -lpng16"
|
static_libs="-lfreetype -lz -lbz2 -lpng16 -lharfbuzz -lc++ -framework CoreFoundation -framework CoreGraphics -framework CoreText -lbrotlidec -lbrotlicommon"
|
||||||
if test "${SYSROOT}$libdir" != "/usr/lib" &&
|
if test "${SYSROOT}$libdir" != "/usr/lib" &&
|
||||||
test "${SYSROOT}$libdir" != "/usr/lib64" ; then
|
test "${SYSROOT}$libdir" != "/usr/lib64" ; then
|
||||||
libs_L="-L${SYSROOT}$libdir"
|
libs_L="-L${SYSROOT}$libdir"
|
||||||
|
|
270
deps/freetype/include/freetype2/dlg/dlg.h
vendored
Normal file
270
deps/freetype/include/freetype2/dlg/dlg.h
vendored
Normal file
|
@ -0,0 +1,270 @@
|
||||||
|
// 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
|
172
deps/freetype/include/freetype2/dlg/output.h
vendored
Normal file
172
deps/freetype/include/freetype2/dlg/output.h
vendored
Normal file
|
@ -0,0 +1,172 @@
|
||||||
|
// 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
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* UNIX-specific configuration file (specification only).
|
* UNIX-specific configuration file (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Build macros of the FreeType 2 library.
|
* Build macros of the FreeType 2 library.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -19,12 +19,14 @@ FT_USE_MODULE( FT_Driver_ClassRec, pfr_driver_class )
|
||||||
FT_USE_MODULE( FT_Driver_ClassRec, t42_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, winfnt_driver_class )
|
||||||
FT_USE_MODULE( FT_Driver_ClassRec, pcf_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, psaux_module_class )
|
||||||
FT_USE_MODULE( FT_Module_Class, psnames_module_class )
|
FT_USE_MODULE( FT_Module_Class, psnames_module_class )
|
||||||
FT_USE_MODULE( FT_Module_Class, pshinter_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_Module_Class, sfnt_module_class )
|
||||||
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class )
|
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class )
|
||||||
FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_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 )
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* User-selectable configuration macros (specification only).
|
* User-selectable configuration macros (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -105,8 +105,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* ```
|
* ```
|
||||||
* FREETYPE_PROPERTIES=truetype:interpreter-version=35 \
|
* FREETYPE_PROPERTIES=truetype:interpreter-version=35 \
|
||||||
* cff:no-stem-darkening=1 \
|
* cff:no-stem-darkening=1
|
||||||
* autofitter:warping=1
|
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -287,7 +286,7 @@ FT_BEGIN_HEADER
|
||||||
* options set by those programs have precedence, overwriting the value
|
* options set by those programs have precedence, overwriting the value
|
||||||
* here with the configured one.
|
* here with the configured one.
|
||||||
*/
|
*/
|
||||||
/* #define FT_CONFIG_OPTION_USE_HARFBUZZ */
|
#define FT_CONFIG_OPTION_USE_HARFBUZZ
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
|
@ -303,7 +302,7 @@ FT_BEGIN_HEADER
|
||||||
* options set by those programs have precedence, overwriting the value
|
* options set by those programs have precedence, overwriting the value
|
||||||
* here with the configured one.
|
* here with the configured one.
|
||||||
*/
|
*/
|
||||||
/* #define FT_CONFIG_OPTION_USE_BROTLI */
|
#define FT_CONFIG_OPTION_USE_BROTLI
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
|
@ -431,6 +430,23 @@ FT_BEGIN_HEADER
|
||||||
/* #define FT_DEBUG_LEVEL_TRACE */
|
/* #define FT_DEBUG_LEVEL_TRACE */
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* 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
|
* Autofitter debugging
|
||||||
|
@ -892,24 +908,6 @@ FT_BEGIN_HEADER
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* 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.
|
* Use TrueType-like size metrics for 'light' auto-hinting.
|
||||||
|
@ -961,6 +959,21 @@ FT_BEGIN_HEADER
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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
|
* Check CFF darkening parameters. The checks are the same as in function
|
||||||
* `cff_property_set` in file `cffdrivr.c`.
|
* `cff_property_set` in file `cffdrivr.c`.
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* ANSI-specific library and header configuration file (specification
|
* ANSI-specific library and header configuration file (specification
|
||||||
* only).
|
* only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002-2020 by
|
* Copyright (C) 2002-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType integer types definitions.
|
* FreeType integer types definitions.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Mac/OS X support configuration header.
|
* Mac/OS X support configuration header.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Define a set of compiler macros used in public FreeType headers.
|
* Define a set of compiler macros used in public FreeType headers.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2020 by
|
* Copyright (C) 2020-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
300
deps/freetype/include/freetype2/freetype/freetype.h
vendored
300
deps/freetype/include/freetype2/freetype/freetype.h
vendored
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType high-level API and common types (specification only).
|
* FreeType high-level API and common types (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -30,6 +30,34 @@ 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:
|
* @section:
|
||||||
|
@ -176,6 +204,7 @@ FT_BEGIN_HEADER
|
||||||
* FT_Size_RequestRec
|
* FT_Size_RequestRec
|
||||||
* FT_Size_Request
|
* FT_Size_Request
|
||||||
* FT_Set_Transform
|
* FT_Set_Transform
|
||||||
|
* FT_Get_Transform
|
||||||
* FT_Load_Glyph
|
* FT_Load_Glyph
|
||||||
* FT_Get_Char_Index
|
* FT_Get_Char_Index
|
||||||
* FT_Get_First_Char
|
* FT_Get_First_Char
|
||||||
|
@ -2084,8 +2113,7 @@ FT_BEGIN_HEADER
|
||||||
* Extra parameters passed to the font driver when opening a new face.
|
* Extra parameters passed to the font driver when opening a new face.
|
||||||
*
|
*
|
||||||
* @note:
|
* @note:
|
||||||
* The stream type is determined by the contents of `flags` that are
|
* The stream type is determined by the contents of `flags`:
|
||||||
* tested in the following order by @FT_Open_Face:
|
|
||||||
*
|
*
|
||||||
* If the @FT_OPEN_MEMORY bit is set, assume that this is a memory file
|
* 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
|
* of `memory_size` bytes, located at `memory_address`. The data are not
|
||||||
|
@ -2098,6 +2126,9 @@ FT_BEGIN_HEADER
|
||||||
* Otherwise, if the @FT_OPEN_PATHNAME bit is set, assume that this is a
|
* Otherwise, if the @FT_OPEN_PATHNAME bit is set, assume that this is a
|
||||||
* normal file and use `pathname` to open it.
|
* 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
|
* 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`.
|
* the file with the driver whose handler is in `driver`.
|
||||||
*
|
*
|
||||||
|
@ -2270,6 +2301,10 @@ FT_BEGIN_HEADER
|
||||||
* See the discussion of reference counters in the description of
|
* See the discussion of reference counters in the description of
|
||||||
* @FT_Reference_Face.
|
* @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:
|
* @example:
|
||||||
* To loop over all faces, use code similar to the following snippet
|
* To loop over all faces, use code similar to the following snippet
|
||||||
* (omitting the error handling).
|
* (omitting the error handling).
|
||||||
|
@ -2428,6 +2463,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @since:
|
* @since:
|
||||||
* 2.4.2
|
* 2.4.2
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
FT_EXPORT( FT_Error )
|
FT_EXPORT( FT_Error )
|
||||||
FT_Reference_Face( FT_Face face );
|
FT_Reference_Face( FT_Face face );
|
||||||
|
@ -3172,11 +3208,12 @@ FT_BEGIN_HEADER
|
||||||
* A pointer to the transformation's 2x2 matrix. Use `NULL` for the
|
* A pointer to the transformation's 2x2 matrix. Use `NULL` for the
|
||||||
* identity matrix.
|
* identity matrix.
|
||||||
* delta ::
|
* 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:
|
* @note:
|
||||||
* This function is provided as a convenience, but keep in mind that
|
* 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
|
* limit the accuracy of the results. Using floating-point computations
|
||||||
* to perform the transform directly in client code instead will always
|
* to perform the transform directly in client code instead will always
|
||||||
* yield better numbers.
|
* yield better numbers.
|
||||||
|
@ -3195,6 +3232,39 @@ FT_BEGIN_HEADER
|
||||||
FT_Vector* delta );
|
FT_Vector* delta );
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @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:
|
* @enum:
|
||||||
|
@ -3213,6 +3283,10 @@ FT_BEGIN_HEADER
|
||||||
* correction to correctly render non-monochrome glyph bitmaps onto a
|
* correction to correctly render non-monochrome glyph bitmaps onto a
|
||||||
* surface; see @FT_Render_Glyph.
|
* 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:
|
* @values:
|
||||||
* FT_RENDER_MODE_NORMAL ::
|
* FT_RENDER_MODE_NORMAL ::
|
||||||
* Default render mode; it corresponds to 8-bit anti-aliased bitmaps.
|
* Default render mode; it corresponds to 8-bit anti-aliased bitmaps.
|
||||||
|
@ -3238,11 +3312,49 @@ FT_BEGIN_HEADER
|
||||||
* bitmaps that are 3~times the height of the original glyph outline in
|
* bitmaps that are 3~times the height of the original glyph outline in
|
||||||
* pixels and use the @FT_PIXEL_MODE_LCD_V mode.
|
* 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:
|
* @note:
|
||||||
* The selected render mode only affects vector glyphs of a font.
|
* The selected render mode only affects vector glyphs of a font.
|
||||||
* Embedded bitmaps often have a different pixel mode like
|
* Embedded bitmaps often have a different pixel mode like
|
||||||
* @FT_PIXEL_MODE_MONO. You can use @FT_Bitmap_Convert to transform them
|
* @FT_PIXEL_MODE_MONO. You can use @FT_Bitmap_Convert to transform them
|
||||||
* into 8-bit pixmaps.
|
* 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_
|
typedef enum FT_Render_Mode_
|
||||||
{
|
{
|
||||||
|
@ -3251,6 +3363,7 @@ FT_BEGIN_HEADER
|
||||||
FT_RENDER_MODE_MONO,
|
FT_RENDER_MODE_MONO,
|
||||||
FT_RENDER_MODE_LCD,
|
FT_RENDER_MODE_LCD,
|
||||||
FT_RENDER_MODE_LCD_V,
|
FT_RENDER_MODE_LCD_V,
|
||||||
|
FT_RENDER_MODE_SDF,
|
||||||
|
|
||||||
FT_RENDER_MODE_MAX
|
FT_RENDER_MODE_MAX
|
||||||
|
|
||||||
|
@ -3338,7 +3451,8 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* which is known as the OVER operator.
|
* which is known as the OVER operator.
|
||||||
*
|
*
|
||||||
* To correctly composite an antialiased pixel of a glyph onto a surface,
|
* To correctly composite an anti-aliased pixel of a glyph onto a
|
||||||
|
* surface,
|
||||||
*
|
*
|
||||||
* 1. take the foreground and background colors (e.g., in sRGB space)
|
* 1. take the foreground and background colors (e.g., in sRGB space)
|
||||||
* and apply gamma to get them in a linear space,
|
* and apply gamma to get them in a linear space,
|
||||||
|
@ -4015,168 +4129,6 @@ FT_BEGIN_HEADER
|
||||||
FT_Matrix *p_transform );
|
FT_Matrix *p_transform );
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* @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:
|
* @section:
|
||||||
|
@ -4267,6 +4219,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @since:
|
* @since:
|
||||||
* 2.3.8
|
* 2.3.8
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
FT_EXPORT( FT_UShort )
|
FT_EXPORT( FT_UShort )
|
||||||
FT_Get_FSType_Flags( FT_Face face );
|
FT_Get_FSType_Flags( FT_Face face );
|
||||||
|
@ -4360,6 +4313,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @since:
|
* @since:
|
||||||
* 2.3.6
|
* 2.3.6
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
FT_EXPORT( FT_UInt )
|
FT_EXPORT( FT_UInt )
|
||||||
FT_Face_GetCharVariantIndex( FT_Face face,
|
FT_Face_GetCharVariantIndex( FT_Face face,
|
||||||
|
@ -4396,6 +4350,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @since:
|
* @since:
|
||||||
* 2.3.6
|
* 2.3.6
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
FT_EXPORT( FT_Int )
|
FT_EXPORT( FT_Int )
|
||||||
FT_Face_GetCharVariantIsDefault( FT_Face face,
|
FT_Face_GetCharVariantIsDefault( FT_Face face,
|
||||||
|
@ -4427,6 +4382,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @since:
|
* @since:
|
||||||
* 2.3.6
|
* 2.3.6
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
FT_EXPORT( FT_UInt32* )
|
FT_EXPORT( FT_UInt32* )
|
||||||
FT_Face_GetVariantSelectors( FT_Face face );
|
FT_Face_GetVariantSelectors( FT_Face face );
|
||||||
|
@ -4460,6 +4416,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @since:
|
* @since:
|
||||||
* 2.3.6
|
* 2.3.6
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
FT_EXPORT( FT_UInt32* )
|
FT_EXPORT( FT_UInt32* )
|
||||||
FT_Face_GetVariantsOfChar( FT_Face face,
|
FT_Face_GetVariantsOfChar( FT_Face face,
|
||||||
|
@ -4494,6 +4451,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @since:
|
* @since:
|
||||||
* 2.3.6
|
* 2.3.6
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
FT_EXPORT( FT_UInt32* )
|
FT_EXPORT( FT_UInt32* )
|
||||||
FT_Face_GetCharsOfVariant( FT_Face face,
|
FT_Face_GetCharsOfVariant( FT_Face face,
|
||||||
|
@ -4766,8 +4724,8 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#define FREETYPE_MAJOR 2
|
#define FREETYPE_MAJOR 2
|
||||||
#define FREETYPE_MINOR 10
|
#define FREETYPE_MINOR 11
|
||||||
#define FREETYPE_PATCH 4
|
#define FREETYPE_PATCH 0
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
|
@ -4829,6 +4787,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @since:
|
* @since:
|
||||||
* 2.3.5
|
* 2.3.5
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
FT_EXPORT( FT_Bool )
|
FT_EXPORT( FT_Bool )
|
||||||
FT_Face_CheckTrueTypePatents( FT_Face face );
|
FT_Face_CheckTrueTypePatents( FT_Face face );
|
||||||
|
@ -4857,6 +4816,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @since:
|
* @since:
|
||||||
* 2.3.5
|
* 2.3.5
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
FT_EXPORT( FT_Bool )
|
FT_EXPORT( FT_Bool )
|
||||||
FT_Face_SetUnpatentedHinting( FT_Face face,
|
FT_Face_SetUnpatentedHinting( FT_Face face,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Quick computation of advance widths (specification only).
|
* Quick computation of advance widths (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008-2020 by
|
* Copyright (C) 2008-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType exact bbox computation (specification).
|
* FreeType exact bbox computation (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType API for accessing BDF-specific strings (specification).
|
* FreeType API for accessing BDF-specific strings (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002-2020 by
|
* Copyright (C) 2002-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType utility functions for bitmaps (specification).
|
* FreeType utility functions for bitmaps (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2004-2020 by
|
* Copyright (C) 2004-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Bzip2-compressed stream support.
|
* Bzip2-compressed stream support.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2010-2020 by
|
* Copyright (C) 2010-2021 by
|
||||||
* Joel Klinghed.
|
* Joel Klinghed.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType Cache subsystem (specification).
|
* FreeType Cache subsystem (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* 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
|
* later use @FTC_CMapCache_Lookup to perform the equivalent of
|
||||||
* @FT_Get_Char_Index, only much faster.
|
* @FT_Get_Char_Index, only much faster.
|
||||||
*
|
*
|
||||||
* If you want to use the @FT_Glyph caching, call @FTC_ImageCache, then
|
* If you want to use the @FT_Glyph caching, call @FTC_ImageCache_New,
|
||||||
* later use @FTC_ImageCache_Lookup to retrieve the corresponding
|
* then later use @FTC_ImageCache_Lookup to retrieve the corresponding
|
||||||
* @FT_Glyph objects from the cache.
|
* @FT_Glyph objects from the cache.
|
||||||
*
|
*
|
||||||
* If you need lots of small bitmaps, it is much more memory efficient to
|
* If you need lots of small bitmaps, it is much more memory efficient to
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
* General Remarks
|
* General Remarks
|
||||||
*
|
*
|
||||||
* @sections:
|
* @sections:
|
||||||
|
* preamble
|
||||||
* header_inclusion
|
* header_inclusion
|
||||||
* user_allocation
|
* user_allocation
|
||||||
*
|
*
|
||||||
|
@ -123,6 +124,7 @@
|
||||||
* gzip
|
* gzip
|
||||||
* lzw
|
* lzw
|
||||||
* bzip2
|
* bzip2
|
||||||
|
* debugging_apis
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType API for accessing CID font information (specification).
|
* FreeType API for accessing CID font information (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2007-2020 by
|
* Copyright (C) 2007-2021 by
|
||||||
* Dereg Clegg and Michael Toftdal.
|
* Dereg Clegg and Michael Toftdal.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
1298
deps/freetype/include/freetype2/freetype/ftcolor.h
vendored
1298
deps/freetype/include/freetype2/freetype/ftcolor.h
vendored
File diff suppressed because it is too large
Load diff
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType API for controlling driver modules (specification only).
|
* FreeType API for controlling driver modules (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2017-2020 by
|
* Copyright (C) 2017-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -53,10 +53,10 @@ FT_BEGIN_HEADER
|
||||||
* reasons.
|
* reasons.
|
||||||
*
|
*
|
||||||
* Available properties are @increase-x-height, @no-stem-darkening
|
* Available properties are @increase-x-height, @no-stem-darkening
|
||||||
* (experimental), @darkening-parameters (experimental), @warping
|
* (experimental), @darkening-parameters (experimental),
|
||||||
* (experimental), @glyph-to-script-map (experimental), @fallback-script
|
* @glyph-to-script-map (experimental), @fallback-script (experimental),
|
||||||
* (experimental), and @default-script (experimental), as documented in
|
* and @default-script (experimental), as documented in the @properties
|
||||||
* the @properties section.
|
* section.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -84,15 +84,15 @@ FT_BEGIN_HEADER
|
||||||
* @properties section.
|
* @properties section.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* **Hinting and antialiasing principles of the new engine**
|
* **Hinting and anti-aliasing principles of the new engine**
|
||||||
*
|
*
|
||||||
* The rasterizer is positioning horizontal features (e.g., ascender
|
* The rasterizer is positioning horizontal features (e.g., ascender
|
||||||
* height & x-height, or crossbars) on the pixel grid and minimizing the
|
* height & x-height, or crossbars) on the pixel grid and minimizing the
|
||||||
* amount of antialiasing applied to them, while placing vertical
|
* amount of anti-aliasing applied to them, while placing vertical
|
||||||
* features (vertical stems) on the pixel grid without hinting, thus
|
* features (vertical stems) on the pixel grid without hinting, thus
|
||||||
* representing the stem position and weight accurately. Sometimes the
|
* representing the stem position and weight accurately. Sometimes the
|
||||||
* vertical stems may be only partially black. In this context,
|
* vertical stems may be only partially black. In this context,
|
||||||
* 'antialiasing' means that stems are not positioned exactly on pixel
|
* 'anti-aliasing' means that stems are not positioned exactly on pixel
|
||||||
* borders, causing a fuzzy appearance.
|
* borders, causing a fuzzy appearance.
|
||||||
*
|
*
|
||||||
* There are two principles behind this approach.
|
* 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
|
* sizes are comparable to kerning values and thus would be noticeable
|
||||||
* (and distracting) while reading if hinting were applied.
|
* (and distracting) while reading if hinting were applied.
|
||||||
*
|
*
|
||||||
* One of the reasons to not hint horizontally is antialiasing for LCD
|
* One of the reasons to not hint horizontally is anti-aliasing for LCD
|
||||||
* screens: The pixel geometry of modern displays supplies three vertical
|
* screens: The pixel geometry of modern displays supplies three vertical
|
||||||
* subpixels as the eye moves horizontally across each visible pixel. On
|
* subpixels as the eye moves horizontally across each visible pixel. On
|
||||||
* devices where we can be certain this characteristic is present a
|
* 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
|
* weight. In Western writing systems this turns out to be the more
|
||||||
* critical direction anyway; the weights and spacing of vertical stems
|
* critical direction anyway; the weights and spacing of vertical stems
|
||||||
* (see above) are central to Armenian, Cyrillic, Greek, and Latin type
|
* (see above) are central to Armenian, Cyrillic, Greek, and Latin type
|
||||||
* designs. Even when the rasterizer uses greyscale antialiasing instead
|
* designs. Even when the rasterizer uses greyscale anti-aliasing instead
|
||||||
* of color (a necessary compromise when one doesn't know the screen
|
* of color (a necessary compromise when one doesn't know the screen
|
||||||
* characteristics), the unhinted vertical features preserve the design's
|
* characteristics), the unhinted vertical features preserve the design's
|
||||||
* weight and spacing much better than aliased type would.
|
* weight and spacing much better than aliased type would.
|
||||||
|
@ -362,12 +362,8 @@ FT_BEGIN_HEADER
|
||||||
* The same holds for the Type~1 and CID modules if compiled with
|
* The same holds for the Type~1 and CID modules if compiled with
|
||||||
* `T1_CONFIG_OPTION_OLD_ENGINE`.
|
* `T1_CONFIG_OPTION_OLD_ENGINE`.
|
||||||
*
|
*
|
||||||
* For the 'cff' module, the default engine is 'freetype' if
|
* For the 'cff' module, the default engine is 'adobe'. For both the
|
||||||
* `CFF_CONFIG_OPTION_OLD_ENGINE` is defined, and 'adobe' otherwise.
|
* 'type1' and 't1cid' modules, the default engine is 'adobe', too.
|
||||||
*
|
|
||||||
* For both the 'type1' and 't1cid' modules, the default engine is
|
|
||||||
* 'freetype' if `T1_CONFIG_OPTION_OLD_ENGINE` is defined, and 'adobe'
|
|
||||||
* otherwise.
|
|
||||||
*
|
*
|
||||||
* @note:
|
* @note:
|
||||||
* This property can be used with @FT_Property_Get also.
|
* This property can be used with @FT_Property_Get also.
|
||||||
|
@ -1166,48 +1162,18 @@ FT_BEGIN_HEADER
|
||||||
* warping
|
* warping
|
||||||
*
|
*
|
||||||
* @description:
|
* @description:
|
||||||
* **Experimental only**
|
* **Obsolete**
|
||||||
*
|
*
|
||||||
* If FreeType gets compiled with option `AF_CONFIG_OPTION_USE_WARPER` to
|
* This property was always experimental and probably never worked
|
||||||
* activate the warp hinting code in the auto-hinter, this property
|
* correctly. It was entirely removed from the FreeType~2 sources. This
|
||||||
* switches warping on and off.
|
* entry is only here for historical reference.
|
||||||
*
|
*
|
||||||
* Warping only works in 'normal' auto-hinting mode replacing it. The
|
* Warping only worked in 'normal' auto-hinting mode replacing it. The
|
||||||
* idea of the code is to slightly scale and shift a glyph along the
|
* idea of the code was to slightly scale and shift a glyph along the
|
||||||
* non-hinted dimension (which is usually the horizontal axis) so that as
|
* non-hinted dimension (which is usually the horizontal axis) so that as
|
||||||
* much of its segments are aligned (more or less) to the grid. To find
|
* much of its segments were aligned (more or less) to the grid. To find
|
||||||
* out a glyph's optimal scaling and shifting value, various parameter
|
* out a glyph's optimal scaling and shifting value, various parameter
|
||||||
* combinations are tried and scored.
|
* combinations were 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:
|
* @since:
|
||||||
* 2.6
|
* 2.6
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType error codes (specification).
|
* FreeType error codes (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002-2020 by
|
* Copyright (C) 2002-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType error code handling (specification).
|
* FreeType error code handling (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -281,6 +281,8 @@ FT_BEGIN_HEADER
|
||||||
FT_EXPORT( const char* )
|
FT_EXPORT( const char* )
|
||||||
FT_Error_String( FT_Error error_code );
|
FT_Error_String( FT_Error error_code );
|
||||||
|
|
||||||
|
/* */
|
||||||
|
|
||||||
FT_END_HEADER
|
FT_END_HEADER
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Support functions for font formats.
|
* Support functions for font formats.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002-2020 by
|
* Copyright (C) 2002-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Access of TrueType's 'gasp' table (specification).
|
* Access of TrueType's 'gasp' table (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2007-2020 by
|
* Copyright (C) 2007-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType convenience functions to handle glyphs (specification).
|
* FreeType convenience functions to handle glyphs (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType API for validating TrueTypeGX/AAT tables (specification).
|
* FreeType API for validating TrueTypeGX/AAT tables (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2004-2020 by
|
* Copyright (C) 2004-2021 by
|
||||||
* Masatake YAMATO, Redhat K.K,
|
* Masatake YAMATO, Redhat K.K,
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Gzip-compressed stream support.
|
* Gzip-compressed stream support.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002-2020 by
|
* Copyright (C) 2002-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* FreeType glyph image formats and default raster interface
|
* FreeType glyph image formats and default raster interface
|
||||||
* (specification).
|
* (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -201,6 +201,11 @@ FT_BEGIN_HEADER
|
||||||
#define ft_pixel_mode_pal2 FT_PIXEL_MODE_GRAY2
|
#define ft_pixel_mode_pal2 FT_PIXEL_MODE_GRAY2
|
||||||
#define ft_pixel_mode_pal4 FT_PIXEL_MODE_GRAY4
|
#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`. */
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
*
|
*
|
||||||
|
@ -772,17 +777,6 @@ 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.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
*
|
*
|
||||||
|
@ -796,16 +790,35 @@ FT_BEGIN_HEADER
|
||||||
* How vectorial outlines are converted into bitmaps and pixmaps.
|
* How vectorial outlines are converted into bitmaps and pixmaps.
|
||||||
*
|
*
|
||||||
* @description:
|
* @description:
|
||||||
* This section contains technical definitions.
|
* 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.
|
||||||
*
|
*
|
||||||
* @order:
|
* @order:
|
||||||
* FT_Raster
|
|
||||||
* FT_Span
|
* FT_Span
|
||||||
* FT_SpanFunc
|
* FT_SpanFunc
|
||||||
*
|
|
||||||
* FT_Raster_Params
|
* FT_Raster_Params
|
||||||
* FT_RASTER_FLAG_XXX
|
* FT_RASTER_FLAG_XXX
|
||||||
*
|
*
|
||||||
|
* FT_Raster
|
||||||
* FT_Raster_NewFunc
|
* FT_Raster_NewFunc
|
||||||
* FT_Raster_DoneFunc
|
* FT_Raster_DoneFunc
|
||||||
* FT_Raster_ResetFunc
|
* FT_Raster_ResetFunc
|
||||||
|
@ -816,26 +829,14 @@ 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:
|
* @struct:
|
||||||
* FT_Span
|
* FT_Span
|
||||||
*
|
*
|
||||||
* @description:
|
* @description:
|
||||||
* A structure used to model a single span of gray pixels when rendering
|
* A structure to model a single span of consecutive pixels when
|
||||||
* an anti-aliased bitmap.
|
* rendering an anti-aliased bitmap.
|
||||||
*
|
*
|
||||||
* @fields:
|
* @fields:
|
||||||
* x ::
|
* x ::
|
||||||
|
@ -852,8 +853,8 @@ FT_BEGIN_HEADER
|
||||||
* This structure is used by the span drawing callback type named
|
* This structure is used by the span drawing callback type named
|
||||||
* @FT_SpanFunc that takes the y~coordinate of the span as a parameter.
|
* @FT_SpanFunc that takes the y~coordinate of the span as a parameter.
|
||||||
*
|
*
|
||||||
* The coverage value is always between 0 and 255. If you want less gray
|
* The anti-aliased rasterizer produces coverage values from 0 to 255,
|
||||||
* values, the callback function has to reduce them.
|
* this is, from completely transparent to completely opaque.
|
||||||
*/
|
*/
|
||||||
typedef struct FT_Span_
|
typedef struct FT_Span_
|
||||||
{
|
{
|
||||||
|
@ -871,8 +872,8 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @description:
|
* @description:
|
||||||
* A function used as a call-back by the anti-aliased renderer in order
|
* A function used as a call-back by the anti-aliased renderer in order
|
||||||
* to let client applications draw themselves the gray pixel spans on
|
* to let client applications draw themselves the pixel spans on each
|
||||||
* each scan line.
|
* scan line.
|
||||||
*
|
*
|
||||||
* @input:
|
* @input:
|
||||||
* y ::
|
* y ::
|
||||||
|
@ -888,11 +889,12 @@ FT_BEGIN_HEADER
|
||||||
* User-supplied data that is passed to the callback.
|
* User-supplied data that is passed to the callback.
|
||||||
*
|
*
|
||||||
* @note:
|
* @note:
|
||||||
* This callback allows client applications to directly render the gray
|
* This callback allows client applications to directly render the spans
|
||||||
* spans of the anti-aliased bitmap to any kind of surfaces.
|
* of the anti-aliased bitmap to any kind of surfaces.
|
||||||
*
|
*
|
||||||
* This can be used to write anti-aliased outlines directly to a given
|
* This can be used to write anti-aliased outlines directly to a given
|
||||||
* background bitmap, and even perform translucency.
|
* background bitmap using alpha compositing. It can also be used for
|
||||||
|
* oversampling and averaging.
|
||||||
*/
|
*/
|
||||||
typedef void
|
typedef void
|
||||||
(*FT_SpanFunc)( int y,
|
(*FT_SpanFunc)( int y,
|
||||||
|
@ -962,11 +964,17 @@ FT_BEGIN_HEADER
|
||||||
* will be clipped to a box specified in the `clip_box` field of the
|
* will be clipped to a box specified in the `clip_box` field of the
|
||||||
* @FT_Raster_Params structure. Otherwise, the `clip_box` is
|
* @FT_Raster_Params structure. Otherwise, the `clip_box` is
|
||||||
* effectively set to the bounding box and all spans are generated.
|
* 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_DEFAULT 0x0
|
||||||
#define FT_RASTER_FLAG_AA 0x1
|
#define FT_RASTER_FLAG_AA 0x1
|
||||||
#define FT_RASTER_FLAG_DIRECT 0x2
|
#define FT_RASTER_FLAG_DIRECT 0x2
|
||||||
#define FT_RASTER_FLAG_CLIP 0x4
|
#define FT_RASTER_FLAG_CLIP 0x4
|
||||||
|
#define FT_RASTER_FLAG_SDF 0x8
|
||||||
|
|
||||||
/* these constants are deprecated; use the corresponding */
|
/* these constants are deprecated; use the corresponding */
|
||||||
/* `FT_RASTER_FLAG_XXX` values instead */
|
/* `FT_RASTER_FLAG_XXX` values instead */
|
||||||
|
@ -1047,6 +1055,23 @@ FT_BEGIN_HEADER
|
||||||
} FT_Raster_Params;
|
} FT_Raster_Params;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @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:
|
* @functype:
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType incremental loading (specification).
|
* FreeType incremental loading (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002-2020 by
|
* Copyright (C) 2002-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -213,9 +213,14 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @description:
|
* @description:
|
||||||
* A function used to retrieve the basic metrics of a given glyph index
|
* A function used to retrieve the basic metrics of a given glyph index
|
||||||
* before accessing its data. This is necessary because, in certain
|
* before accessing its data. This allows for handling font types such
|
||||||
* formats like TrueType, the metrics are stored in a different place
|
* as PCL~XL Format~1, Class~2 downloaded TrueType fonts, where the glyph
|
||||||
* from the glyph images proper.
|
* 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.
|
||||||
*
|
*
|
||||||
* @input:
|
* @input:
|
||||||
* incremental ::
|
* incremental ::
|
||||||
|
@ -235,7 +240,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @output:
|
* @output:
|
||||||
* ametrics ::
|
* ametrics ::
|
||||||
* The replacement glyph metrics in font units.
|
* The glyph metrics in font units.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
typedef FT_Error
|
typedef FT_Error
|
||||||
|
@ -264,7 +269,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* get_glyph_metrics ::
|
* get_glyph_metrics ::
|
||||||
* The function to get glyph metrics. May be null if the font does not
|
* The function to get glyph metrics. May be null if the font does not
|
||||||
* provide overriding glyph metrics.
|
* require it.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
typedef struct FT_Incremental_FuncsRec_
|
typedef struct FT_Incremental_FuncsRec_
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* FreeType API for color filtering of subpixel bitmap glyphs
|
* FreeType API for color filtering of subpixel bitmap glyphs
|
||||||
* (specification).
|
* (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2006-2020 by
|
* Copyright (C) 2006-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -55,13 +55,12 @@ FT_BEGIN_HEADER
|
||||||
* ClearType-style LCD rendering exploits the color-striped structure of
|
* ClearType-style LCD rendering exploits the color-striped structure of
|
||||||
* LCD pixels, increasing the available resolution in the direction of
|
* LCD pixels, increasing the available resolution in the direction of
|
||||||
* the stripe (usually horizontal RGB) by a factor of~3. Using the
|
* the stripe (usually horizontal RGB) by a factor of~3. Using the
|
||||||
* subpixels coverages unfiltered can create severe color fringes
|
* subpixel coverages unfiltered can create severe color fringes
|
||||||
* especially when rendering thin features. Indeed, to produce
|
* especially when rendering thin features. Indeed, to produce
|
||||||
* black-on-white text, the nearby color subpixels must be dimmed
|
* black-on-white text, the nearby color subpixels must be dimmed
|
||||||
* equally.
|
* evenly. Therefore, an equalizing 5-tap FIR filter should be applied
|
||||||
*
|
* to subpixel coverages regardless of pixel boundaries and should have
|
||||||
* A good 5-tap FIR filter should be applied to subpixel coverages
|
* these properties:
|
||||||
* regardless of pixel boundaries and should have these properties:
|
|
||||||
*
|
*
|
||||||
* 1. It should be symmetrical, like {~a, b, c, b, a~}, to avoid
|
* 1. It should be symmetrical, like {~a, b, c, b, a~}, to avoid
|
||||||
* any shifts in appearance.
|
* any shifts in appearance.
|
||||||
|
@ -84,7 +83,7 @@ FT_BEGIN_HEADER
|
||||||
* Harmony LCD rendering is suitable to panels with any regular subpixel
|
* Harmony LCD rendering is suitable to panels with any regular subpixel
|
||||||
* structure, not just monitors with 3 color striped subpixels, as long
|
* structure, not just monitors with 3 color striped subpixels, as long
|
||||||
* as the color subpixels have fixed positions relative to the pixel
|
* as the color subpixels have fixed positions relative to the pixel
|
||||||
* center. In this case, each color channel is then rendered separately
|
* center. In this case, each color channel can be rendered separately
|
||||||
* after shifting the outline opposite to the subpixel shift so that the
|
* after shifting the outline opposite to the subpixel shift so that the
|
||||||
* coverage maps are aligned. This method is immune to color fringes
|
* coverage maps are aligned. This method is immune to color fringes
|
||||||
* because the shifts do not change integral coverage.
|
* because the shifts do not change integral coverage.
|
||||||
|
@ -101,9 +100,9 @@ FT_BEGIN_HEADER
|
||||||
* clockwise. Harmony with default LCD geometry is equivalent to
|
* clockwise. Harmony with default LCD geometry is equivalent to
|
||||||
* ClearType with light filter.
|
* ClearType with light filter.
|
||||||
*
|
*
|
||||||
* As a result of ClearType filtering or Harmony rendering, the
|
* As a result of ClearType filtering or Harmony shifts, the resulting
|
||||||
* dimensions of LCD bitmaps can be either wider or taller than the
|
* dimensions of LCD bitmaps can be slightly wider or taller than the
|
||||||
* dimensions of the corresponding outline with regard to the pixel grid.
|
* dimensions the original outline with regard to the pixel grid.
|
||||||
* For example, for @FT_RENDER_MODE_LCD, the filter adds 2~subpixels to
|
* 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
|
* the left, and 2~subpixels to the right. The bitmap offset values are
|
||||||
* adjusted accordingly, so clients shouldn't need to modify their layout
|
* adjusted accordingly, so clients shouldn't need to modify their layout
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Generic list support for FreeType (specification).
|
* Generic list support for FreeType (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
184
deps/freetype/include/freetype2/freetype/ftlogging.h
vendored
Normal file
184
deps/freetype/include/freetype2/freetype/ftlogging.h
vendored
Normal file
|
@ -0,0 +1,184 @@
|
||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* 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 */
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* LZW-compressed stream support.
|
* LZW-compressed stream support.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2004-2020 by
|
* Copyright (C) 2004-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Additional Mac-specific API.
|
* Additional Mac-specific API.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.
|
* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType Multiple Master font interface (specification).
|
* FreeType Multiple Master font interface (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType modules public interface (specification).
|
* FreeType modules public interface (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -45,10 +45,12 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @description:
|
* @description:
|
||||||
* The definitions below are used to manage modules within FreeType.
|
* The definitions below are used to manage modules within FreeType.
|
||||||
* Modules can be added, upgraded, and removed at runtime. Additionally,
|
* Internal and external modules can be added, upgraded, and removed at
|
||||||
* some module properties can be controlled also.
|
* runtime. For example, an alternative renderer or proprietary font
|
||||||
|
* driver can be registered and prioritized. Additionally, some module
|
||||||
|
* properties can also be controlled.
|
||||||
*
|
*
|
||||||
* Here is a list of possible values of the `module_name` field in the
|
* Here is a list of existing values of the `module_name` field in the
|
||||||
* @FT_Module_Class structure.
|
* @FT_Module_Class structure.
|
||||||
*
|
*
|
||||||
* ```
|
* ```
|
||||||
|
@ -86,6 +88,7 @@ FT_BEGIN_HEADER
|
||||||
* FT_Remove_Module
|
* FT_Remove_Module
|
||||||
* FT_Add_Default_Modules
|
* FT_Add_Default_Modules
|
||||||
*
|
*
|
||||||
|
* FT_FACE_DRIVER_NAME
|
||||||
* FT_Property_Set
|
* FT_Property_Set
|
||||||
* FT_Property_Get
|
* FT_Property_Get
|
||||||
* FT_Set_Default_Properties
|
* FT_Set_Default_Properties
|
||||||
|
@ -328,6 +331,26 @@ FT_BEGIN_HEADER
|
||||||
FT_Module module );
|
FT_Module module );
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @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:
|
* @function:
|
||||||
|
@ -485,8 +508,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* ```
|
* ```
|
||||||
* FREETYPE_PROPERTIES=truetype:interpreter-version=35 \
|
* FREETYPE_PROPERTIES=truetype:interpreter-version=35 \
|
||||||
* cff:no-stem-darkening=0 \
|
* cff:no-stem-darkening=0
|
||||||
* autofitter:warping=1
|
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
* @inout:
|
* @inout:
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType module error offsets (specification).
|
* FreeType module error offsets (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2001-2020 by
|
* Copyright (C) 2001-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -171,6 +171,7 @@
|
||||||
FT_MODERRDEF( Type42, 0x1400, "Type 42 module" )
|
FT_MODERRDEF( Type42, 0x1400, "Type 42 module" )
|
||||||
FT_MODERRDEF( Winfonts, 0x1500, "Windows FON/FNT module" )
|
FT_MODERRDEF( Winfonts, 0x1500, "Windows FON/FNT module" )
|
||||||
FT_MODERRDEF( GXvalid, 0x1600, "GX validation module" )
|
FT_MODERRDEF( GXvalid, 0x1600, "GX validation module" )
|
||||||
|
FT_MODERRDEF( Sdf, 0x1700, "Signed distance field raster module" )
|
||||||
|
|
||||||
|
|
||||||
#ifdef FT_MODERR_END_LIST
|
#ifdef FT_MODERR_END_LIST
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType API for validating OpenType tables (specification).
|
* FreeType API for validating OpenType tables (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2004-2020 by
|
* Copyright (C) 2004-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* Support for the FT_Outline type used to store glyph shapes of
|
* Support for the FT_Outline type used to store glyph shapes of
|
||||||
* most scalable font formats (specification).
|
* most scalable font formats (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType API for possible FT_Parameter tags (specification only).
|
* FreeType API for possible FT_Parameter tags (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2017-2020 by
|
* Copyright (C) 2017-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType API for accessing PFR-specific data (specification only).
|
* FreeType API for accessing PFR-specific data (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002-2020 by
|
* Copyright (C) 2002-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType renderer modules public interface (specification).
|
* FreeType renderer modules public interface (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType size objects management (specification).
|
* FreeType size objects management (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
*
|
*
|
||||||
* This is _not_ used to retrieve glyph names!
|
* This is _not_ used to retrieve glyph names!
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType path stroker (specification).
|
* FreeType path stroker (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002-2020 by
|
* Copyright (C) 2002-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* FreeType synthesizing code for emboldening and slanting
|
* FreeType synthesizing code for emboldening and slanting
|
||||||
* (specification).
|
* (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2000-2020 by
|
* Copyright (C) 2000-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType low-level system interface definition (specification).
|
* FreeType low-level system interface definition (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType trigonometric functions (specification).
|
* FreeType trigonometric functions (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2001-2020 by
|
* Copyright (C) 2001-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType simple types definitions (specification only).
|
* FreeType simple types definitions (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType API for accessing Windows fnt-specific data.
|
* FreeType API for accessing Windows fnt-specific data.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2003-2020 by
|
* Copyright (C) 2003-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* Basic Type 1/Type 2 tables definitions and interface (specification
|
* Basic Type 1/Type 2 tables definitions and interface (specification
|
||||||
* only).
|
* only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* TrueType name ID definitions (specification only).
|
* TrueType name ID definitions (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* Basic SFNT/TrueType tables definitions and interface
|
* Basic SFNT/TrueType tables definitions and interface
|
||||||
* (specification only).
|
* (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Tags for TrueType and OpenType tables (specification only).
|
* Tags for TrueType and OpenType tables (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
2
deps/freetype/include/freetype2/ft2build.h
vendored
2
deps/freetype/include/freetype2/ft2build.h
vendored
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType 2 build and setup macros.
|
* FreeType 2 build and setup macros.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2021 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
BIN
deps/freetype/lib/libfreetype.a
vendored
BIN
deps/freetype/lib/libfreetype.a
vendored
Binary file not shown.
8
deps/freetype/lib/pkgconfig/freetype2.pc
vendored
8
deps/freetype/lib/pkgconfig/freetype2.pc
vendored
|
@ -1,14 +1,14 @@
|
||||||
prefix=
|
prefix=
|
||||||
exec_prefix=${prefix}
|
exec_prefix=${prefix}
|
||||||
libdir=${prefix}/lib
|
libdir=${exec_prefix}/lib
|
||||||
includedir=${prefix}/include
|
includedir=${prefix}/include
|
||||||
|
|
||||||
Name: FreeType 2
|
Name: FreeType 2
|
||||||
URL: https://freetype.org
|
URL: https://freetype.org
|
||||||
Description: A free, high-quality, and portable font engine.
|
Description: A free, high-quality, and portable font engine.
|
||||||
Version: 23.4.17
|
Version: 24.0.18
|
||||||
Requires:
|
Requires:
|
||||||
Requires.private: zlib, bzip2, libpng
|
Requires.private: zlib, libpng, harfbuzz >= 2.0.0, libbrotlidec
|
||||||
Libs: -L${libdir} -lfreetype
|
Libs: -L${libdir} -lfreetype
|
||||||
Libs.private:
|
Libs.private: -lbz2
|
||||||
Cflags: -I${includedir}/freetype2
|
Cflags: -I${includedir}/freetype2
|
||||||
|
|
Loading…
Reference in a new issue