clutter/color-state: Drop GObject properties
ColorState is inmutable so the GObject properties aren't necessary. Also move ClutterColorstate and ClutterTransferFunction enums to color-state.h now that they are not used as GObject properties. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4020>
This commit is contained in:
parent
dbfacc06bc
commit
8d9c70acda
@ -57,23 +57,6 @@
|
||||
#define UNIFORM_NAME_LUMINANCE_MAPPING "luminance_mapping"
|
||||
#define UNIFORM_NAME_COLOR_SPACE_MAPPING "color_space_mapping"
|
||||
|
||||
enum
|
||||
{
|
||||
PROP_0,
|
||||
|
||||
PROP_CONTEXT,
|
||||
PROP_COLORSPACE,
|
||||
PROP_PRIMARIES,
|
||||
PROP_TRANSFER_FUNCTION,
|
||||
PROP_MIN_LUMINANCE,
|
||||
PROP_MAX_LUMINANCE,
|
||||
PROP_REF_LUMINANCE,
|
||||
|
||||
N_PROPS
|
||||
};
|
||||
|
||||
static GParamSpec *obj_props[N_PROPS];
|
||||
|
||||
struct _ClutterColorState
|
||||
{
|
||||
GObject parent_instance;
|
||||
@ -283,21 +266,6 @@ clutter_primaries_ensure_normalized_range (ClutterPrimaries *primaries)
|
||||
primaries->w_y = CLAMP (primaries->w_y, 0.0f, 1.0f);
|
||||
}
|
||||
|
||||
static void
|
||||
clutter_color_state_constructed (GObject *object)
|
||||
{
|
||||
ClutterColorState *color_state = CLUTTER_COLOR_STATE (object);
|
||||
ClutterColorStatePrivate *priv =
|
||||
clutter_color_state_get_instance_private (color_state);
|
||||
ClutterColorManager *color_manager;
|
||||
|
||||
g_warn_if_fail (priv->context);
|
||||
|
||||
color_manager = clutter_context_get_color_manager (priv->context);
|
||||
|
||||
priv->id = clutter_color_manager_get_next_id (color_manager);
|
||||
}
|
||||
|
||||
static void
|
||||
clutter_color_state_finalize (GObject *object)
|
||||
{
|
||||
@ -310,199 +278,12 @@ clutter_color_state_finalize (GObject *object)
|
||||
G_OBJECT_CLASS (clutter_color_state_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
clutter_color_state_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
ClutterColorState *color_state = CLUTTER_COLOR_STATE (object);
|
||||
ClutterColorStatePrivate *priv;
|
||||
ClutterPrimaries *primaries;
|
||||
|
||||
priv = clutter_color_state_get_instance_private (color_state);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_CONTEXT:
|
||||
priv->context = g_value_get_object (value);
|
||||
break;
|
||||
|
||||
case PROP_COLORSPACE:
|
||||
priv->colorspace = g_value_get_enum (value);
|
||||
break;
|
||||
|
||||
case PROP_PRIMARIES:
|
||||
primaries = g_value_get_pointer (value);
|
||||
g_clear_pointer (&priv->primaries, g_free);
|
||||
priv->primaries = g_memdup2 (primaries, sizeof (ClutterPrimaries));
|
||||
break;
|
||||
|
||||
case PROP_TRANSFER_FUNCTION:
|
||||
priv->transfer_function = g_value_get_enum (value);
|
||||
break;
|
||||
|
||||
case PROP_MIN_LUMINANCE:
|
||||
priv->min_lum = g_value_get_float (value);
|
||||
break;
|
||||
|
||||
case PROP_MAX_LUMINANCE:
|
||||
priv->max_lum = g_value_get_float (value);
|
||||
break;
|
||||
|
||||
case PROP_REF_LUMINANCE:
|
||||
priv->ref_lum = g_value_get_float (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
clutter_color_state_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
ClutterColorState *color_state = CLUTTER_COLOR_STATE (object);
|
||||
ClutterColorStatePrivate *priv =
|
||||
clutter_color_state_get_instance_private (color_state);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_CONTEXT:
|
||||
g_value_set_object (value, priv->context);
|
||||
break;
|
||||
|
||||
case PROP_COLORSPACE:
|
||||
g_value_set_enum (value, priv->colorspace);
|
||||
break;
|
||||
|
||||
case PROP_TRANSFER_FUNCTION:
|
||||
g_value_set_enum (value, priv->transfer_function);
|
||||
break;
|
||||
|
||||
case PROP_MIN_LUMINANCE:
|
||||
g_value_set_float (value, priv->min_lum);
|
||||
break;
|
||||
|
||||
case PROP_MAX_LUMINANCE:
|
||||
g_value_set_float (value, priv->max_lum);
|
||||
break;
|
||||
|
||||
case PROP_REF_LUMINANCE:
|
||||
g_value_set_float (value, priv->ref_lum);
|
||||
break;
|
||||
|
||||
case PROP_PRIMARIES:
|
||||
g_value_set_pointer (value, priv->primaries);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
clutter_color_state_class_init (ClutterColorStateClass *klass)
|
||||
{
|
||||
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
gobject_class->constructed = clutter_color_state_constructed;
|
||||
gobject_class->finalize = clutter_color_state_finalize;
|
||||
gobject_class->set_property = clutter_color_state_set_property;
|
||||
gobject_class->get_property = clutter_color_state_get_property;
|
||||
|
||||
/**
|
||||
* ClutterColorState:context:
|
||||
*
|
||||
* The associated ClutterContext.
|
||||
*/
|
||||
obj_props[PROP_CONTEXT] =
|
||||
g_param_spec_object ("context", NULL, NULL,
|
||||
CLUTTER_TYPE_CONTEXT,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS |
|
||||
G_PARAM_CONSTRUCT_ONLY);
|
||||
|
||||
/**
|
||||
* ClutterColorState:colorspace:
|
||||
*
|
||||
* Colorspace information of the each color state,
|
||||
* defaults to sRGB colorspace
|
||||
*/
|
||||
obj_props[PROP_COLORSPACE] =
|
||||
g_param_spec_enum ("colorspace", NULL, NULL,
|
||||
CLUTTER_TYPE_COLORSPACE,
|
||||
CLUTTER_COLORSPACE_SRGB,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS |
|
||||
G_PARAM_CONSTRUCT_ONLY);
|
||||
|
||||
/**
|
||||
* ClutterColorState:primaries:
|
||||
*
|
||||
* Explicit set of primaries defined as chromaticity coordinates
|
||||
*/
|
||||
obj_props[PROP_PRIMARIES] =
|
||||
g_param_spec_pointer ("primaries", NULL, NULL,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS |
|
||||
G_PARAM_CONSTRUCT_ONLY);
|
||||
|
||||
/**
|
||||
* ClutterColorState:transfer-function:
|
||||
*
|
||||
* Transfer function.
|
||||
*/
|
||||
obj_props[PROP_TRANSFER_FUNCTION] =
|
||||
g_param_spec_enum ("transfer-function", NULL, NULL,
|
||||
CLUTTER_TYPE_TRANSFER_FUNCTION,
|
||||
CLUTTER_TRANSFER_FUNCTION_SRGB,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS |
|
||||
G_PARAM_CONSTRUCT_ONLY);
|
||||
|
||||
/**
|
||||
* ClutterColorState:min-luminance:
|
||||
*
|
||||
* Minimum luminance.
|
||||
*/
|
||||
obj_props[PROP_MIN_LUMINANCE] =
|
||||
g_param_spec_float ("min-luminance", NULL, NULL,
|
||||
-1.0f, 10000.0f, 0.0f,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS |
|
||||
G_PARAM_CONSTRUCT_ONLY);
|
||||
|
||||
/**
|
||||
* ClutterColorState:max-luminance:
|
||||
*
|
||||
* Maximum luminance.
|
||||
*/
|
||||
obj_props[PROP_MAX_LUMINANCE] =
|
||||
g_param_spec_float ("max-luminance", NULL, NULL,
|
||||
-1.0f, 10000.0f, 0.0f,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS |
|
||||
G_PARAM_CONSTRUCT_ONLY);
|
||||
|
||||
/**
|
||||
* ClutterColorState:ref-luminance:
|
||||
*
|
||||
* Reference luminance.
|
||||
*/
|
||||
obj_props[PROP_REF_LUMINANCE] =
|
||||
g_param_spec_float ("ref-luminance", NULL, NULL,
|
||||
-1.0f, 10000.0f, 0.0f,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS |
|
||||
G_PARAM_CONSTRUCT_ONLY);
|
||||
|
||||
g_object_class_install_properties (gobject_class, N_PROPS, obj_props);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -544,15 +325,25 @@ clutter_color_state_new_full (ClutterContext *context,
|
||||
float max_lum,
|
||||
float ref_lum)
|
||||
{
|
||||
return g_object_new (CLUTTER_TYPE_COLOR_STATE,
|
||||
"context", context,
|
||||
"colorspace", colorspace,
|
||||
"transfer-function", transfer_function,
|
||||
"primaries", primaries,
|
||||
"min-luminance", min_lum,
|
||||
"max-luminance", max_lum,
|
||||
"ref-luminance", ref_lum,
|
||||
NULL);
|
||||
ClutterColorState *color_state;
|
||||
ClutterColorStatePrivate *priv;
|
||||
ClutterColorManager *color_manager;
|
||||
|
||||
color_state = g_object_new (CLUTTER_TYPE_COLOR_STATE, NULL);
|
||||
priv = clutter_color_state_get_instance_private (color_state);
|
||||
color_manager = clutter_context_get_color_manager (context);
|
||||
|
||||
priv->context = context;
|
||||
priv->id = clutter_color_manager_get_next_id (color_manager);
|
||||
|
||||
priv->colorspace = colorspace;
|
||||
priv->transfer_function = transfer_function;
|
||||
priv->primaries = g_memdup2 (primaries, sizeof (*primaries));
|
||||
priv->min_lum = min_lum;
|
||||
priv->max_lum = max_lum;
|
||||
priv->ref_lum = ref_lum;
|
||||
|
||||
return color_state;
|
||||
}
|
||||
|
||||
static const char pq_eotf_source[] =
|
||||
|
@ -32,6 +32,21 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CLUTTER_COLORSPACE_DEFAULT,
|
||||
CLUTTER_COLORSPACE_SRGB,
|
||||
CLUTTER_COLORSPACE_BT2020,
|
||||
} ClutterColorspace;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CLUTTER_TRANSFER_FUNCTION_DEFAULT,
|
||||
CLUTTER_TRANSFER_FUNCTION_SRGB,
|
||||
CLUTTER_TRANSFER_FUNCTION_PQ,
|
||||
CLUTTER_TRANSFER_FUNCTION_LINEAR,
|
||||
} ClutterTransferFunction;
|
||||
|
||||
typedef struct _ClutterPrimaries
|
||||
{
|
||||
float r_x, r_y;
|
||||
|
@ -957,38 +957,6 @@ typedef enum
|
||||
CLUTTER_REPEAT_BOTH = CLUTTER_REPEAT_X_AXIS | CLUTTER_REPEAT_Y_AXIS
|
||||
} ClutterContentRepeat;
|
||||
|
||||
/**
|
||||
* ClutterColorspace:
|
||||
* @CLUTTER_COLORSPACE_DEFAULT: Unknown colorspace
|
||||
* @CLUTTER_COLORSPACE_SRGB: Default sRGB colorspace
|
||||
* @CLUTTER_COLORSPACE_BT2020: BT2020 colorspace
|
||||
*
|
||||
* Colorspace information.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
CLUTTER_COLORSPACE_DEFAULT,
|
||||
CLUTTER_COLORSPACE_SRGB,
|
||||
CLUTTER_COLORSPACE_BT2020,
|
||||
} ClutterColorspace;
|
||||
|
||||
/**
|
||||
* ClutterTransferFunction:
|
||||
* @CLUTTER_TRANSFER_FUNCTION_DEFAULT: Unknown transfer function
|
||||
* @CLUTTER_TRANSFER_FUNCTION_SRGB: The sRGB gamma transfer function
|
||||
* @CLUTTER_TRANSFER_FUNCTION_PQ: Perceptual quantizer (PQ)
|
||||
* @CLUTTER_TRANSFER_FUNCTION_LINEAR: Linear transfer function
|
||||
*
|
||||
* Colorspace information.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
CLUTTER_TRANSFER_FUNCTION_DEFAULT,
|
||||
CLUTTER_TRANSFER_FUNCTION_SRGB,
|
||||
CLUTTER_TRANSFER_FUNCTION_PQ,
|
||||
CLUTTER_TRANSFER_FUNCTION_LINEAR,
|
||||
} ClutterTransferFunction;
|
||||
|
||||
/**
|
||||
* ClutterEncodingRequiredFormat:
|
||||
* @CLUTTER_ENCODING_REQUIRED_FORMAT_UINT8: 8bpc uint
|
||||
|
Loading…
x
Reference in New Issue
Block a user