Skip to content

Commit becf748

Browse files
committed
Remove internal *ColorSpace* and *NamedTransform* duplication. Ensure that HDR views are first in the active_views list.
Signed-off-by: Thomas Mansencal <[email protected]>
1 parent ad02a76 commit becf748

File tree

2 files changed

+53
-7
lines changed

2 files changed

+53
-7
lines changed

opencolorio_config_aces/config/cg/generate/config.py

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1142,6 +1142,32 @@ def view_filterer(transform):
11421142

11431143
# CLF Transforms & BuiltinTransform Creation
11441144
# ==========================================
1145+
def remove_existing_colorspace(name):
1146+
"""Remove given existing *ColorSpace* from the current config data."""
1147+
1148+
for i, colorspace in enumerate(data.colorspaces[:]):
1149+
if colorspace["name"] == name:
1150+
LOGGER.info(
1151+
'Removing existing "%s" "ColorSpace" transform from '
1152+
"current config data.",
1153+
name,
1154+
)
1155+
1156+
data.colorspaces.pop(i)
1157+
1158+
def remove_existing_named_transform(name):
1159+
"""Remove given existing *NamedTransform* from the current config data."""
1160+
1161+
for i, named_transform in enumerate(data.named_transforms[:]):
1162+
if named_transform["name"] == name:
1163+
LOGGER.info(
1164+
'Removing existing "%s" "NamedTransform" transform from '
1165+
"current config data.",
1166+
name,
1167+
)
1168+
1169+
data.named_transforms.pop(i)
1170+
11451171
for transform_data in yield_from_config_mapping():
11461172
# Inherited from the "Reference" config.
11471173
if (
@@ -1178,16 +1204,22 @@ def view_filterer(transform):
11781204

11791205
colorspace = style_to_colorspace(**kwargs)
11801206
colorspace["transforms_data"] = [transform_data]
1207+
1208+
remove_existing_colorspace(colorspace["name"])
1209+
11811210
data.colorspaces.append(colorspace)
11821211
elif transform_data["interface"] == "NamedTransform":
11831212
LOGGER.info(
11841213
'Creating a "NamedTransform" transform for "%s" style...',
11851214
style,
11861215
)
11871216

1188-
colorspace = style_to_named_transform(**kwargs)
1189-
colorspace["transforms_data"] = [transform_data]
1190-
data.named_transforms.append(colorspace)
1217+
named_transform = style_to_named_transform(**kwargs)
1218+
named_transform["transforms_data"] = [transform_data]
1219+
1220+
remove_existing_named_transform(named_transform["name"])
1221+
1222+
data.named_transforms.append(named_transform)
11911223

11921224
if style and clf_transform_id:
11931225
LOGGER.warning(
@@ -1215,6 +1247,9 @@ def view_filterer(transform):
12151247

12161248
named_transform = clf_transform_to_named_transform(**kwargs)
12171249
named_transform["transforms_data"] = [transform_data]
1250+
1251+
remove_existing_named_transform(named_transform["name"])
1252+
12181253
data.named_transforms.append(named_transform)
12191254
else:
12201255
LOGGER.info(
@@ -1224,6 +1259,9 @@ def view_filterer(transform):
12241259

12251260
colorspace = clf_transform_to_colorspace(**kwargs)
12261261
colorspace["transforms_data"] = [transform_data]
1262+
1263+
remove_existing_colorspace(colorspace["name"])
1264+
12271265
data.colorspaces.append(colorspace)
12281266

12291267
# Inactive Colorspaces Filtering
@@ -1292,6 +1330,12 @@ def ordering(element):
12921330
data.view_transforms = sorted(data.view_transforms, key=lambda x: ordering(x))
12931331
data.looks = sorted(data.looks, key=lambda x: ordering(x))
12941332

1333+
for active_view in data.active_views[:]:
1334+
for pattern in ("SDR", "Un-tone-mapped", "Raw"):
1335+
if pattern in active_view:
1336+
data.active_views.remove(active_view)
1337+
data.active_views.append(active_view)
1338+
12951339
data.profile_version = build_configuration.ocio
12961340

12971341
config = generate_config(data, config_name, validate)

opencolorio_config_aces/config/reference/generate/config.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1188,11 +1188,13 @@ def generate_config_aces(
11881188
display["transforms_data"] = [transform_data]
11891189
display_name = display["name"]
11901190

1191-
if display not in displays:
1192-
displays.append(display)
1193-
1194-
if display_name not in display_names:
1191+
if display_name in display_names:
1192+
for existing_display in displays:
1193+
if existing_display["name"] == display_name:
1194+
existing_display["transforms_data"].append(transform_data)
1195+
else:
11951196
display_names.append(display_name)
1197+
displays.append(display)
11961198

11971199
shared_view = {
11981200
"display": display_name,

0 commit comments

Comments
 (0)