MCPcopy Create free account
hub / github.com/AcademySoftwareFoundation/OpenColorIO / CreateFromBuiltinConfig

Method CreateFromBuiltinConfig

src/OpenColorIO/Config.cpp:1233–1265  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1231}
1232
1233ConstConfigRcPtr Config::CreateFromBuiltinConfig(const char * configName)
1234{
1235 std::string builtinConfigName = configName;
1236
1237 // Normalize the input to the URI format.
1238 if (!StringUtils::StartsWith(builtinConfigName, OCIO_BUILTIN_URI_PREFIX))
1239 {
1240 builtinConfigName = std::string(OCIO_BUILTIN_URI_PREFIX) + builtinConfigName;
1241 }
1242
1243 // Resolve the URI if needed.
1244 const std::string uri = ResolveConfigPath(builtinConfigName.c_str());
1245
1246 // Check if the config path starts with ocio://
1247 static const std::regex uriPattern(R"(ocio:\/\/([^\s]+))");
1248 std::smatch match;
1249 if (std::regex_search(uri, match, uriPattern))
1250 {
1251 // Store config path without the "ocio://" prefix, if present.
1252 builtinConfigName = match.str(1).c_str();
1253 }
1254
1255 ConstConfigRcPtr builtinConfig;
1256 const BuiltinConfigRegistry & reg = BuiltinConfigRegistry::Get();
1257
1258 // getBuiltinConfigByName will throw if config name not found.
1259 const char * builtinConfigStr = reg.getBuiltinConfigByName(builtinConfigName.c_str());
1260 std::istringstream iss;
1261 iss.str(builtinConfigStr);
1262 builtinConfig = Config::CreateFromStream(iss);
1263
1264 return builtinConfig;
1265}
1266
1267///////////////////////////////////////////////////////////////////////////
1268

Callers 5

test_MergeColorSpaceMethod · 0.80
testFromBuiltinConfigMethod · 0.80
test_rolesMethod · 0.80

Calls 3

StartsWithFunction · 0.85
ResolveConfigPathFunction · 0.85

Tested by 5

test_MergeColorSpaceMethod · 0.64
testFromBuiltinConfigMethod · 0.64
test_rolesMethod · 0.64