From 028b4c5b216073566fc9660f7e21bf9a8e9c5e40 Mon Sep 17 00:00:00 2001 From: Brad Hughes Date: Wed, 2 Mar 2016 16:23:45 -0500 Subject: [PATCH] Fix DirectWrite font module init error handling --- src/osd/modules/font/font_dwrite.cpp | 11 +++++++++-- src/osd/windows/winutil.cpp | 6 ++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/osd/modules/font/font_dwrite.cpp b/src/osd/modules/font/font_dwrite.cpp index 8f78badda3b..d455a928671 100644 --- a/src/osd/modules/font/font_dwrite.cpp +++ b/src/osd/modules/font/font_dwrite.cpp @@ -665,9 +665,15 @@ public: { HRESULT result; + osd_printf_verbose("FontProvider: Initializing DirectWrite\n"); + // Make sure we can initialize our api functions - HR_RET1(m_pfnD2D1CreateFactory.initialize()); - HR_RET1(m_pfnDWriteCreateFactory.initialize()); + if (m_pfnD2D1CreateFactory.initialize() + || m_pfnDWriteCreateFactory.initialize()) + { + osd_printf_error("ERROR: FontProvider: Failed to load DirectWrite functions.\n"); + return -1; + } // Create a Direct2D factory. HR_RET1(m_pfnD2D1CreateFactory( @@ -692,6 +698,7 @@ public: __uuidof(IWICImagingFactory), (void**)&m_wicFactory)); + osd_printf_verbose("FontProvider: DirectWrite initialized successfully.\n"); return 0; } diff --git a/src/osd/windows/winutil.cpp b/src/osd/windows/winutil.cpp index fe835301907..05dd1541ced 100644 --- a/src/osd/windows/winutil.cpp +++ b/src/osd/windows/winutil.cpp @@ -187,14 +187,20 @@ int lazy_loaded_function::initialize() } if (m_module == NULL) + { + osd_printf_verbose("Could not find DLL to dynamically link function %s.\n", m_name.c_str()); return ERROR_DLL_NOT_FOUND; + } } if (m_pfn == nullptr) { m_pfn = GetProcAddress(m_module, m_name.c_str()); if (m_pfn == nullptr) + { + osd_printf_verbose("Could not find function address to dynamically link function %s.\n", m_name.c_str()); return ERROR_NOT_FOUND; + } } m_initialized = true;