Skip to content

Commit 4c11a42

Browse files
committed
Implement support for viewing rules.
Signed-off-by: Thomas Mansencal <[email protected]>
1 parent 6f218c5 commit 4c11a42

File tree

3 files changed

+86
-77
lines changed

3 files changed

+86
-77
lines changed

opencolorio_config_aces/config/generation/common.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -409,8 +409,7 @@ def generate_config(
409409

410410
if data.file_rules:
411411
file_rules = ocio.FileRules()
412-
rule_index = 0
413-
for file_rule in reversed(data.file_rules):
412+
for i, file_rule in enumerate(data.file_rules):
414413
name = file_rule["name"]
415414
colorspace = file_rule["colorspace"]
416415
regex = file_rule.get("regex")
@@ -431,8 +430,7 @@ def generate_config(
431430
regex,
432431
colorspace,
433432
)
434-
file_rules.insertRule(rule_index, name, colorspace, regex)
435-
rule_index += 1
433+
file_rules.insertRule(i, name, colorspace, regex)
436434
else:
437435
LOGGER.debug(
438436
'Adding "%s" file rule with "%s" pattern and "%s" '
@@ -442,15 +440,20 @@ def generate_config(
442440
extension,
443441
colorspace,
444442
)
445-
file_rules.insertRule(rule_index, name, colorspace, pattern, extension)
446-
rule_index += 1
443+
file_rules.insertRule(i, name, colorspace, pattern, extension)
447444
config.setFileRules(file_rules)
448445

449446
if data.viewing_rules:
450447
viewing_rules = ocio.ViewingRules()
451-
for _i, _viewing_rule in enumerate(reversed(data.viewing_rules)):
452-
LOGGER.warning("Inserting a viewing rule is not supported yet!")
453-
# viewing_rules.insertRule()
448+
for i, viewing_rule in enumerate(data.viewing_rules):
449+
name = viewing_rule["name"]
450+
encodings = viewing_rule["encodings"]
451+
LOGGER.debug(
452+
'Adding "%s" viewing rule with "%s" encodings.', name, encodings
453+
)
454+
viewing_rules.insertRule(i, name)
455+
for encoding in encodings:
456+
viewing_rules.addEncoding(i, encoding)
454457
config.setViewingRules(viewing_rules)
455458

456459
if data.default_view_transform is not None:

opencolorio_config_aces/config/reference/generate/config.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -916,6 +916,7 @@ def generate_config_aces(
916916
"builtin_transform_style",
917917
"linked_display_colorspace_style",
918918
"interface",
919+
"viewing_rule",
919920
"encoding",
920921
"categories",
921922
"aliases",
@@ -1119,6 +1120,7 @@ def generate_config_aces(
11191120
"display": display_name,
11201121
"view": view_transform_name,
11211122
"view_transform": view_transform_name,
1123+
"rule": transform_data["viewing_rule"],
11221124
}
11231125
if shared_view not in shared_views:
11241126
LOGGER.info(
@@ -1300,6 +1302,10 @@ def ordering(element: str) -> int:
13001302
"colorspace": scene_reference_colorspace["name"],
13011303
}
13021304
],
1305+
viewing_rules=[
1306+
{"name": "Any Scene-linear or Log", "encodings": ["log", "scene-linear"]},
1307+
{"name": "Any Video", "encodings": ["sdr-video", "hdr-video"]},
1308+
],
13031309
default_view_transform=untonemapped_view_transform["name"],
13041310
profile_version=build_configuration.ocio,
13051311
)

0 commit comments

Comments
 (0)