void gdk_rgba_free (GdkRGBA *rgba);
GDK_AVAILABLE_IN_ALL
-gboolean gdk_rgba_is_clear (const GdkRGBA *rgba);
+gboolean gdk_rgba_is_clear (const GdkRGBA *rgba) G_GNUC_PURE;
GDK_AVAILABLE_IN_ALL
-gboolean gdk_rgba_is_opaque (const GdkRGBA *rgba);
+gboolean gdk_rgba_is_opaque (const GdkRGBA *rgba) G_GNUC_PURE;
GDK_AVAILABLE_IN_ALL
-guint gdk_rgba_hash (gconstpointer p);
+guint gdk_rgba_hash (gconstpointer p) G_GNUC_PURE;
GDK_AVAILABLE_IN_ALL
gboolean gdk_rgba_equal (gconstpointer p1,
- gconstpointer p2);
+ gconstpointer p2) G_GNUC_PURE;
GDK_AVAILABLE_IN_ALL
gboolean gdk_rgba_parse (GdkRGBA *rgba,
GError **error);
GDK_AVAILABLE_IN_ALL
-int gdk_texture_get_width (GdkTexture *texture);
+int gdk_texture_get_width (GdkTexture *texture) G_GNUC_PURE;
GDK_AVAILABLE_IN_ALL
-int gdk_texture_get_height (GdkTexture *texture);
+int gdk_texture_get_height (GdkTexture *texture) G_GNUC_PURE;
GDK_AVAILABLE_IN_ALL
void gdk_texture_download (GdkTexture *texture,
cairo_surface_destroy (surface);
}
-static inline gboolean
+static inline gboolean G_GNUC_PURE
node_is_invisible (const GskRenderNode *node)
{
return node->bounds.size.width == 0.0f ||
}
}
-static inline gboolean
+static inline gboolean G_GNUC_PURE
color_matrix_modifies_alpha (GskRenderNode *node)
{
const graphene_matrix_t *matrix = gsk_color_matrix_node_peek_color_matrix (node);
MAX (self->corner[2].height, self->corner[3].height)) * 2);
}
-static inline gboolean
+static inline gboolean G_GNUC_PURE
node_supports_transform (GskRenderNode *node)
{
/* Some nodes can't handle non-trivial transforms without being
cairo_fill (cr);
cairo_restore (cr);
-#if G_ENABLE_DEBUG
+#ifdef G_ENABLE_DEBUG
if (GSK_RENDERER_DEBUG_CHECK (GSK_RENDERER (self), FALLBACK))
{
cairo_move_to (cr, 0, 0);
return memcmp (a, b, sizeof (graphene_rect_t)) == 0;
}
-static inline gboolean
+static inline gboolean G_GNUC_PURE
rounded_rect_equal (const GskRoundedRect *r1,
const GskRoundedRect *r2)
{
return TRUE;
}
-static inline gboolean
+static inline gboolean G_GNUC_PURE
rounded_rect_corners_equal (const GskRoundedRect *r1,
const GskRoundedRect *r2)
{
return node->node_class->node_type;
}
-static inline
+G_GNUC_PURE static inline
GskRenderNodeType
-_gsk_render_node_get_node_type (GskRenderNode *node)
+_gsk_render_node_get_node_type (const GskRenderNode *node)
{
return node->node_class->node_type;
}
* Returns: %TRUE if @node1 and @node2 can be expected to be compared
**/
gboolean
-gsk_render_node_can_diff (GskRenderNode *node1,
- GskRenderNode *node2)
+gsk_render_node_can_diff (const GskRenderNode *node1,
+ const GskRenderNode *node2)
{
if (node1 == node2)
return TRUE;
}
static gboolean
-gsk_render_node_can_diff_true (GskRenderNode *node1,
- GskRenderNode *node2)
+gsk_render_node_can_diff_true (const GskRenderNode *node1,
+ const GskRenderNode *node2)
{
return TRUE;
}
}
static gboolean
-gsk_container_node_can_diff (GskRenderNode *node1,
- GskRenderNode *node2)
+gsk_container_node_can_diff (const GskRenderNode *node1,
+ const GskRenderNode *node2)
{
return TRUE;
}
static int
gsk_container_node_compare_func (gconstpointer elem1, gconstpointer elem2, gpointer data)
{
- return gsk_render_node_can_diff ((GskRenderNode *) elem1, (GskRenderNode *) elem2) ? 0 : 1;
+ return gsk_render_node_can_diff ((const GskRenderNode *) elem1, (const GskRenderNode *) elem2) ? 0 : 1;
}
static void
}
static gboolean
-gsk_transform_node_can_diff (GskRenderNode *node1,
- GskRenderNode *node2)
+gsk_transform_node_can_diff (const GskRenderNode *node1,
+ const GskRenderNode *node2)
{
GskTransformNode *self1 = (GskTransformNode *) node1;
GskTransformNode *self2 = (GskTransformNode *) node2;
}
static gboolean
-gsk_debug_node_can_diff (GskRenderNode *node1,
- GskRenderNode *node2)
+gsk_debug_node_can_diff (const GskRenderNode *node1,
+ const GskRenderNode *node2)
{
GskDebugNode *self1 = (GskDebugNode *) node1;
GskDebugNode *self2 = (GskDebugNode *) node2;
void (* finalize) (GskRenderNode *node);
void (* draw) (GskRenderNode *node,
cairo_t *cr);
- gboolean (* can_diff) (GskRenderNode *node1,
- GskRenderNode *node2);
+ gboolean (* can_diff) (const GskRenderNode *node1,
+ const GskRenderNode *node2);
void (* diff) (GskRenderNode *node1,
GskRenderNode *node2,
cairo_region_t *region);
GskRenderNode * gsk_render_node_new (const GskRenderNodeClass *node_class,
gsize extra_size);
-gboolean gsk_render_node_can_diff (GskRenderNode *node1,
- GskRenderNode *node2);
+gboolean gsk_render_node_can_diff (const GskRenderNode *node1,
+ const GskRenderNode *node2) G_GNUC_PURE;
void gsk_render_node_diff (GskRenderNode *node1,
GskRenderNode *node2,
cairo_region_t *region);
float left);
GDK_AVAILABLE_IN_ALL
-gboolean gsk_rounded_rect_is_rectilinear (const GskRoundedRect *self);
+gboolean gsk_rounded_rect_is_rectilinear (const GskRoundedRect *self) G_GNUC_PURE;
GDK_AVAILABLE_IN_ALL
gboolean gsk_rounded_rect_contains_point (const GskRoundedRect *self,
- const graphene_point_t *point);
+ const graphene_point_t *point) G_GNUC_PURE;
GDK_AVAILABLE_IN_ALL
gboolean gsk_rounded_rect_contains_rect (const GskRoundedRect *self,
- const graphene_rect_t *rect);
+ const graphene_rect_t *rect) G_GNUC_PURE;
GDK_AVAILABLE_IN_ALL
gboolean gsk_rounded_rect_intersects_rect (const GskRoundedRect *self,
- const graphene_rect_t *rect);
+ const graphene_rect_t *rect) G_GNUC_PURE;
G_END_DECLS
float rect[12]);
gboolean gsk_rounded_rect_equal (gconstpointer rect1,
- gconstpointer rect2);
+ gconstpointer rect2) G_GNUC_PURE;
char * gsk_rounded_rect_to_string (const GskRoundedRect *self);
void gtk_css_token_clear (GtkCssToken *token);
-gboolean gtk_css_token_is_finite (const GtkCssToken *token);
+gboolean gtk_css_token_is_finite (const GtkCssToken *token) G_GNUC_PURE;
gboolean gtk_css_token_is_preserved (const GtkCssToken *token,
- GtkCssTokenType *out_closing);
+ GtkCssTokenType *out_closing) G_GNUC_PURE;
#define gtk_css_token_is(token, _type) ((token)->type == (_type))
gboolean gtk_css_token_is_ident (const GtkCssToken *token,
- const char *ident);
+ const char *ident) G_GNUC_PURE;
gboolean gtk_css_token_is_function (const GtkCssToken *token,
- const char *ident);
+ const char *ident) G_GNUC_PURE;
gboolean gtk_css_token_is_delim (const GtkCssToken *token,
- gunichar delim);
+ gunichar delim) G_GNUC_PURE;
void gtk_css_token_print (const GtkCssToken *token,
GString *string);
}
static gboolean
-gtk_css_value_array_is_dynamic (GtkCssValue *value)
+gtk_css_value_array_is_dynamic (const GtkCssValue *value)
{
guint i;
GtkCssValue * _gtk_css_array_value_get_nth (GtkCssValue *value,
guint i);
-guint _gtk_css_array_value_get_n_values (const GtkCssValue *value);
+guint _gtk_css_array_value_get_n_values (const GtkCssValue *value) G_GNUC_PURE;
G_END_DECLS
G_BEGIN_DECLS
-GtkCssValue * gtk_css_color_value_new_transparent (void);
-GtkCssValue * gtk_css_color_value_new_white (void);
-GtkCssValue * _gtk_css_color_value_new_literal (const GdkRGBA *color);
-GtkCssValue * _gtk_css_color_value_new_name (const gchar *name);
+GtkCssValue * gtk_css_color_value_new_transparent (void) G_GNUC_PURE;
+GtkCssValue * gtk_css_color_value_new_white (void) G_GNUC_PURE;
+GtkCssValue * _gtk_css_color_value_new_literal (const GdkRGBA *color) G_GNUC_PURE;
+GtkCssValue * _gtk_css_color_value_new_name (const gchar *name) G_GNUC_PURE;
GtkCssValue * _gtk_css_color_value_new_shade (GtkCssValue *color,
- gdouble factor);
+ gdouble factor) G_GNUC_PURE;
GtkCssValue * _gtk_css_color_value_new_alpha (GtkCssValue *color,
- gdouble factor);
+ gdouble factor) G_GNUC_PURE;
GtkCssValue * _gtk_css_color_value_new_mix (GtkCssValue *color1,
GtkCssValue *color2,
- gdouble factor);
-GtkCssValue * _gtk_css_color_value_new_current_color (void);
+ gdouble factor) G_GNUC_PURE;
+GtkCssValue * _gtk_css_color_value_new_current_color (void) G_GNUC_PURE;
gboolean gtk_css_color_value_can_parse (GtkCssParser *parser);
GtkCssValue * _gtk_css_color_value_parse (GtkCssParser *parser);
GtkStyleProvider *provider,
GtkCssValue *current,
GSList *cycle_list);
-const GdkRGBA * gtk_css_color_value_get_rgba (const GtkCssValue *color);
+const GdkRGBA * gtk_css_color_value_get_rgba (const GtkCssValue *color) G_GNUC_CONST;
G_END_DECLS
GtkCssValue * _gtk_css_corner_value_parse (GtkCssParser *parser);
double _gtk_css_corner_value_get_x (const GtkCssValue *corner,
- double one_hundred_percent);
+ double one_hundred_percent) G_GNUC_PURE;
double _gtk_css_corner_value_get_y (const GtkCssValue *corner,
- double one_hundred_percent);
+ double one_hundred_percent) G_GNUC_PURE;
G_END_DECLS
gboolean _gtk_css_image_can_parse (GtkCssParser *parser);
GtkCssImage * _gtk_css_image_new_parse (GtkCssParser *parser);
-int _gtk_css_image_get_width (GtkCssImage *image);
-int _gtk_css_image_get_height (GtkCssImage *image);
-double _gtk_css_image_get_aspect_ratio (GtkCssImage *image);
+int _gtk_css_image_get_width (GtkCssImage *image) G_GNUC_PURE;
+int _gtk_css_image_get_height (GtkCssImage *image) G_GNUC_PURE;
+double _gtk_css_image_get_aspect_ratio (GtkCssImage *image) G_GNUC_PURE;
GtkCssImage * _gtk_css_image_compute (GtkCssImage *image,
guint property_id,
GtkCssStyle *style,
GtkCssStyle *parent_style);
gboolean _gtk_css_image_equal (GtkCssImage *image1,
- GtkCssImage *image2);
+ GtkCssImage *image2) G_GNUC_PURE;
GtkCssImage * _gtk_css_image_transition (GtkCssImage *start,
GtkCssImage *end,
guint property_id,
GtkSnapshot *snapshot,
double width,
double height);
-gboolean gtk_css_image_is_invalid (GtkCssImage *image);
-gboolean gtk_css_image_is_dynamic (GtkCssImage *image);
+gboolean gtk_css_image_is_invalid (GtkCssImage *image) G_GNUC_PURE;
+gboolean gtk_css_image_is_dynamic (GtkCssImage *image) G_GNUC_PURE;
GtkCssImage * gtk_css_image_get_dynamic_image (GtkCssImage *image,
gint64 monotonic_time);
void _gtk_css_image_print (GtkCssImage *image,
cairo_surface_t *target,
int surface_width,
int surface_height);
-gboolean gtk_css_image_is_computed (GtkCssImage *image);
+gboolean gtk_css_image_is_computed (GtkCssImage *image) G_GNUC_PURE;
G_END_DECLS
}
static gboolean
-gtk_css_value_image_is_dynamic (GtkCssValue *value)
+gtk_css_value_image_is_dynamic (const GtkCssValue *value)
{
GtkCssImage *image = _gtk_css_image_value_get_image (value);
GtkCssStyle *style,
GtkCssStyle *parent_style);
-guint _gtk_css_keyframes_get_n_properties (GtkCssKeyframes *keyframes);
+guint _gtk_css_keyframes_get_n_properties (GtkCssKeyframes *keyframes) G_GNUC_PURE;
guint _gtk_css_keyframes_get_property_id (GtkCssKeyframes *keyframes,
guint id);
GtkCssValue * _gtk_css_keyframes_get_value (GtkCssKeyframes *keyframes,
GtkSnapshot *snapshot,
const GskRoundedRect *padding_box);
-gboolean gtk_css_shadow_value_is_clear (const GtkCssValue *shadow);
-gboolean gtk_css_shadow_value_is_none (const GtkCssValue *shadow);
+gboolean gtk_css_shadow_value_is_clear (const GtkCssValue *shadow) G_GNUC_PURE;
+gboolean gtk_css_shadow_value_is_none (const GtkCssValue *shadow) G_GNUC_PURE;
gboolean gtk_css_shadow_value_push_snapshot (const GtkCssValue *value,
GtkSnapshot *snapshot);
GtkCssStyleProperty * _gtk_css_shorthand_property_get_subproperty (GtkCssShorthandProperty *shorthand,
guint property);
-guint _gtk_css_shorthand_property_get_n_subproperties (GtkCssShorthandProperty *shorthand);
+guint _gtk_css_shorthand_property_get_n_subproperties (GtkCssShorthandProperty *shorthand) G_GNUC_CONST;
G_END_DECLS
void _gtk_css_style_property_init_properties (void);
-guint _gtk_css_style_property_get_n_properties(void);
+guint _gtk_css_style_property_get_n_properties(void) G_GNUC_CONST;
GtkCssStyleProperty * _gtk_css_style_property_lookup_by_id (guint id);
gboolean _gtk_css_style_property_is_inherit (GtkCssStyleProperty *property);
* Returns %TRUE if the value is dynamic
*/
gboolean
-gtk_css_value_is_dynamic (GtkCssValue *value)
+gtk_css_value_is_dynamic (const GtkCssValue *value)
{
gtk_internal_return_val_if_fail (value != NULL, FALSE);
GtkCssValue *end,
guint property_id,
double progress);
- gboolean (* is_dynamic) (GtkCssValue *value);
+ gboolean (* is_dynamic) (const GtkCssValue *value);
GtkCssValue * (* get_dynamic_value) (GtkCssValue *value,
gint64 monotonic_time);
void (* print) (const GtkCssValue *value,
guint property_id,
GtkStyleProvider *provider,
GtkCssStyle *style,
- GtkCssStyle *parent_style);
+ GtkCssStyle *parent_style) G_GNUC_PURE;
gboolean _gtk_css_value_equal (const GtkCssValue *value1,
- const GtkCssValue *value2);
+ const GtkCssValue *value2) G_GNUC_PURE;
gboolean _gtk_css_value_equal0 (const GtkCssValue *value1,
- const GtkCssValue *value2);
+ const GtkCssValue *value2) G_GNUC_PURE;
GtkCssValue *_gtk_css_value_transition (GtkCssValue *start,
GtkCssValue *end,
guint property_id,
double progress);
-gboolean gtk_css_value_is_dynamic (GtkCssValue *value);
+gboolean gtk_css_value_is_dynamic (const GtkCssValue *value) G_GNUC_PURE;
GtkCssValue * gtk_css_value_get_dynamic_value (GtkCssValue *value,
gint64 monotonic_time);