[vlc-devel] [PATCH 5/9] freetype: new file: freetype.h

Salah-Eddin Shaban salshaaban at gmail.com
Sat Apr 18 19:56:17 CEST 2015


---
 modules/text_renderer/freetype.h | 72 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)
 create mode 100644 modules/text_renderer/freetype.h

diff --git a/modules/text_renderer/freetype.h b/modules/text_renderer/freetype.h
new file mode 100644
index 0000000..7f5ce5e
--- /dev/null
+++ b/modules/text_renderer/freetype.h
@@ -0,0 +1,72 @@
+/*****************************************************************************
+ * freetype.h : Put text on the video, using freetype2
+ *****************************************************************************
+ * Copyright (C) 2015 VLC authors and VideoLAN
+ * $Id$
+ *
+ * Authors: Salah-Eddin Shaban <salshaaban at gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+typedef struct faces_cache_t
+{
+    FT_Face        *p_faces;
+    text_style_t   *p_styles;
+    int            i_faces_count;
+    int            i_cache_size;
+} faces_cache_t;
+
+/*****************************************************************************
+ * filter_sys_t: freetype local data
+ *****************************************************************************
+ * This structure is part of the video output thread descriptor.
+ * It describes the freetype specific properties of an output thread.
+ *****************************************************************************/
+struct filter_sys_t
+{
+    FT_Library     p_library;   /* handle to library     */
+    FT_Face        p_face;      /* handle to face object */
+    FT_Stroker     p_stroker;   /* handle to path stroker object */
+
+    xml_reader_t  *p_xml;       /* vlc xml parser */
+
+    text_style_t   style;       /* Current Style */
+
+    /* More styles... */
+    float          f_shadow_vector_x;
+    float          f_shadow_vector_y;
+    int            i_default_font_size;
+
+    /* Attachments */
+    input_attachment_t **pp_font_attachments;
+    int                  i_font_attachments;
+
+    /* Font faces cache */
+    faces_cache_t  faces_cache;
+
+    char * (*pf_select) (filter_t *, const char* family,
+                               bool bold, bool italic, int size,
+                               int *index);
+
+};
+
+#define FT_FLOOR(X)     ((X & -64) >> 6)
+#define FT_CEIL(X)      (((X + 63) & -64) >> 6)
+#ifndef FT_MulFix
+ #define FT_MulFix(v, s) (((v)*(s))>>16)
+#endif
+
+FT_Face LoadFace( filter_t *p_filter, const text_style_t *p_style );
-- 
1.9.1




More information about the vlc-devel mailing list