Color Management: Simplify image format initialization
No need to have a not for render case, these settings are only used when Save as Render or Override are on and in that case it make sense to match the default render view transform. Ref #144911 Pull Request: https://projects.blender.org/blender/blender/pulls/146487
This commit is contained in:
@@ -190,21 +190,11 @@ void BKE_color_managed_display_settings_copy(ColorManagedDisplaySettings *new_se
|
||||
const ColorManagedDisplaySettings *settings);
|
||||
|
||||
/**
|
||||
* Initialize view settings to be best suitable for render type of viewing.
|
||||
* This will use default view transform from the OCIO configuration if none
|
||||
* is specified.
|
||||
* Initialize view settings to the default.
|
||||
*/
|
||||
void BKE_color_managed_view_settings_init_render(
|
||||
ColorManagedViewSettings *view_settings,
|
||||
const ColorManagedDisplaySettings *display_settings,
|
||||
const char *view_transform);
|
||||
|
||||
/**
|
||||
* Initialize view settings which are best suitable for viewing non-render images.
|
||||
* For example,s movie clips while tracking.
|
||||
*/
|
||||
void BKE_color_managed_view_settings_init_untonemapped(
|
||||
ColorManagedViewSettings *view_settings, const ColorManagedDisplaySettings *display_settings);
|
||||
void BKE_color_managed_view_settings_init(ColorManagedViewSettings *view_settings,
|
||||
const ColorManagedDisplaySettings *display_settings,
|
||||
const char *view_transform);
|
||||
|
||||
void BKE_color_managed_view_settings_copy(ColorManagedViewSettings *new_settings,
|
||||
const ColorManagedViewSettings *settings);
|
||||
|
||||
@@ -23,7 +23,7 @@ struct RenderData;
|
||||
|
||||
/* Init/Copy/Free */
|
||||
|
||||
void BKE_image_format_init(ImageFormatData *imf, const bool render);
|
||||
void BKE_image_format_init(ImageFormatData *imf);
|
||||
void BKE_image_format_copy(ImageFormatData *imf_dst, const ImageFormatData *imf_src);
|
||||
void BKE_image_format_free(ImageFormatData *imf);
|
||||
|
||||
|
||||
@@ -1881,10 +1881,9 @@ void BKE_color_managed_display_settings_copy(ColorManagedDisplaySettings *new_se
|
||||
STRNCPY_UTF8(new_settings->display_device, settings->display_device);
|
||||
}
|
||||
|
||||
void BKE_color_managed_view_settings_init_render(
|
||||
ColorManagedViewSettings *view_settings,
|
||||
const ColorManagedDisplaySettings *display_settings,
|
||||
const char *view_transform)
|
||||
void BKE_color_managed_view_settings_init(ColorManagedViewSettings *view_settings,
|
||||
const ColorManagedDisplaySettings *display_settings,
|
||||
const char *view_transform)
|
||||
{
|
||||
const ColorManagedDisplay *display = IMB_colormanagement_display_get_named(
|
||||
display_settings->display_device);
|
||||
@@ -1907,12 +1906,6 @@ void BKE_color_managed_view_settings_init_render(
|
||||
IMB_colormanagement_validate_settings(display_settings, view_settings);
|
||||
}
|
||||
|
||||
void BKE_color_managed_view_settings_init_untonemapped(
|
||||
ColorManagedViewSettings *view_settings, const ColorManagedDisplaySettings *display_settings)
|
||||
{
|
||||
IMB_colormanagement_init_untonemapped_view_settings(view_settings, display_settings);
|
||||
}
|
||||
|
||||
void BKE_color_managed_view_settings_copy(ColorManagedViewSettings *new_settings,
|
||||
const ColorManagedViewSettings *settings)
|
||||
{
|
||||
|
||||
@@ -28,19 +28,13 @@ namespace path_templates = blender::bke::path_templates;
|
||||
|
||||
/* Init/Copy/Free */
|
||||
|
||||
void BKE_image_format_init(ImageFormatData *imf, const bool render)
|
||||
void BKE_image_format_init(ImageFormatData *imf)
|
||||
{
|
||||
*imf = *DNA_struct_default_get(ImageFormatData);
|
||||
|
||||
BKE_color_managed_display_settings_init(&imf->display_settings);
|
||||
|
||||
if (render) {
|
||||
BKE_color_managed_view_settings_init_render(
|
||||
&imf->view_settings, &imf->display_settings, "Filmic");
|
||||
}
|
||||
else {
|
||||
BKE_color_managed_view_settings_init_untonemapped(&imf->view_settings, &imf->display_settings);
|
||||
}
|
||||
BKE_color_managed_view_settings_init(&imf->view_settings, &imf->display_settings, "AgX");
|
||||
|
||||
BKE_color_managed_colorspace_settings_init(&imf->linear_colorspace_settings);
|
||||
}
|
||||
@@ -931,7 +925,7 @@ void BKE_image_format_from_imbuf(ImageFormatData *im_format, const ImBuf *imbuf)
|
||||
char quality = imbuf->foptions.quality;
|
||||
bool is_depth_set = false;
|
||||
|
||||
BKE_image_format_init(im_format, false);
|
||||
BKE_image_format_init(im_format);
|
||||
im_format->media_type = MEDIA_TYPE_IMAGE;
|
||||
|
||||
/* file type */
|
||||
|
||||
@@ -69,7 +69,7 @@ bool BKE_image_save_options_init(ImageSaveOptions *opts,
|
||||
opts->scene = scene;
|
||||
opts->save_as_render = ima->source == IMA_SRC_VIEWER || save_as_render;
|
||||
|
||||
BKE_image_format_init(&opts->im_format, false);
|
||||
BKE_image_format_init(&opts->im_format);
|
||||
|
||||
void *lock;
|
||||
ImBuf *ibuf = BKE_image_acquire_ibuf(ima, iuser, &lock);
|
||||
|
||||
@@ -229,12 +229,11 @@ static void scene_init_data(ID *id)
|
||||
colorspace_name = IMB_colormanagement_role_colorspace_name_get(COLOR_ROLE_DEFAULT_SEQUENCER);
|
||||
|
||||
BKE_color_managed_display_settings_init(&scene->display_settings);
|
||||
BKE_color_managed_view_settings_init_render(
|
||||
&scene->view_settings, &scene->display_settings, "AgX");
|
||||
BKE_color_managed_view_settings_init(&scene->view_settings, &scene->display_settings, "AgX");
|
||||
STRNCPY_UTF8(scene->sequencer_colorspace_settings.name, colorspace_name);
|
||||
|
||||
BKE_image_format_init(&scene->r.im_format, true);
|
||||
BKE_image_format_init(&scene->r.bake.im_format, true);
|
||||
BKE_image_format_init(&scene->r.im_format);
|
||||
BKE_image_format_init(&scene->r.bake.im_format);
|
||||
|
||||
/* Curve Profile */
|
||||
scene->toolsettings->custom_bevel_profile_preset = BKE_curveprofile_add(PROF_PRESET_LINE);
|
||||
|
||||
@@ -347,7 +347,7 @@ static bNodeSocket *ntreeCompositOutputFileAddSocket(bNodeTree *ntree,
|
||||
}
|
||||
}
|
||||
else {
|
||||
BKE_image_format_init(&sockdata->format, false);
|
||||
BKE_image_format_init(&sockdata->format);
|
||||
}
|
||||
BKE_image_format_update_color_space_for_type(&sockdata->format);
|
||||
|
||||
|
||||
@@ -4847,15 +4847,15 @@ void blo_do_versions_280(FileData *fd, Library * /*lib*/, Main *bmain)
|
||||
* properly initialized previously. This is mere copy of #scene_init_data code. */
|
||||
if (scene->r.im_format.view_settings.look[0] == '\0') {
|
||||
BKE_color_managed_display_settings_init(&scene->r.im_format.display_settings);
|
||||
BKE_color_managed_view_settings_init_render(
|
||||
BKE_color_managed_view_settings_init(
|
||||
&scene->r.im_format.view_settings, &scene->r.im_format.display_settings, "Filmic");
|
||||
}
|
||||
|
||||
if (scene->r.bake.im_format.view_settings.look[0] == '\0') {
|
||||
BKE_color_managed_display_settings_init(&scene->r.bake.im_format.display_settings);
|
||||
BKE_color_managed_view_settings_init_render(&scene->r.bake.im_format.view_settings,
|
||||
&scene->r.bake.im_format.display_settings,
|
||||
"Filmic");
|
||||
BKE_color_managed_view_settings_init(&scene->r.bake.im_format.view_settings,
|
||||
&scene->r.bake.im_format.display_settings,
|
||||
"Filmic");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,13 +129,13 @@ static void viewport_settings_apply(GPUViewport &viewport,
|
||||
case eDRWColorManagementType::ViewTransform: {
|
||||
/* For workbench use only default view transform in configuration,
|
||||
* using no scene settings. */
|
||||
BKE_color_managed_view_settings_init_render(&view_settings, display_settings, nullptr);
|
||||
BKE_color_managed_view_settings_init(&view_settings, display_settings, nullptr);
|
||||
break;
|
||||
}
|
||||
case eDRWColorManagementType::ViewTransformAndLook: {
|
||||
/* Use only view transform + look and nothing else for lookdev without
|
||||
* scene lighting, as exposure depends on scene light intensity. */
|
||||
BKE_color_managed_view_settings_init_render(&view_settings, display_settings, nullptr);
|
||||
BKE_color_managed_view_settings_init(&view_settings, display_settings, nullptr);
|
||||
STRNCPY_UTF8(view_settings.view_transform, scene.view_settings.view_transform);
|
||||
STRNCPY_UTF8(view_settings.look, scene.view_settings.look);
|
||||
break;
|
||||
|
||||
@@ -75,7 +75,7 @@ static int screenshot_data_create(bContext *C, wmOperator *op, ScrArea *area)
|
||||
scd->crop = area->totrct;
|
||||
}
|
||||
|
||||
BKE_image_format_init(&scd->im_format, false);
|
||||
BKE_image_format_init(&scd->im_format);
|
||||
|
||||
op->customdata = scd;
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@ struct FileOutputItemsAccessor : public socket_items::SocketItemsAccessorDefault
|
||||
socket_items::set_item_name_and_make_unique<FileOutputItemsAccessor>(node, item, name);
|
||||
|
||||
item.save_as_render = true;
|
||||
BKE_image_format_init(&item.format, false);
|
||||
BKE_image_format_init(&item.format);
|
||||
BKE_image_format_update_color_space_for_type(&item.format);
|
||||
}
|
||||
|
||||
|
||||
@@ -47,8 +47,7 @@ static void node_init(bNodeTree * /*ntree*/, bNode *node)
|
||||
{
|
||||
NodeConvertToDisplay *nctd = MEM_callocN<NodeConvertToDisplay>(__func__);
|
||||
BKE_color_managed_display_settings_init(&nctd->display_settings);
|
||||
BKE_color_managed_view_settings_init_render(
|
||||
&nctd->view_settings, &nctd->display_settings, nullptr);
|
||||
BKE_color_managed_view_settings_init(&nctd->view_settings, &nctd->display_settings, nullptr);
|
||||
nctd->view_settings.flag |= COLORMANAGE_VIEW_ONLY_VIEW_LOOK;
|
||||
node->storage = nctd;
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ static void node_init(const bContext *C, PointerRNA *node_pointer)
|
||||
data->save_as_render = true;
|
||||
data->file_name = BLI_strdup("file_name");
|
||||
|
||||
BKE_image_format_init(&data->format, false);
|
||||
BKE_image_format_init(&data->format);
|
||||
BKE_image_format_media_type_set(
|
||||
&data->format, node_pointer->owner_id, MEDIA_TYPE_MULTI_LAYER_IMAGE);
|
||||
BKE_image_format_update_color_space_for_type(&data->format);
|
||||
|
||||
Reference in New Issue
Block a user