Try to move fontconfig cache delay to program startup on Windows.
[dcpomatic.git] / src / lib / util.cc
index cd2d2e753b3827c74e6491c49583b2595c97ed7f..4574757e0ae13e522f611aa7ee6870e594b53c42 100644 (file)
@@ -38,6 +38,9 @@
 #include "crypto.h"
 #include "compose.hpp"
 #include "audio_buffers.h"
+#include "string_text.h"
+#include "font.h"
+#include "render_text.h"
 #include <dcp/locale_convert.h>
 #include <dcp/util.h>
 #include <dcp/raw_convert.h>
@@ -358,6 +361,20 @@ dcpomatic_setup ()
 
        set_terminate (terminate);
 
+#ifdef DCPOMATIC_WINDOWS
+       putenv ("PANGOCAIRO_BACKEND=fontconfig");
+       putenv (String::compose("FONTCONFIG_PATH=%1", shared_path().string()).c_str());
+
+       /* Render something to fontconfig to create its cache */
+       list<StringText> subs;
+       dcp::SubtitleString ss(
+               optional<string>(), false, false, false, dcp::Colour(), 42, 1, dcp::Time(), dcp::Time(), 0, dcp::HALIGN_CENTER, 0, dcp::VALIGN_CENTER, dcp::DIRECTION_LTR,
+               "Hello dolly", dcp::NONE, dcp::Colour(), dcp::Time(), dcp::Time()
+               );
+       subs.push_back (StringText(ss, 0));
+       render_text (subs, list<shared_ptr<Font> >(), dcp::Size(640, 480), DCPTime(), 24);
+#endif
+
        Pango::init ();
        dcp::init ();
 
@@ -834,6 +851,29 @@ utf8_strlen (string s)
        return N;
 }
 
+string
+day_of_week_to_string (boost::gregorian::greg_weekday d)
+{
+       switch (d.as_enum()) {
+       case boost::date_time::Sunday:
+               return _("Sunday");
+       case boost::date_time::Monday:
+               return _("Monday");
+       case boost::date_time::Tuesday:
+               return _("Tuesday");
+       case boost::date_time::Wednesday:
+               return _("Wednesday");
+       case boost::date_time::Thursday:
+               return _("Thursday");
+       case boost::date_time::Friday:
+               return _("Friday");
+       case boost::date_time::Saturday:
+               return _("Saturday");
+       }
+
+       return d.as_long_string ();
+}
+
 #ifdef DCPOMATIC_VARIANT_SWAROOP
 
 /* Make up a key from the machine UUID */