transform: Remove API to poke internals

It is not interesting to users of GskTransform how it is made up
internally. Users should just use the gsk_transform_to_*() APIs.
This commit is contained in:
Benjamin Otte
2019-03-01 06:48:30 +01:00
parent 3a3c2d14ab
commit 791bf0c2eb
3 changed files with 21 additions and 79 deletions

View File

@@ -148,7 +148,6 @@ gsk_rounded_rect_intersects_rect
<SECTION>
<FILE>GskTransform</FILE>
<TITLE>3D transformations</TITLE>
GskTransformType
GskTransform
gsk_transform_ref
gsk_transform_unref
@@ -172,9 +171,6 @@ gsk_transform_scale_3d
<SUBSECTION>
gsk_transform_equal
<SUBSECTION>
gsk_transform_get_transform_type
gsk_transform_get_next
<SUBSECTION>
gsk_transform_transform_bounds
<SUBSECTION Private>
GSK_TYPE_TRANSFORM

View File

@@ -39,8 +39,6 @@
typedef struct _GskTransformClass GskTransformClass;
#define GSK_IS_TRANSFORM_TYPE(self,type) ((self) == NULL ? (type) == GSK_TRANSFORM_TYPE_IDENTITY : (self)->transform_class->transform_type == (type))
struct _GskTransform
{
const GskTransformClass *transform_class;
@@ -51,7 +49,6 @@ struct _GskTransform
struct _GskTransformClass
{
GskTransformType transform_type;
gsize struct_size;
const char *type_name;
@@ -93,25 +90,8 @@ G_DEFINE_BOXED_TYPE (GskTransform, gsk_transform,
gsk_transform_ref,
gsk_transform_unref)
/*<private>
* gsk_transform_is_identity:
* @transform: (allow-none): A transform or %NULL
*
* Checks if the transform is a representation of the identity
* transform.
*
* This is different from a transform like `scale(2) scale(0.5)`
* which just results in an identity transform when simplified.
*
* Returns: %TRUE if this transform is a representation of
* the identity transform
**/
static gboolean
gsk_transform_is_identity (GskTransform *self)
{
return self == NULL ||
(GSK_IS_TRANSFORM_TYPE (self, GSK_TRANSFORM_TYPE_IDENTITY) && gsk_transform_is_identity (self->next));
}
gsk_transform_is_identity (GskTransform *self);
/*< private >
* gsk_transform_alloc:
@@ -210,7 +190,6 @@ gsk_identity_transform_equal (GskTransform *first_transform,
static const GskTransformClass GSK_IDENTITY_TRANSFORM_CLASS =
{
GSK_TRANSFORM_TYPE_IDENTITY,
sizeof (GskTransform),
"GskIdentityMatrix",
gsk_identity_transform_finalize,
@@ -224,6 +203,26 @@ static const GskTransformClass GSK_IDENTITY_TRANSFORM_CLASS =
gsk_identity_transform_equal,
};
/*<private>
* gsk_transform_is_identity:
* @transform: (allow-none): A transform or %NULL
*
* Checks if the transform is a representation of the identity
* transform.
*
* This is different from a transform like `scale(2) scale(0.5)`
* which just results in an identity transform when simplified.
*
* Returns: %TRUE if this transform is a representation of
* the identity transform
**/
static gboolean
gsk_transform_is_identity (GskTransform *self)
{
return self == NULL ||
(self->transform_class == &GSK_IDENTITY_TRANSFORM_CLASS && gsk_transform_is_identity (self->next));
}
/**
* gsk_transform_identity:
* @next: (allow-none): the next transform operation or %NULL
@@ -406,7 +405,6 @@ gsk_matrix_transform_equal (GskTransform *first_transform,
static const GskTransformClass GSK_TRANSFORM_TRANSFORM_CLASS =
{
GSK_TRANSFORM_TYPE_TRANSFORM,
sizeof (GskMatrixTransform),
"GskMatrixTransform",
gsk_matrix_transform_finalize,
@@ -582,7 +580,6 @@ gsk_translate_transform_print (GskTransform *transform,
static const GskTransformClass GSK_TRANSLATE_TRANSFORM_CLASS =
{
GSK_TRANSFORM_TYPE_TRANSLATE,
sizeof (GskTranslateTransform),
"GskTranslateTransform",
gsk_translate_transform_finalize,
@@ -752,7 +749,6 @@ gsk_rotate_transform_print (GskTransform *transform,
static const GskTransformClass GSK_ROTATE_TRANSFORM_CLASS =
{
GSK_TRANSFORM_TYPE_ROTATE,
sizeof (GskRotateTransform),
"GskRotateTransform",
gsk_rotate_transform_finalize,
@@ -945,7 +941,6 @@ gsk_scale_transform_print (GskTransform *transform,
static const GskTransformClass GSK_SCALE_TRANSFORM_CLASS =
{
GSK_TRANSFORM_TYPE_SCALE,
sizeof (GskScaleTransform),
"GskScaleTransform",
gsk_scale_transform_finalize,
@@ -1107,41 +1102,6 @@ gsk_transform_to_string (GskTransform *self)
return g_string_free (string, FALSE);
}
/**
* gsk_transform_get_transform_type:
* @self: (allow-none): a #GskTransform
*
* Returns the type of the @self.
*
* Returns: the type of the #GskTransform
*/
GskTransformType
gsk_transform_get_transform_type (GskTransform *self)
{
if (self == NULL)
return GSK_TRANSFORM_TYPE_IDENTITY;
return self->transform_class->transform_type;
}
/**
* gsk_transform_get_next:
* @self: (allow-none): a #GskTransform
*
* Gets the rest of the matrix in the chain of operations.
*
* Returns: (transfer none) (nullable): The next transform or
* %NULL if this was the last operation.
**/
GskTransform *
gsk_transform_get_next (GskTransform *self)
{
if (self == NULL)
return NULL;
return self->next;
}
/**
* gsk_transform_to_matrix:
* @self: (allow-none): a #GskTransform

View File

@@ -31,15 +31,6 @@ G_BEGIN_DECLS
#define GSK_TYPE_TRANSFORM (gsk_transform_get_type ())
typedef enum
{
GSK_TRANSFORM_TYPE_IDENTITY,
GSK_TRANSFORM_TYPE_TRANSFORM,
GSK_TRANSFORM_TYPE_TRANSLATE,
GSK_TRANSFORM_TYPE_ROTATE,
GSK_TRANSFORM_TYPE_SCALE
} GskTransformType;
GDK_AVAILABLE_IN_ALL
GType gsk_transform_get_type (void) G_GNUC_CONST;
@@ -117,11 +108,6 @@ void gsk_transform_transform_bounds (GskTransform
const graphene_rect_t *rect,
graphene_rect_t *out_rect);
GDK_AVAILABLE_IN_ALL
GskTransformType gsk_transform_get_transform_type (GskTransform *self) G_GNUC_PURE;
GDK_AVAILABLE_IN_ALL
GskTransform * gsk_transform_get_next (GskTransform *self) G_GNUC_PURE;
G_END_DECLS
#endif /* __GSK_TRANSFORM_H__ */