Revert "Fix T47869: OpenColorIO Error with unicode path to config file under Windows"

White the config itself could be loaded this way, lookup tables can not. Additionally,
that's not really clear how to solve the issue with search path which is multi-byte
only in the API.

Reverting for further investigation.

This reverts commit ab4307aa08.
This commit is contained in:
Sergey Sharybin
2016-03-23 19:25:29 +01:00
parent 376eb77fd7
commit c1095c7a9f
2 changed files with 13 additions and 35 deletions

View File

@@ -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)

View File

@@ -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
}
}