color: adjust a few error codes in our parametric creator API

If a certain feature is unsupported, return UNSUPPORTED instead of
BAD_TF, BAD_PRIMARIES, etc.

Also, up to now cm->get_color_profile_from_params() would return
UNSUPPORTED. But this is different from the other UNSUPPORTED usages, so
return a new error.

Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
This commit is contained in:
Leandro Ribeiro 2024-12-16 14:22:17 -03:00 committed by Pekka Paalanen
parent b852744977
commit 9dcc5f20f8
2 changed files with 9 additions and 10 deletions

View file

@ -357,10 +357,9 @@ enum weston_transfer_function {
enum weston_color_profile_param_builder_error {
WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_INVALID_TF = 0,
WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_INVALID_PRIMARIES,
WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_INVALID_TARGET_PRIMARIES,
WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_CIE_XY_OUT_OF_RANGE,
WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_CREATE_FAILED,
WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_INVALID_LUMINANCE,
WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_INCONSISTENT_LUMINANCES,
WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_INCOMPLETE_SET,
WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_ALREADY_SET,
WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_UNSUPPORTED,

View file

@ -198,7 +198,7 @@ weston_color_profile_param_builder_set_primaries(struct weston_color_profile_par
bool success = true;
if (!((cm->supported_color_features >> WESTON_COLOR_FEATURE_SET_PRIMARIES) & 1)) {
store_error(builder, WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_INVALID_PRIMARIES,
store_error(builder, WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_UNSUPPORTED,
"set_primaries not supported by the color manager");
success = false;
}
@ -346,7 +346,7 @@ weston_color_profile_param_builder_set_tf_power_exponent(struct weston_color_pro
bool success = true;
if (!((cm->supported_color_features >> WESTON_COLOR_FEATURE_SET_TF_POWER) & 1)) {
store_error(builder, WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_INVALID_TF,
store_error(builder, WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_UNSUPPORTED,
"set_tf_power not supported by the color manager");
success = false;
}
@ -465,7 +465,7 @@ weston_color_profile_param_builder_set_target_primaries(struct weston_color_prof
bool success = true;
if (!((cm->supported_color_features >> WESTON_COLOR_FEATURE_SET_MASTERING_DISPLAY_PRIMARIES) & 1)) {
store_error(builder, WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_INVALID_TARGET_PRIMARIES,
store_error(builder, WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_UNSUPPORTED,
"set_mastering_display_primaries not supported by " \
"the color manager");
success = false;
@ -683,12 +683,12 @@ validate_maxcll(struct weston_color_profile_param_builder *builder)
return;
if (builder->params.target_min_luminance >= builder->params.maxCLL)
store_error(builder, WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_INCONSISTENT_LUMINANCES,
store_error(builder, WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_INVALID_LUMINANCE,
"maxCLL (%f) should be greater or equal to target min luminance (%f)",
builder->params.maxCLL, builder->params.target_min_luminance);
if (builder->params.target_max_luminance < builder->params.maxCLL)
store_error(builder, WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_INCONSISTENT_LUMINANCES,
store_error(builder, WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_INVALID_LUMINANCE,
"maxCLL (%f) should not be greater than target max luminance (%f)",
builder->params.maxCLL, builder->params.target_max_luminance);
}
@ -700,12 +700,12 @@ validate_maxfall(struct weston_color_profile_param_builder *builder)
return;
if (builder->params.target_min_luminance >= builder->params.maxFALL)
store_error(builder, WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_INCONSISTENT_LUMINANCES,
store_error(builder, WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_INVALID_LUMINANCE,
"maxFALL (%f) should be greater or equal to min luminance (%f)",
builder->params.maxFALL, builder->params.target_min_luminance);
if (builder->params.target_max_luminance < builder->params.maxFALL)
store_error(builder, WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_INCONSISTENT_LUMINANCES,
store_error(builder, WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_INVALID_LUMINANCE,
"maxFALL (%f) should not be greater than target max luminance (%f)",
builder->params.maxFALL, builder->params.target_max_luminance);
}
@ -843,7 +843,7 @@ weston_color_profile_param_builder_create_color_profile(struct weston_color_prof
ret = cm->get_color_profile_from_params(cm, params, name_part,
&cprof, err_msg);
if (!ret)
*err = WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_UNSUPPORTED;
*err = WESTON_COLOR_PROFILE_PARAM_BUILDER_ERROR_CREATE_FAILED;
out:
weston_color_profile_param_builder_destroy(builder);