diff options
-rw-r--r-- | intern/opencolorio/ocio_impl.cc | 37 | ||||
-rw-r--r-- | source/blender/imbuf/intern/colormanagement.c | 11 |
2 files changed, 13 insertions, 35 deletions
diff --git a/intern/opencolorio/ocio_impl.cc b/intern/opencolorio/ocio_impl.cc index 5c05d18ac48..82536a74159 100644 --- a/intern/opencolorio/ocio_impl.cc +++ b/intern/opencolorio/ocio_impl.cc @@ -25,7 +25,6 @@ * ***** END GPL LICENSE BLOCK ***** */ -#include <fstream> #include <iostream> #include <sstream> #include <string.h> @@ -56,19 +55,6 @@ using namespace OCIO_NAMESPACE; # define __func__ __FUNCTION__ #endif -#ifdef _WIN32 -# ifndef NOGDI -# define NOGDI -# endif -# ifndef NOMINMAX -# define NOMINMAX -# endif -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include <windows.h> -#endif - static void OCIO_reportError(const char *err) { std::cerr << "OpenColorIO Error: " << err << std::endl; @@ -135,26 +121,7 @@ OCIO_ConstConfigRcPtr *OCIOImpl::configCreateFromFile(const char *filename) ConstConfigRcPtr *config = OBJECT_GUARDED_NEW(ConstConfigRcPtr); try { -#ifdef _WIN32 - const int length_mb = strlen(filename); - const int length_wc = MultiByteToWideChar(CP_UTF8, - 0, - filename, - length_mb, - NULL, - 0); - std::wstring wfilename(length_wc, 0); - MultiByteToWideChar(CP_UTF8, - 0, - filename, - length_mb, - &wfilename[0], - length_wc); - std::fstream stream(wfilename); -#else - std::fstream stream(filename); -#endif - *config = Config::CreateFromStream(stream); + *config = Config::CreateFromFile(filename); if (*config) return (OCIO_ConstConfigRcPtr *) config; @@ -655,7 +622,7 @@ void OCIOImpl::matrixTransformScale(float *m44, float *offset4, const float *sca const char *OCIOImpl::getVersionString(void) { - return OCIO_NAMESPACE::GetVersion(); + return GetVersion(); } int OCIOImpl::getVersionHex(void) diff --git a/source/blender/imbuf/intern/colormanagement.c b/source/blender/imbuf/intern/colormanagement.c index e38367414fd..e4e93d3c4da 100644 --- a/source/blender/imbuf/intern/colormanagement.c +++ b/source/blender/imbuf/intern/colormanagement.c @@ -635,7 +635,18 @@ void colormanagement_init(void) if (configdir) { BLI_join_dirfile(configfile, sizeof(configfile), configdir, BCM_CONFIG_FILE); + +#ifdef WIN32 + { + /* quite a hack to support loading configuration from path with non-acii symbols */ + + char short_name[256]; + BLI_get_short_name(short_name, configfile); + config = OCIO_configCreateFromFile(short_name); + } +#else config = OCIO_configCreateFromFile(configfile); +#endif } } |