summaryrefslogtreecommitdiffstats
path: root/libass/ass.h
diff options
context:
space:
mode:
Diffstat (limited to 'libass/ass.h')
-rw-r--r--libass/ass.h47
1 files changed, 42 insertions, 5 deletions
diff --git a/libass/ass.h b/libass/ass.h
index 774f344..5fdee10 100644
--- a/libass/ass.h
+++ b/libass/ass.h
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2006 Evgeniy Stepanov <eugeni.stepanov@gmail.com>
+ * Copyright (C) 2011 Grigori Goronzy <greg@chown.ath.cx>
*
* This file is part of libass.
*
@@ -175,6 +176,24 @@ typedef enum {
int ass_library_version(void);
/**
+ * \brief Default Font provider to load fonts in libass' database
+ *
+ * NONE don't use any default font provider for font lookup
+ * AUTODETECT use the first available font provider
+ * CORETEXT force a CoreText based font provider (OS X only)
+ * FONTCONFIG force a Fontconfig based font provider
+ *
+ * libass uses the best shaper available by default.
+ */
+typedef enum {
+ ASS_FONTPROVIDER_NONE = 0,
+ ASS_FONTPROVIDER_AUTODETECT = 1,
+ ASS_FONTPROVIDER_CORETEXT,
+ ASS_FONTPROVIDER_FONTCONFIG,
+ ASS_FONTPROVIDER_DIRECTWRITE,
+} ASS_DefaultFontProvider;
+
+/**
* \brief Initialize the library.
* \return library handle or NULL if failed
*/
@@ -383,11 +402,29 @@ void ass_set_line_spacing(ASS_Renderer *priv, double line_spacing);
void ass_set_line_position(ASS_Renderer *priv, double line_position);
/**
+ * \brief Get the list of available font providers. The output array
+ * is allocated with malloc and can be released with free(). If an
+ * allocation error occurs, size is set to (size_t)-1.
+ * \param priv library handle
+ * \param providers output, list of default providers (malloc'ed array)
+ * \param size output, number of providers
+ * \return list of available font providers (user owns the returned array)
+ */
+void ass_get_available_font_providers(ASS_Library *priv,
+ ASS_DefaultFontProvider **providers,
+ size_t *size);
+
+/**
* \brief Set font lookup defaults.
* \param default_font path to default font to use. Must be supplied if
* fontconfig is disabled or unavailable.
* \param default_family fallback font family for fontconfig, or NULL
- * \param fc whether to use fontconfig
+ * \param dfp which font provider to use (one of ASS_DefaultFontProvider). In
+ * older libass version, this could be 0 or 1, where 1 enabled fontconfig.
+ * Newer relases also accept 0 (ASS_FONTPROVIDER_NONE) and 1
+ * (ASS_FONTPROVIDER_AUTODETECT), which is almost backward-compatible.
+ * If the requested fontprovider does not exist or fails to initialize, the
+ * behavior is the same as when ASS_FONTPROVIDER_NONE was passed.
* \param config path to fontconfig configuration file, or NULL. Only relevant
* if fontconfig is used.
* \param update whether fontconfig cache should be built/updated now. Only
@@ -396,8 +433,8 @@ void ass_set_line_position(ASS_Renderer *priv, double line_position);
* NOTE: font lookup must be configured before an ASS_Renderer can be used.
*/
void ass_set_fonts(ASS_Renderer *priv, const char *default_font,
- const char *default_family, int fc, const char *config,
- int update);
+ const char *default_family, int dfp,
+ const char *config, int update);
/**
* \brief Set selective style override mode.
@@ -426,8 +463,8 @@ void ass_set_selective_style_override_enabled(ASS_Renderer *priv, int bits);
void ass_set_selective_style_override(ASS_Renderer *priv, ASS_Style *style);
/**
- * \brief Update/build font cache. This needs to be called if it was
- * disabled when ass_set_fonts was set.
+ * \brief This is a stub and does nothing. Old documentation: Update/build font
+ * cache. This needs to be called if it was disabled when ass_set_fonts was set.
*
* \param priv renderer handle
* \return success