colorspace as enumerator form actual config

This commit is contained in:
Jakub Jezek 2023-06-26 18:09:33 +02:00
parent 32297c5bf3
commit 2b1fe7abb6
No known key found for this signature in database
GPG key ID: 730D7C02726179A7

View file

@ -1,7 +1,8 @@
import pyblish.api
from openpype.pipeline import registered_host
from openpype.pipeline import publish
from openpype.lib import TextDef
from openpype.lib import EnumDef
from openpype.pipeline import colorspace
class CollectColorspace(pyblish.api.InstancePlugin,
@ -13,9 +14,14 @@ class CollectColorspace(pyblish.api.InstancePlugin,
order = pyblish.api.CollectorOrder + 0.49
hosts = ["traypublisher"]
colorspace_items = [
(None, "Don't override")
]
def process(self, instance):
values = self.get_attr_values_from_data(instance.data)
colorspace = values.get("colorspace", None)
self.log.debug("colorspace: {}".format(colorspace))
if not colorspace:
return
@ -27,10 +33,38 @@ class CollectColorspace(pyblish.api.InstancePlugin,
colorspace=colorspace
)
@classmethod
def apply_settings(cls, project_settings):
host = registered_host()
host_name = host.name
project_name = host.get_current_project_name()
config_data = colorspace.get_imageio_config(
project_name, host_name,
project_settings=project_settings
)
if config_data:
filepath = config_data["path"]
config_items = colorspace.get_ocio_config_colorspaces(filepath)
cls.colorspace_items.extend((
(name, name)
for name, family in config_items.items()
))
else:
cls.colorspace_items.extend([
("sRGB", "sRGB"),
("rec709", "rec709"),
("ACES", "ACES"),
("ACEScg", "ACEScg")
])
@classmethod
def get_attribute_defs(cls):
return [
TextDef("colorspace",
label="Override Colorspace",
placeholder="")
EnumDef(
"colorspace",
cls.colorspace_items,
default="Don't override",
label="Override Colorspace"
)
]