Commit e37dfae6 authored by Felix Paul Kühne's avatar Felix Paul Kühne
Browse files

patches/libvlc: added fake font lookup mechanism to freetype

parent 337d3d3e
From 37a0eb47e096280e612740c90d0e02d362554160 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
Date: Fri, 3 May 2013 14:21:19 +0200
Subject: [PATCH 12/12] [HACK] freetype: added a fake font lookup mechanism
for iOS to use the packaged demo fonts
---
modules/text_renderer/freetype.c | 42 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/modules/text_renderer/freetype.c b/modules/text_renderer/freetype.c
index 1325d3e..a070edd 100644
--- a/modules/text_renderer/freetype.c
+++ b/modules/text_renderer/freetype.c
@@ -106,6 +106,9 @@
#include <TargetConditionals.h>
#if !TARGET_OS_IPHONE
#include <Carbon/Carbon.h>
+#else
+#include <CoreFoundation/CoreFoundation.h>
+#include <vlc_url.h>
#endif
#include <sys/param.h> /* for MAXPATHLEN */
#undef HAVE_FONTCONFIG
@@ -818,6 +821,40 @@ static char* MacLegacy_Select( filter_t *p_filter, const char* psz_fontname,
return psz_path;
}
+#else
+static char *iOSFake_Select( filter_t *p_filter, bool b_monospace, bool b_bold,
+ bool b_italic )
+{
+ // included for future implementation
+ VLC_UNUSED(p_filter);
+ VLC_UNUSED(b_bold);
+ VLC_UNUSED(b_italic);
+ VLC_UNUSED(b_monospace);
+
+ CFURLRef fileURL;
+ fileURL = CFBundleCopyResourceURL(CFBundleGetMainBundle(), b_monospace ?
+ CFSTR("SourceSansPro-Regular.ttf") : CFSTR("SourceCodePro-Regular.ttf"),
+ NULL,
+ NULL);
+ CFStringRef urlString = CFURLCopyFileSystemPath(fileURL, kCFURLPOSIXPathStyle);
+ CFRelease(fileURL);
+
+ if (!urlString)
+ return NULL;
+
+ CFIndex length = CFStringGetLength(urlString);
+ if (!length)
+ return NULL;
+ length++;
+
+ char *psz_path = (char *)malloc(length);
+ CFStringGetCString(urlString, psz_path, length, kCFStringEncodingUTF8);
+ CFRelease(urlString);
+
+ psz_path = strdup(psz_path);
+
+ return psz_path;
+}
#endif
#endif
@@ -2004,6 +2041,8 @@ static FT_Face LoadFace( filter_t *p_filter,
#elif defined( __APPLE__ )
#if !TARGET_OS_IPHONE
psz_fontfile = MacLegacy_Select( p_filter, p_style->psz_fontname, false, false, -1, &i_idx );
+#else
+ psz_fontfile = iOSFake_Select( p_filter, false, false, false );
#endif
#elif defined( WIN32 )
psz_fontfile = Win32_Select( p_filter,
@@ -2920,6 +2959,9 @@ static int Create( vlc_object_t *p_this )
#elif defined(__APPLE__)
#if !TARGET_OS_IPHONE
psz_fontfile = MacLegacy_Select( p_filter, psz_fontfamily, false, false, 0, &fontindex );
+#else
+ psz_fontfile = iOSFake_Select( p_filter, false, false, false );
+ psz_monofontfile = iOSFake_Select( p_filter, true, false, false );
#endif
#elif defined(WIN32)
psz_fontfile = Win32_Select( p_filter, psz_fontfamily, false, false,
--
1.7.12.4 (Apple Git-37)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment