Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht@blender.org>2021-01-31 23:01:25 +0300
committerBrecht Van Lommel <brecht@blender.org>2021-02-01 17:42:46 +0300
commit1b01957bb5961e9ac27fcf566b3e45238bd18473 (patch)
tree1d399951df5e0fcb8d3377ec0928d84b1f26910b
parent7c8cbc67abdd0e2293ca810a3832749bb6031649 (diff)
OpenColorIO: remove default display workaround
A fix for this is in 2.0 (and recent 1.1.x versions), no need for this anymore.
-rw-r--r--intern/opencolorio/ocio_impl.cc127
1 files changed, 0 insertions, 127 deletions
diff --git a/intern/opencolorio/ocio_impl.cc b/intern/opencolorio/ocio_impl.cc
index 92de9199261..e73f41cae6d 100644
--- a/intern/opencolorio/ocio_impl.cc
+++ b/intern/opencolorio/ocio_impl.cc
@@ -53,27 +53,6 @@ using namespace OCIO_NAMESPACE;
# define __func__ __FUNCTION__
#endif
-/* NOTE: This is because OCIO 1.1.0 has a bug which makes default
- * display to be the one which is first alphabetically.
- *
- * Fix has been submitted as a patch
- * https://github.com/imageworks/OpenColorIO/pull/638
- *
- * For until then we use first usable display instead. */
-#define DEFAULT_DISPLAY_WORKAROUND
-#ifdef DEFAULT_DISPLAY_WORKAROUND
-# include <algorithm>
-# include <map>
-# include <mutex>
-# include <set>
-# include <string>
-# include <vector>
-using std::map;
-using std::set;
-using std::string;
-using std::vector;
-#endif
-
static void OCIO_reportError(const char *err)
{
std::cerr << "OpenColorIO Error: " << err << std::endl;
@@ -216,30 +195,6 @@ int OCIOImpl::configGetIndexForColorSpace(OCIO_ConstConfigRcPtr *config, const c
const char *OCIOImpl::configGetDefaultDisplay(OCIO_ConstConfigRcPtr *config)
{
-#ifdef DEFAULT_DISPLAY_WORKAROUND
- if (getenv("OCIO_ACTIVE_DISPLAYS") == NULL) {
- const char *active_displays = (*(ConstConfigRcPtr *)config)->getActiveDisplays();
- if (active_displays[0] != '\0') {
- const char *separator_pos = strchr(active_displays, ',');
- if (separator_pos == NULL) {
- return active_displays;
- }
- static std::string active_display;
- /* NOTE: Configuration is shared and is never changed during
- * runtime, so we only guarantee two threads don't initialize at the
- * same. */
- static std::mutex mutex;
- mutex.lock();
- if (active_display.empty()) {
- active_display = active_displays;
- active_display[separator_pos - active_displays] = '\0';
- }
- mutex.unlock();
- return active_display.c_str();
- }
- }
-#endif
-
try {
return (*(ConstConfigRcPtr *)config)->getDefaultDisplay();
}
@@ -274,90 +229,8 @@ const char *OCIOImpl::configGetDisplay(OCIO_ConstConfigRcPtr *config, int index)
return NULL;
}
-#ifdef DEFAULT_DISPLAY_WORKAROUND
-namespace {
-
-void splitStringEnvStyle(vector<string> *tokens, const string &str)
-{
- tokens->clear();
- const int len = str.length();
- int token_start = 0, token_length = 0;
- for (int i = 0; i < len; ++i) {
- const char ch = str[i];
- if (ch != ',' && ch != ':') {
- /* Append non-separator char to a token. */
- ++token_length;
- }
- else {
- /* Append current token to the list (if any). */
- if (token_length > 0) {
- string token = str.substr(token_start, token_length);
- tokens->push_back(token);
- }
- /* Re-set token pointers. */
- token_start = i + 1;
- token_length = 0;
- }
- }
- /* Append token which might be at the end of the string. */
- if (token_length != 0) {
- string token = str.substr(token_start, token_length);
- tokens->push_back(token);
- }
-}
-
-string stringToLower(const string &str)
-{
- string lower = str;
- std::transform(lower.begin(), lower.end(), lower.begin(), tolower);
- return lower;
-}
-
-} // namespace
-#endif
-
const char *OCIOImpl::configGetDefaultView(OCIO_ConstConfigRcPtr *config, const char *display)
{
-#ifdef DEFAULT_DISPLAY_WORKAROUND
- /* NOTE: We assume that first active view always exists for a default
- * display. */
- if (getenv("OCIO_ACTIVE_VIEWS") == NULL) {
- ConstConfigRcPtr config_ptr = *((ConstConfigRcPtr *)config);
- const char *active_views_encoded = config_ptr->getActiveViews();
- if (active_views_encoded[0] != '\0') {
- const string display_lower = stringToLower(display);
- static map<string, string> default_display_views;
- static std::mutex mutex;
- mutex.lock();
- /* Check if the view is already known. */
- map<string, string>::const_iterator it = default_display_views.find(display_lower);
- if (it != default_display_views.end()) {
- mutex.unlock();
- return it->second.c_str();
- }
- /* Active views. */
- vector<string> active_views;
- splitStringEnvStyle(&active_views, active_views_encoded);
- /* Get all views supported by tge display. */
- set<string> display_views;
- const int num_display_views = config_ptr->getNumViews(display);
- for (int view_index = 0; view_index < num_display_views; ++view_index) {
- const char *view = config_ptr->getView(display, view_index);
- display_views.insert(stringToLower(view));
- }
- /* Get first view which is supported by tge display. */
- for (const string &view : active_views) {
- const string view_lower = stringToLower(view);
- if (display_views.find(view_lower) != display_views.end()) {
- default_display_views[display_lower] = view;
- mutex.unlock();
- return default_display_views[display_lower].c_str();
- }
- }
- mutex.unlock();
- }
- }
-#endif
try {
return (*(ConstConfigRcPtr *)config)->getDefaultView(display);
}